@moveindustries/ts-sdk 5.1.6 → 5.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/common/cli/index.js +1 -1
  2. package/dist/common/cli/index.js.map +1 -1
  3. package/dist/common/index.js +2 -2
  4. package/dist/common/index.js.map +1 -1
  5. package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
  6. package/dist/esm/account/AbstractedAccount.mjs +1 -1
  7. package/dist/esm/account/Account.mjs +1 -1
  8. package/dist/esm/account/AccountUtils.mjs +1 -1
  9. package/dist/esm/account/DerivableAbstractedAccount.mjs +1 -1
  10. package/dist/esm/account/Ed25519Account.mjs +1 -1
  11. package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
  12. package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
  13. package/dist/esm/account/KeylessAccount.mjs +1 -1
  14. package/dist/esm/account/MultiEd25519Account.mjs +1 -1
  15. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  16. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  17. package/dist/esm/account/index.mjs +1 -1
  18. package/dist/esm/account/utils.mjs +1 -1
  19. package/dist/esm/api/account/abstraction.mjs +1 -1
  20. package/dist/esm/api/account.mjs +1 -1
  21. package/dist/esm/api/coin.mjs +1 -1
  22. package/dist/esm/api/digitalAsset.mjs +1 -1
  23. package/dist/esm/api/faucet.mjs +1 -1
  24. package/dist/esm/api/fungibleAsset.mjs +1 -1
  25. package/dist/esm/api/general.mjs +1 -1
  26. package/dist/esm/api/index.mjs +1 -1
  27. package/dist/esm/api/keyless.mjs +1 -1
  28. package/dist/esm/api/mns.mjs +1 -1
  29. package/dist/esm/api/movement.mjs +1 -1
  30. package/dist/esm/api/movementConfig.mjs +1 -1
  31. package/dist/esm/api/object.mjs +1 -1
  32. package/dist/esm/api/staking.mjs +1 -1
  33. package/dist/esm/api/table.mjs +1 -1
  34. package/dist/esm/api/transaction.mjs +1 -1
  35. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  36. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  37. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  38. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  39. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  40. package/dist/esm/api/utils.mjs +1 -1
  41. package/dist/esm/bcs/index.mjs +1 -1
  42. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  43. package/dist/esm/{chunk-KPJGWDSQ.mjs → chunk-74X3LBZR.mjs} +1 -1
  44. package/dist/esm/{chunk-KPJGWDSQ.mjs.map → chunk-74X3LBZR.mjs.map} +1 -1
  45. package/dist/esm/{chunk-HU7GK5PL.mjs → chunk-7AJK3QMK.mjs} +2 -2
  46. package/dist/esm/{chunk-7KOS7CFM.mjs → chunk-E3O3YOFD.mjs} +2 -2
  47. package/dist/esm/chunk-FPHA2UD2.mjs +2 -0
  48. package/dist/esm/chunk-FPHA2UD2.mjs.map +1 -0
  49. package/dist/esm/{chunk-ZZEJESMY.mjs → chunk-GTWNSTVB.mjs} +2 -2
  50. package/dist/esm/{chunk-ZGBIH6MJ.mjs → chunk-HX7XBUOY.mjs} +2 -2
  51. package/dist/esm/{chunk-4OOPIIBY.mjs → chunk-LVNME34X.mjs} +3 -3
  52. package/dist/esm/chunk-LVNME34X.mjs.map +1 -0
  53. package/dist/esm/chunk-LZ24RPY3.mjs +2 -0
  54. package/dist/esm/{chunk-P6MFR7W6.mjs.map → chunk-LZ24RPY3.mjs.map} +1 -1
  55. package/dist/esm/{chunk-5KMDJLYM.mjs → chunk-POOO2OP5.mjs} +2 -2
  56. package/dist/esm/{chunk-SZG3ZZGN.mjs → chunk-Q2IJWWWU.mjs} +2 -2
  57. package/dist/esm/{chunk-QT3RHJP2.mjs → chunk-Q55N5DU3.mjs} +2 -2
  58. package/dist/esm/{chunk-P7DJNENM.mjs → chunk-QMRVGJFC.mjs} +2 -2
  59. package/dist/esm/chunk-QMRVGJFC.mjs.map +1 -0
  60. package/dist/esm/{chunk-UVP74ONT.mjs → chunk-SLXLZU5N.mjs} +1 -1
  61. package/dist/esm/chunk-SLXLZU5N.mjs.map +1 -0
  62. package/dist/esm/{chunk-I6YGBK5S.mjs → chunk-SSTVXHYQ.mjs} +1 -1
  63. package/dist/esm/chunk-SSTVXHYQ.mjs.map +1 -0
  64. package/dist/esm/{chunk-46MDTYYN.mjs → chunk-YXS3R2MX.mjs} +2 -2
  65. package/dist/esm/{chunk-7KIJGBLL.mjs → chunk-ZUWARBWT.mjs} +2 -2
  66. package/dist/esm/{chunk-7KIJGBLL.mjs.map → chunk-ZUWARBWT.mjs.map} +1 -1
  67. package/dist/esm/cli/index.mjs +1 -1
  68. package/dist/esm/cli/localNode.mjs +1 -1
  69. package/dist/esm/client/core.mjs +1 -1
  70. package/dist/esm/client/get.mjs +1 -1
  71. package/dist/esm/client/index.mjs +1 -1
  72. package/dist/esm/client/post.mjs +1 -1
  73. package/dist/esm/core/crypto/abstraction.mjs +1 -1
  74. package/dist/esm/core/crypto/deserializationUtils.mjs +1 -1
  75. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  76. package/dist/esm/core/crypto/ephemeral.mjs +1 -1
  77. package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
  78. package/dist/esm/core/crypto/index.mjs +1 -1
  79. package/dist/esm/core/crypto/keyless.mjs +1 -1
  80. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  81. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  82. package/dist/esm/core/crypto/proof.mjs +1 -1
  83. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  84. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  85. package/dist/esm/core/crypto/secp256r1.mjs +1 -1
  86. package/dist/esm/core/crypto/signature.mjs +1 -1
  87. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  88. package/dist/esm/core/crypto/utils.mjs +1 -1
  89. package/dist/esm/core/index.mjs +1 -1
  90. package/dist/esm/errors/index.mjs +1 -1
  91. package/dist/esm/index.mjs +1 -1
  92. package/dist/esm/internal/abstraction.mjs +1 -1
  93. package/dist/esm/internal/account.mjs +1 -1
  94. package/dist/esm/internal/coin.mjs +1 -1
  95. package/dist/esm/internal/digitalAsset.mjs +1 -1
  96. package/dist/esm/internal/faucet.mjs +1 -1
  97. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  98. package/dist/esm/internal/general.mjs +1 -1
  99. package/dist/esm/internal/keyless.mjs +1 -1
  100. package/dist/esm/internal/mns.mjs +1 -1
  101. package/dist/esm/internal/object.mjs +1 -1
  102. package/dist/esm/internal/staking.mjs +1 -1
  103. package/dist/esm/internal/table.mjs +1 -1
  104. package/dist/esm/internal/transaction.mjs +1 -1
  105. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  106. package/dist/esm/internal/utils/index.mjs +1 -1
  107. package/dist/esm/internal/utils/utils.mjs +1 -1
  108. package/dist/esm/internal/view.mjs +1 -1
  109. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  110. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  111. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  112. package/dist/esm/transactions/index.mjs +1 -1
  113. package/dist/esm/transactions/instances/index.mjs +1 -1
  114. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  115. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  116. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  117. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  118. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  119. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  120. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  121. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  122. package/dist/esm/transactions/management/index.mjs +1 -1
  123. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  124. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  125. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  126. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  127. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  128. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  129. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  130. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  131. package/dist/esm/utils/index.mjs +1 -1
  132. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  133. package/dist/esm/version.d.mts +1 -1
  134. package/dist/esm/version.mjs +1 -1
  135. package/package.json +1 -1
  136. package/src/account/SingleKeyAccount.ts +1 -1
  137. package/src/api/account/abstraction.ts +1 -1
  138. package/src/api/account.ts +3 -3
  139. package/src/api/coin.ts +1 -1
  140. package/src/api/digitalAsset.ts +1 -1
  141. package/src/api/faucet.ts +1 -1
  142. package/src/api/fungibleAsset.ts +1 -1
  143. package/src/api/index.ts +0 -1
  144. package/src/api/keyless.ts +1 -1
  145. package/src/api/mns.ts +1 -1
  146. package/src/api/movement.ts +14 -13
  147. package/src/api/movementConfig.ts +3 -3
  148. package/src/api/object.ts +1 -1
  149. package/src/api/staking.ts +1 -1
  150. package/src/api/transactionSubmission/build.ts +1 -4
  151. package/src/bcs/index.ts +0 -1
  152. package/src/bcs/serializable/moveStructs.ts +4 -2
  153. package/src/cli/localNode.ts +21 -3
  154. package/src/client/core.ts +9 -1
  155. package/src/client/index.ts +0 -1
  156. package/src/core/crypto/index.ts +0 -1
  157. package/src/core/crypto/multiEd25519.ts +2 -2
  158. package/src/core/crypto/multiKey.ts +2 -2
  159. package/src/core/crypto/singleKey.ts +1 -1
  160. package/src/core/index.ts +0 -1
  161. package/src/errors/index.ts +6 -4
  162. package/src/index.ts +0 -1
  163. package/src/internal/account.ts +9 -6
  164. package/src/internal/general.ts +3 -1
  165. package/src/internal/mns.ts +21 -20
  166. package/src/transactions/authenticator/index.ts +0 -1
  167. package/src/transactions/index.ts +0 -1
  168. package/src/transactions/instances/index.ts +0 -1
  169. package/src/transactions/instances/transactionArgument.ts +1 -1
  170. package/src/transactions/management/transactionWorker.ts +3 -1
  171. package/src/transactions/transactionBuilder/index.ts +0 -1
  172. package/src/transactions/transactionBuilder/transactionBuilder.ts +11 -3
  173. package/src/transactions/typeTag/index.ts +3 -2
  174. package/src/version.ts +1 -1
  175. package/dist/esm/chunk-4OOPIIBY.mjs.map +0 -1
  176. package/dist/esm/chunk-HL2JMZ7N.mjs +0 -2
  177. package/dist/esm/chunk-HL2JMZ7N.mjs.map +0 -1
  178. package/dist/esm/chunk-I6YGBK5S.mjs.map +0 -1
  179. package/dist/esm/chunk-P6MFR7W6.mjs +0 -2
  180. package/dist/esm/chunk-P7DJNENM.mjs.map +0 -1
  181. package/dist/esm/chunk-UVP74ONT.mjs.map +0 -1
  182. /package/dist/esm/{chunk-HU7GK5PL.mjs.map → chunk-7AJK3QMK.mjs.map} +0 -0
  183. /package/dist/esm/{chunk-7KOS7CFM.mjs.map → chunk-E3O3YOFD.mjs.map} +0 -0
  184. /package/dist/esm/{chunk-ZZEJESMY.mjs.map → chunk-GTWNSTVB.mjs.map} +0 -0
  185. /package/dist/esm/{chunk-ZGBIH6MJ.mjs.map → chunk-HX7XBUOY.mjs.map} +0 -0
  186. /package/dist/esm/{chunk-5KMDJLYM.mjs.map → chunk-POOO2OP5.mjs.map} +0 -0
  187. /package/dist/esm/{chunk-SZG3ZZGN.mjs.map → chunk-Q2IJWWWU.mjs.map} +0 -0
  188. /package/dist/esm/{chunk-QT3RHJP2.mjs.map → chunk-Q55N5DU3.mjs.map} +0 -0
  189. /package/dist/esm/{chunk-46MDTYYN.mjs.map → chunk-YXS3R2MX.mjs.map} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as so}from"./chunk-HU7GK5PL.mjs";import{a as Zn,b as $r}from"./chunk-A5L76YP7.mjs";import{a as qn}from"./chunk-WVDICMU4.mjs";import{a as D}from"./chunk-2KDUIZKB.mjs";import{a as Gr,c as Br}from"./chunk-ESZIZDLP.mjs";import{a as Jn,b as Fo}from"./chunk-5KMDJLYM.mjs";import{a as ze,b as $n,c as Vt,d as Rr,e as Ht}from"./chunk-GOXRBEIJ.mjs";import{a as Ot}from"./chunk-D6HPXGEP.mjs";import{a as oo}from"./chunk-OOOAVIMQ.mjs";import{a as Fr,b as zi}from"./chunk-PG4MJ3CJ.mjs";import{a as Y}from"./chunk-CHWDP6AR.mjs";import{a as Vn,b as Fe}from"./chunk-VEZCMPUG.mjs";import{d as Di,e as Ni,f as Oi,g as Ri,h as Gi,i as Bi,j as Ln}from"./chunk-7TTTMBAK.mjs";import{a as qr,b as Wr}from"./chunk-2QTV4AOE.mjs";import{a as re}from"./chunk-NUB6KE73.mjs";import{a as Lr}from"./chunk-7KOS7CFM.mjs";import{a as zo}from"./chunk-SZG3ZZGN.mjs";import{a as T}from"./chunk-ZZEJESMY.mjs";import{a as Io,b as Qn,c as Co,d as Eo,e as _o,g as $t,h as Mo,k as ko,l as Uo}from"./chunk-QT3RHJP2.mjs";import{a as Bt}from"./chunk-5ZKA765G.mjs";import{a as jn,b as Po,c as v,e as Ko,f as xo}from"./chunk-7KIJGBLL.mjs";import{A as So,B as Hr,C as vo,d as ao,e as co,f as uo,g as mo,h as lo,j as po,k as go,l as yo,m as fo,o as Ao,p as ho,q as bo,s as wo,t as To,u as Lt,v as Vr,w as Wn}from"./chunk-UL777LTI.mjs";import{b as ot,d as to,e as Nr,f as Or}from"./chunk-46MDTYYN.mjs";import{b as Gt,d as no,e as ro,f as io}from"./chunk-ZGBIH6MJ.mjs";import{a as eo}from"./chunk-ANTEUWH6.mjs";import{d as S,e as Xi}from"./chunk-KPJGWDSQ.mjs";import{a as fn,b as Wi,c as He,d as ji,e as Qi,f as Ji,i as Zi,j as Yi,k as me,l as Rt}from"./chunk-WFAH73WN.mjs";import{a as Hn}from"./chunk-Y6YW4BAZ.mjs";import{b as u}from"./chunk-DS6QB6HG.mjs";import{a as Do}from"./chunk-I6YGBK5S.mjs";import{g as Dr}from"./chunk-PZ233FIY.mjs";import{d as Vi,e as Ve,f as Hi,g as Li,h as zr,i as $i,k as qi}from"./chunk-VW3WBAAD.mjs";import{a as P,b as Fi,c as z,d as ie}from"./chunk-UVP74ONT.mjs";import{a as Ui}from"./chunk-6NO4QKAO.mjs";import{a as Ut}from"./chunk-FS5ZJKO7.mjs";import{a as $,b as Pe,c as Ft,d as zt,e as he,f as Dt,g as Nt}from"./chunk-XCURF77K.mjs";import{J as Z,m as ki}from"./chunk-YOHEYPDP.mjs";import{a as F}from"./chunk-RXHPS4IU.mjs";import{a as w,b as ne}from"./chunk-SRXFRTHK.mjs";import{b as y,c as _i}from"./chunk-5IMQPJ6J.mjs";import{d as Mi}from"./chunk-UI4OF6CP.mjs";import{a as Ur}from"./chunk-KDMSOCZY.mjs";var Yn="Multiple possible deserializations found";function wu(n){let e=[b,K,ee,H,I,V,Ke],t;for(let r of e)try{let i=F.fromHex(n),o=r.deserialize(i);if(i.assertFinished(),t)throw new Error(`${Yn}: ${n}`);t=o}catch(i){if(i instanceof Error&&i.message.includes(Yn))throw i}if(!t)throw new Error(`Failed to deserialize public key: ${n}`);return t}function Tu(n){let e=[C,O,xe,be,oe,Le],t;for(let r of e)try{let i=F.fromHex(n),o=r.deserialize(i);if(i.assertFinished(),t)throw new Error(`${Yn}: ${n}`);t=o}catch(i){if(i instanceof Error&&i.message.includes(Yn))throw i}if(!t)throw new Error(`Failed to deserialize signature: ${n}`);return t}import{ed25519 as kr}from"@noble/curves/ed25519";import{bytesToNumberBE as Xc}from"@noble/curves/abstract/utils";import{bn254 as Ue}from"@noble/curves/bn254";import{sha3_256 as eu}from"@noble/hashes/sha3";import{encode as tu}from"js-base64";import{jwtDecode as Ra}from"jwt-decode";import{secp256k1 as An}from"@noble/curves/secp256k1";import{sha3_256 as No}from"@noble/hashes/sha3";import{HDKey as Ba}from"@scure/bip32";var Ie=class Ie extends Vn{constructor(t){super();this.keyType="secp256k1";let r=y.fromHexInput(t),{length:i}=r.toUint8Array();if(i===Ie.LENGTH)this.key=r;else if(i===Ie.COMPRESSED_LENGTH){let o=An.ProjectivePoint.fromHex(r.toUint8Array());this.key=y.fromHexInput(o.toRawBytes(!1))}else throw new Error(`PublicKey length should be ${Ie.LENGTH} or ${Ie.COMPRESSED_LENGTH}, received ${i}`)}verifySignature(t){let{message:r,signature:i}=t,o=Wt(r),s=y.fromHexInput(o).toUint8Array(),a=No(s),c=i.toUint8Array();return An.verify(c,a,this.key.toUint8Array(),{lowS:!0})}async verifySignatureAsync(t){return this.verifySignature(t)}toUint8Array(){return this.key.toUint8Array()}serialize(t){t.serializeBytes(this.key.toUint8Array())}deserialize(t){let r=t.deserializeBytes();return new Le(r)}static deserialize(t){let r=t.deserializeBytes();return new Ie(r)}static isPublicKey(t){return t instanceof Ie}static isInstance(t){return"key"in t&&t.key?.data?.length===Ie.LENGTH&&"keyType"in t&&t.keyType==="secp256k1"}};Ie.LENGTH=65,Ie.COMPRESSED_LENGTH=33;var Ke=Ie,De=class De extends w{constructor(e,t){super();let r=Ot.parseHexInput(e,"secp256k1",t);if(r.toUint8Array().length!==De.LENGTH)throw new Error(`PrivateKey length should be ${De.LENGTH}`);this.key=r}static generate(){let e=An.utils.randomPrivateKey();return new De(e,!1)}static fromDerivationPath(e,t){if(!Ni(e))throw new Error(`Invalid derivation path ${e}`);return De.fromDerivationPathInner(e,Ln(t))}static fromDerivationPathInner(e,t){let{privateKey:r}=Ba.fromMasterSeed(t).derive(e);if(r===null)throw new Error("Invalid key");return new De(r,!1)}sign(e){let t=Wt(e),r=y.fromHexInput(t),i=No(r.toUint8Array()),o=An.sign(i,this.key.toUint8Array(),{lowS:!0});return new Le(o.toCompactRawBytes())}publicKey(){let e=An.getPublicKey(this.key.toUint8Array(),!1);return new Ke(e)}toUint8Array(){return this.key.toUint8Array()}toString(){return this.toAIP80String()}toHexString(){return this.key.toString()}toAIP80String(){return Ot.formatPrivateKey(this.key.toString(),"secp256k1")}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new De(t,!1)}static isPrivateKey(e){return e instanceof De}};De.LENGTH=32;var $e=De,qt=class qt extends Y{constructor(e){super();let t=y.fromHexInput(e);if(t.toUint8Array().length!==qt.LENGTH)throw new Error(`Signature length should be ${qt.LENGTH}, received ${t.toUint8Array().length}`);this.data=t}toUint8Array(){return this.data.toUint8Array()}serialize(e){e.serializeBytes(this.data.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new qt(t)}};qt.LENGTH=64;var Le=qt;var K=class n extends Fe{constructor(e){if(super(),this.publicKey=e,e instanceof b)this.variant=0;else if(e instanceof Ke)this.variant=1;else if(e instanceof Gr)this.variant=2;else if(e instanceof I)this.variant=3;else if(e instanceof V)this.variant=4;else throw new Error("Unsupported public key type")}verifySignature(e){let{message:t,signature:r}=e;if(this.publicKey instanceof I)throw new Error("Use verifySignatureAsync to verify Keyless signatures");return this.publicKey.verifySignature({message:t,signature:r.signature})}async verifySignatureAsync(e){if(!(e.signature instanceof O)){if(e.options?.throwErrorWithReason)throw new Error("Signature must be an instance of AnySignature");return!1}return await this.publicKey.verifySignatureAsync({...e,signature:e.signature.signature})}authKey(){return re.fromSchemeAndBytes({scheme:2,input:this.toUint8Array()})}toUint8Array(){return this.bcsToBytes()}serialize(e){e.serializeU32AsUleb128(this.variant),this.publicKey.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32(),r;switch(t){case 0:r=b.deserialize(e);break;case 1:r=Ke.deserialize(e);break;case 2:r=Gr.deserialize(e);break;case 3:r=I.deserialize(e);break;case 4:r=V.deserialize(e);break;default:throw new Error(`Unknown variant index for AnyPublicKey: ${t}`)}return new n(r)}static isPublicKey(e){return e instanceof n}isEd25519(){return this.publicKey instanceof b}isSecp256k1PublicKey(){return this.publicKey instanceof Ke}static isInstance(e){return"publicKey"in e&&"variant"in e}},O=class n extends Y{constructor(e){if(super(),this.signature=e,e instanceof C)this.variant=0;else if(e instanceof Le)this.variant=1;else if(e instanceof Br)this.variant=2;else if(e instanceof oe)this.variant=3;else throw new Error("Unsupported signature type")}toUint8Array(){return console.warn("[Aptos SDK] Calls to AnySignature.toUint8Array() will soon return the underlying signature bytes. Use AnySignature.bcsToBytes() instead."),this.bcsToBytes()}serialize(e){e.serializeU32AsUleb128(this.variant),this.signature.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32(),r;switch(t){case 0:r=C.deserialize(e);break;case 1:r=Le.deserialize(e);break;case 2:r=Br.deserialize(e);break;case 3:r=oe.deserialize(e);break;default:throw new Error(`Unknown variant index for AnySignature: ${t}`)}return new n(r)}static isInstance(e){return"signature"in e&&typeof e.signature=="object"&&e.signature!==null&&"toUint8Array"in e.signature}};function Va(n){let e=n;return e-=e>>1&1431655765,e=(e&858993459)+(e>>2&858993459),(e+(e>>4)&252645135)*16843009>>24}var er=3,Ce=class extends Fe{constructor(e){super(),this.publicKeys=e.publicKeys}createBitmap(e){let{bits:t}=e,r=128,i=new Uint8Array([0,0,0,0]),o=new Set;return t.forEach((s,a)=>{if(a+1>this.publicKeys.length)throw new Error(`Signature index ${a+1} is out of public keys range, ${this.publicKeys.length}.`);if(o.has(s))throw new Error(`Duplicate bit ${s} detected.`);o.add(s);let c=Math.floor(s/8),d=i[c];d|=r>>s%8,i[c]=d}),i}getIndex(e){let t=this.publicKeys.findIndex(r=>r.toString()===e.toString());if(t!==-1)return t;throw new Error(`Public key ${e} not found in multi key set ${this.publicKeys}`)}},H=class n extends Ce{constructor(e){let{publicKeys:t,signaturesRequired:r}=e;if(super({publicKeys:t}),r<1)throw new Error("The number of required signatures needs to be greater than 0");if(t.length<r)throw new Error(`Provided ${t.length} public keys is smaller than the ${r} required signatures`);if(this.publicKeys=t.map(i=>i instanceof K?i:new K(i)),r>er&&this.publicKeys.filter(o=>o.variant===3||o.variant===4).length>er)throw new Error(`Construction of MultiKey with more than ${er} keyless public keys is not allowed when signaturesRequired
1
+ import{a as so}from"./chunk-7AJK3QMK.mjs";import{a as Zn,b as $r}from"./chunk-A5L76YP7.mjs";import{a as qn}from"./chunk-WVDICMU4.mjs";import{a as D}from"./chunk-2KDUIZKB.mjs";import{a as Gr,c as Br}from"./chunk-ESZIZDLP.mjs";import{a as Jn,b as Fo}from"./chunk-POOO2OP5.mjs";import{a as ze,b as $n,c as Vt,d as Rr,e as Ht}from"./chunk-GOXRBEIJ.mjs";import{a as Ot}from"./chunk-D6HPXGEP.mjs";import{a as oo}from"./chunk-OOOAVIMQ.mjs";import{a as Fr,b as zi}from"./chunk-PG4MJ3CJ.mjs";import{a as Y}from"./chunk-CHWDP6AR.mjs";import{a as Vn,b as Fe}from"./chunk-VEZCMPUG.mjs";import{d as Di,e as Ni,f as Oi,g as Ri,h as Gi,i as Bi,j as Ln}from"./chunk-7TTTMBAK.mjs";import{a as qr,b as Wr}from"./chunk-2QTV4AOE.mjs";import{a as re}from"./chunk-NUB6KE73.mjs";import{a as Lr}from"./chunk-E3O3YOFD.mjs";import{a as zo}from"./chunk-Q2IJWWWU.mjs";import{a as T}from"./chunk-GTWNSTVB.mjs";import{a as Io,b as Qn,c as Co,d as Eo,e as _o,g as $t,h as Mo,k as ko,l as Uo}from"./chunk-Q55N5DU3.mjs";import{a as Bt}from"./chunk-5ZKA765G.mjs";import{a as jn,b as Po,c as v,e as Ko,f as xo}from"./chunk-ZUWARBWT.mjs";import{A as So,B as Hr,C as vo,d as ao,e as co,f as uo,g as mo,h as lo,j as po,k as go,l as yo,m as fo,o as Ao,p as ho,q as bo,s as wo,t as To,u as Lt,v as Vr,w as Wn}from"./chunk-UL777LTI.mjs";import{b as Gt,d as no,e as ro,f as io}from"./chunk-HX7XBUOY.mjs";import{b as ot,d as to,e as Nr,f as Or}from"./chunk-YXS3R2MX.mjs";import{a as eo}from"./chunk-ANTEUWH6.mjs";import{d as S,e as Xi}from"./chunk-74X3LBZR.mjs";import{a as fn,b as Wi,c as He,d as ji,e as Qi,f as Ji,i as Zi,j as Yi,k as me,l as Rt}from"./chunk-WFAH73WN.mjs";import{a as Hn}from"./chunk-Y6YW4BAZ.mjs";import{b as u}from"./chunk-DS6QB6HG.mjs";import{a as Do}from"./chunk-SSTVXHYQ.mjs";import{g as Dr}from"./chunk-PZ233FIY.mjs";import{d as Vi,e as Ve,f as Hi,g as Li,h as zr,i as $i,k as qi}from"./chunk-VW3WBAAD.mjs";import{a as P,b as Fi,c as z,d as ie}from"./chunk-SLXLZU5N.mjs";import{a as Ui}from"./chunk-6NO4QKAO.mjs";import{a as Ut}from"./chunk-FS5ZJKO7.mjs";import{a as $,b as Pe,c as Ft,d as zt,e as he,f as Dt,g as Nt}from"./chunk-XCURF77K.mjs";import{J as Z,m as ki}from"./chunk-YOHEYPDP.mjs";import{a as F}from"./chunk-RXHPS4IU.mjs";import{a as w,b as ne}from"./chunk-SRXFRTHK.mjs";import{b as y,c as _i}from"./chunk-5IMQPJ6J.mjs";import{d as Mi}from"./chunk-UI4OF6CP.mjs";import{a as Ur}from"./chunk-KDMSOCZY.mjs";var Yn="Multiple possible deserializations found";function wu(n){let e=[b,K,ee,H,I,V,Ke],t;for(let r of e)try{let i=F.fromHex(n),o=r.deserialize(i);if(i.assertFinished(),t)throw new Error(`${Yn}: ${n}`);t=o}catch(i){if(i instanceof Error&&i.message.includes(Yn))throw i}if(!t)throw new Error(`Failed to deserialize public key: ${n}`);return t}function Tu(n){let e=[C,O,xe,be,oe,Le],t;for(let r of e)try{let i=F.fromHex(n),o=r.deserialize(i);if(i.assertFinished(),t)throw new Error(`${Yn}: ${n}`);t=o}catch(i){if(i instanceof Error&&i.message.includes(Yn))throw i}if(!t)throw new Error(`Failed to deserialize signature: ${n}`);return t}import{ed25519 as kr}from"@noble/curves/ed25519";import{bytesToNumberBE as Xc}from"@noble/curves/abstract/utils";import{bn254 as Ue}from"@noble/curves/bn254";import{sha3_256 as eu}from"@noble/hashes/sha3";import{encode as tu}from"js-base64";import{jwtDecode as Ra}from"jwt-decode";import{secp256k1 as An}from"@noble/curves/secp256k1";import{sha3_256 as No}from"@noble/hashes/sha3";import{HDKey as Ba}from"@scure/bip32";var Ie=class Ie extends Vn{constructor(t){super();this.keyType="secp256k1";let r=y.fromHexInput(t),{length:i}=r.toUint8Array();if(i===Ie.LENGTH)this.key=r;else if(i===Ie.COMPRESSED_LENGTH){let o=An.ProjectivePoint.fromHex(r.toUint8Array());this.key=y.fromHexInput(o.toRawBytes(!1))}else throw new Error(`PublicKey length should be ${Ie.LENGTH} or ${Ie.COMPRESSED_LENGTH}, received ${i}`)}verifySignature(t){let{message:r,signature:i}=t,o=Wt(r),s=y.fromHexInput(o).toUint8Array(),a=No(s),c=i.toUint8Array();return An.verify(c,a,this.key.toUint8Array(),{lowS:!0})}async verifySignatureAsync(t){return this.verifySignature(t)}toUint8Array(){return this.key.toUint8Array()}serialize(t){t.serializeBytes(this.key.toUint8Array())}deserialize(t){let r=t.deserializeBytes();return new Le(r)}static deserialize(t){let r=t.deserializeBytes();return new Ie(r)}static isPublicKey(t){return t instanceof Ie}static isInstance(t){return"key"in t&&t.key?.data?.length===Ie.LENGTH&&"keyType"in t&&t.keyType==="secp256k1"}};Ie.LENGTH=65,Ie.COMPRESSED_LENGTH=33;var Ke=Ie,De=class De extends w{constructor(e,t){super();let r=Ot.parseHexInput(e,"secp256k1",t);if(r.toUint8Array().length!==De.LENGTH)throw new Error(`PrivateKey length should be ${De.LENGTH}`);this.key=r}static generate(){let e=An.utils.randomPrivateKey();return new De(e,!1)}static fromDerivationPath(e,t){if(!Ni(e))throw new Error(`Invalid derivation path ${e}`);return De.fromDerivationPathInner(e,Ln(t))}static fromDerivationPathInner(e,t){let{privateKey:r}=Ba.fromMasterSeed(t).derive(e);if(r===null)throw new Error("Invalid key");return new De(r,!1)}sign(e){let t=Wt(e),r=y.fromHexInput(t),i=No(r.toUint8Array()),o=An.sign(i,this.key.toUint8Array(),{lowS:!0});return new Le(o.toCompactRawBytes())}publicKey(){let e=An.getPublicKey(this.key.toUint8Array(),!1);return new Ke(e)}toUint8Array(){return this.key.toUint8Array()}toString(){return this.toAIP80String()}toHexString(){return this.key.toString()}toAIP80String(){return Ot.formatPrivateKey(this.key.toString(),"secp256k1")}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new De(t,!1)}static isPrivateKey(e){return e instanceof De}};De.LENGTH=32;var $e=De,qt=class qt extends Y{constructor(e){super();let t=y.fromHexInput(e);if(t.toUint8Array().length!==qt.LENGTH)throw new Error(`Signature length should be ${qt.LENGTH}, received ${t.toUint8Array().length}`);this.data=t}toUint8Array(){return this.data.toUint8Array()}serialize(e){e.serializeBytes(this.data.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new qt(t)}};qt.LENGTH=64;var Le=qt;var K=class n extends Fe{constructor(e){if(super(),this.publicKey=e,e instanceof b)this.variant=0;else if(e instanceof Ke)this.variant=1;else if(e instanceof Gr)this.variant=2;else if(e instanceof I)this.variant=3;else if(e instanceof V)this.variant=4;else throw new Error("Unsupported public key type")}verifySignature(e){let{message:t,signature:r}=e;if(this.publicKey instanceof I)throw new Error("Use verifySignatureAsync to verify Keyless signatures");return this.publicKey.verifySignature({message:t,signature:r.signature})}async verifySignatureAsync(e){if(!(e.signature instanceof O)){if(e.options?.throwErrorWithReason)throw new Error("Signature must be an instance of AnySignature");return!1}return await this.publicKey.verifySignatureAsync({...e,signature:e.signature.signature})}authKey(){return re.fromSchemeAndBytes({scheme:2,input:this.toUint8Array()})}toUint8Array(){return this.bcsToBytes()}serialize(e){e.serializeU32AsUleb128(this.variant),this.publicKey.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32(),r;switch(t){case 0:r=b.deserialize(e);break;case 1:r=Ke.deserialize(e);break;case 2:r=Gr.deserialize(e);break;case 3:r=I.deserialize(e);break;case 4:r=V.deserialize(e);break;default:throw new Error(`Unknown variant index for AnyPublicKey: ${t}`)}return new n(r)}static isPublicKey(e){return e instanceof n}isEd25519(){return this.publicKey instanceof b}isSecp256k1PublicKey(){return this.publicKey instanceof Ke}static isInstance(e){return"publicKey"in e&&"variant"in e}},O=class n extends Y{constructor(e){if(super(),this.signature=e,e instanceof C)this.variant=0;else if(e instanceof Le)this.variant=1;else if(e instanceof Br)this.variant=2;else if(e instanceof oe)this.variant=3;else throw new Error("Unsupported signature type")}toUint8Array(){return console.warn("[Aptos SDK] Calls to AnySignature.toUint8Array() will soon return the underlying signature bytes. Use AnySignature.bcsToBytes() instead."),this.bcsToBytes()}serialize(e){e.serializeU32AsUleb128(this.variant),this.signature.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32(),r;switch(t){case 0:r=C.deserialize(e);break;case 1:r=Le.deserialize(e);break;case 2:r=Br.deserialize(e);break;case 3:r=oe.deserialize(e);break;default:throw new Error(`Unknown variant index for AnySignature: ${t}`)}return new n(r)}static isInstance(e){return"signature"in e&&typeof e.signature=="object"&&e.signature!==null&&"toUint8Array"in e.signature}};function Va(n){let e=n;return e-=e>>1&1431655765,e=(e&858993459)+(e>>2&858993459),(e+(e>>4)&252645135)*16843009>>24}var er=3,Ce=class extends Fe{constructor(e){super(),this.publicKeys=e.publicKeys}createBitmap(e){let{bits:t}=e,r=128,i=new Uint8Array([0,0,0,0]),o=new Set;return t.forEach((s,a)=>{if(a+1>this.publicKeys.length)throw new Error(`Signature index ${a+1} is out of public keys range, ${this.publicKeys.length}.`);if(o.has(s))throw new Error(`Duplicate bit ${s} detected.`);o.add(s);let c=Math.floor(s/8),d=i[c];d|=r>>s%8,i[c]=d}),i}getIndex(e){let t=this.publicKeys.findIndex(r=>r.toString()===e.toString());if(t!==-1)return t;throw new Error(`Public key ${e} not found in multi key set ${this.publicKeys}`)}},H=class n extends Ce{constructor(e){let{publicKeys:t,signaturesRequired:r}=e;if(super({publicKeys:t}),r<1)throw new Error("The number of required signatures needs to be greater than 0");if(t.length<r)throw new Error(`Provided ${t.length} public keys is smaller than the ${r} required signatures`);if(this.publicKeys=t.map(i=>i instanceof K?i:new K(i)),r>er&&this.publicKeys.filter(o=>o.variant===3||o.variant===4).length>er)throw new Error(`Construction of MultiKey with more than ${er} keyless public keys is not allowed when signaturesRequired
2
2
  is greater than ${er}. This is because a maximum of 3 keyless signatures are supported for a
3
- K-of-N MultiKey transaction.`);this.signaturesRequired=r}getSignaturesRequired(){return this.signaturesRequired}verifySignature(e){let{message:t,signature:r}=e;if(r.signatures.length!==this.signaturesRequired)throw new Error("The number of signatures does not match the number of required signatures");let i=r.bitMapToSignerIndices();for(let o=0;o<r.signatures.length;o+=1){let s=r.signatures[o];if(!this.publicKeys[i[o]].verifySignature({message:t,signature:s}))return!1}return!0}async verifySignatureAsync(e){let{signature:t}=e;try{if(!(t instanceof be))throw new Error("Signature is not a MultiKeySignature");if(t.signatures.length!==this.signaturesRequired)throw new Error("The number of signatures does not match the number of required signatures");let r=t.bitMapToSignerIndices();for(let i=0;i<t.signatures.length;i+=1){let o=t.signatures[i];if(!await this.publicKeys[r[i]].verifySignatureAsync({...e,signature:o}))return!1}return!0}catch(r){if(e.options?.throwErrorWithReason)throw r;return!1}}authKey(){return re.fromSchemeAndBytes({scheme:3,input:this.toUint8Array()})}serialize(e){e.serializeVector(this.publicKeys),e.serializeU8(this.signaturesRequired)}static deserialize(e){let t=e.deserializeVector(K),r=e.deserializeU8();return new n({publicKeys:t,signaturesRequired:r})}getIndex(e){let t=e instanceof K?e:new K(e);return super.getIndex(t)}static isInstance(e){return"publicKeys"in e&&"signaturesRequired"in e}},le=class le extends Y{constructor(e){super();let{signatures:t,bitmap:r}=e;if(t.length>le.MAX_SIGNATURES_SUPPORTED)throw new Error(`The number of signatures cannot be greater than ${le.MAX_SIGNATURES_SUPPORTED}`);if(this.signatures=t.map(o=>o instanceof O?o:new O(o)),!(r instanceof Uint8Array))this.bitmap=le.createBitmap({bits:r});else{if(r.length!==le.BITMAP_LEN)throw new Error(`"bitmap" length should be ${le.BITMAP_LEN}`);this.bitmap=r}let i=this.bitmap.reduce((o,s)=>o+Va(s),0);if(i!==this.signatures.length)throw new Error(`Expecting ${i} signatures from the bitmap, but got ${this.signatures.length}`)}static createBitmap(e){let{bits:t}=e,r=128,i=new Uint8Array([0,0,0,0]),o=new Set;return t.forEach(s=>{if(s>=le.MAX_SIGNATURES_SUPPORTED)throw new Error(`Cannot have a signature larger than ${le.MAX_SIGNATURES_SUPPORTED-1}.`);if(o.has(s))throw new Error("Duplicate bits detected.");o.add(s);let a=Math.floor(s/8),c=i[a];c|=r>>s%8,i[a]=c}),i}bitMapToSignerIndices(){let e=[];for(let t=0;t<this.bitmap.length;t+=1){let r=this.bitmap[t];for(let i=0;i<8;i+=1)(r&128>>i)!==0&&e.push(t*8+i)}return e}serialize(e){e.serializeVector(this.signatures),e.serializeBytes(this.bitmap)}static deserialize(e){let t=e.deserializeVector(O),r=e.deserializeBytes();return new le({signatures:t,bitmap:r})}};le.BITMAP_LEN=4,le.MAX_SIGNATURES_SUPPORTED=le.BITMAP_LEN*8;var be=le;var pe=class pe extends Ce{constructor(e){let{publicKeys:t,threshold:r}=e;if(super({publicKeys:t}),t.length>pe.MAX_KEYS||t.length<pe.MIN_KEYS)throw new Error(`Must have between ${pe.MIN_KEYS} and ${pe.MAX_KEYS} public keys, inclusive`);if(r<pe.MIN_THRESHOLD||r>t.length)throw new Error(`Threshold must be between ${pe.MIN_THRESHOLD} and ${t.length}, inclusive`);this.publicKeys=t,this.threshold=r}getSignaturesRequired(){return this.threshold}verifySignature(e){let{message:t,signature:r}=e;if(!(r instanceof xe))return!1;let i=[];for(let o=0;o<4;o+=1)for(let s=0;s<8;s+=1)if((r.bitmap[o]&1<<7-s)!==0){let c=o*8+s;i.push(c)}if(i.length!==r.signatures.length)throw new Error("Bitmap and signatures length mismatch");if(i.length<this.threshold)throw new Error("Not enough signatures");for(let o=0;o<i.length;o+=1)if(!this.publicKeys[i[o]].verifySignature({message:t,signature:r.signatures[o]}))return!1;return!0}async verifySignatureAsync(e){return this.verifySignature(e)}authKey(){return re.fromSchemeAndBytes({scheme:1,input:this.toUint8Array()})}toUint8Array(){let e=new Uint8Array(this.publicKeys.length*b.LENGTH+1);return this.publicKeys.forEach((t,r)=>{e.set(t.toUint8Array(),r*b.LENGTH)}),e[this.publicKeys.length*b.LENGTH]=this.threshold,e}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes(),r=t[t.length-1],i=[];for(let o=0;o<t.length-1;o+=b.LENGTH){let s=o;i.push(new b(t.subarray(s,s+b.LENGTH)))}return new pe({publicKeys:i,threshold:r})}static deserializeWithoutLength(e){let t=e.remaining(),r=e.deserializeFixedBytes(t),i=r[r.length-1],o=[];for(let s=0;s<r.length-1;s+=b.LENGTH){let a=s;o.push(new b(r.subarray(a,a+b.LENGTH)))}return new pe({publicKeys:o,threshold:i})}getIndex(e){return super.getIndex(e)}};pe.MAX_KEYS=32,pe.MIN_KEYS=2,pe.MIN_THRESHOLD=1;var ee=pe,ge=class ge extends Y{constructor(e){super();let{signatures:t,bitmap:r}=e;if(t.length>ge.MAX_SIGNATURES_SUPPORTED)throw new Error(`The number of signatures cannot be greater than ${ge.MAX_SIGNATURES_SUPPORTED}`);if(this.signatures=t,!(r instanceof Uint8Array))this.bitmap=ge.createBitmap({bits:r});else{if(r.length!==ge.BITMAP_LEN)throw new Error(`"bitmap" length should be ${ge.BITMAP_LEN}`);this.bitmap=r}}toUint8Array(){let e=new Uint8Array(this.signatures.length*C.LENGTH+ge.BITMAP_LEN);return this.signatures.forEach((t,r)=>{e.set(t.toUint8Array(),r*C.LENGTH)}),e.set(this.bitmap,this.signatures.length*C.LENGTH),e}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes(),r=t.subarray(t.length-4),i=[];for(let o=0;o<t.length-r.length;o+=C.LENGTH){let s=o;i.push(new C(t.subarray(s,s+C.LENGTH)))}return new ge({signatures:i,bitmap:r})}static createBitmap(e){let{bits:t}=e,r=128,i=new Uint8Array([0,0,0,0]),o=new Set;return t.forEach((s,a)=>{if(s>=ge.MAX_SIGNATURES_SUPPORTED)throw new Error(`Cannot have a signature larger than ${ge.MAX_SIGNATURES_SUPPORTED-1}.`);if(o.has(s))throw new Error("Duplicate bits detected.");if(a>0&&s<=t[a-1])throw new Error("The bits need to be sorted in ascending order.");o.add(s);let c=Math.floor(s/8),d=i[c];d|=r>>s%8,i[c]=d}),i}};ge.MAX_SIGNATURES_SUPPORTED=32,ge.BITMAP_LEN=4;var xe=ge;var Q=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Ee.load(e);case 1:return qe.load(e);case 2:return se.load(e);case 3:return Ne.load(e);case 4:return jt.load(e);case 5:return gt.load(e);default:throw new Error(`Unknown variant index for AccountAuthenticator: ${t}`)}}isEd25519(){return this instanceof Ee}isMultiEd25519(){return this instanceof qe}isSingleKey(){return this instanceof se}isMultiKey(){return this instanceof Ne}},Ee=class n extends Q{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(0),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=b.deserialize(e),r=C.deserialize(e);return new n(t,r)}},qe=class n extends Q{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(1),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=ee.deserialize(e),r=xe.deserialize(e);return new n(t,r)}},se=class n extends Q{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(2),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=K.deserialize(e),r=O.deserialize(e);return new n(t,r)}},Ne=class n extends Q{constructor(e,t){super(),this.public_keys=e,this.signatures=t}serialize(e){e.serializeU32AsUleb128(3),this.public_keys.serialize(e),this.signatures.serialize(e)}static load(e){let t=H.deserialize(e),r=be.deserialize(e);return new n(t,r)}},jt=class n extends Q{serialize(e){e.serializeU32AsUleb128(4)}static load(e){return new n}},gt=class n extends Q{constructor(e,t,r,i){if(super(),!Rt(e))throw new Error(`Invalid function info ${e} passed into AccountAuthenticatorAbstraction`);this.functionInfo=e,this.abstractionSignature=r,this.signingMessageDigest=y.fromHexInput(y.fromHexInput(t).toUint8Array()),this.accountIdentity=i}serialize(e){e.serializeU32AsUleb128(5);let{moduleAddress:t,moduleName:r,functionName:i}=me(this.functionInfo);u.fromString(t).serialize(e),e.serializeStr(r),e.serializeStr(i),this.accountIdentity?e.serializeU32AsUleb128(1):e.serializeU32AsUleb128(0),e.serializeBytes(this.signingMessageDigest.toUint8Array()),this.accountIdentity?e.serializeBytes(this.abstractionSignature):e.serializeFixedBytes(this.abstractionSignature),this.accountIdentity&&e.serializeBytes(this.accountIdentity)}static load(e){let t=u.deserialize(e),r=e.deserializeStr(),i=e.deserializeStr(),o=e.deserializeUleb128AsU32(),s=e.deserializeBytes();if(o===0){let a=e.deserializeFixedBytes(e.remaining());return new n(`${t}::${r}::${i}`,s,a)}if(o===1){let a=e.deserializeBytes(),c=e.deserializeBytes();return new n(`${t}::${r}::${i}`,s,a,c)}throw new Error(`Unknown variant index for AccountAuthenticatorAbstraction: ${o}`)}},tr=class n extends w{constructor(e,t){super(),this.originalSigningMessage=y.fromHexInput(y.fromHexInput(e).toUint8Array()),this.functionInfo=t}serialize(e){e.serializeU32AsUleb128(0),e.serializeBytes(this.originalSigningMessage.toUint8Array());let{moduleAddress:t,moduleName:r,functionName:i}=me(this.functionInfo);u.fromString(t).serialize(e),e.serializeStr(r),e.serializeStr(i)}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t!==0)throw new Error(`Unknown variant index for AccountAbstractionMessage: ${t}`);let r=e.deserializeBytes(),i=u.deserialize(e),o=e.deserializeStr(),s=e.deserializeStr(),a=`${i}::${o}::${s}`;return new n(r,a)}};import{sha3_256 as La}from"@noble/hashes/sha3";var hn=class n extends w{constructor(e,t){super(),this.address=e,this.name=t}static fromStr(e){let t=e.split("::");if(t.length!==2)throw new Error("Invalid module id.");return new n(u.fromString(t[0]),new D(t[1]))}serialize(e){this.address.serialize(e),this.name.serialize(e)}static deserialize(e){let t=u.deserialize(e),r=D.deserialize(e);return new n(t,r)}};var E=class n extends w{deserialize(e){let t=u.deserialize(e),r=D.deserialize(e),i=D.deserialize(e),o=e.deserializeVector(n);return new Oe(t,r,i,o)}static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return L.load(e);case 1:return ae.load(e);case 2:return J.load(e);case 3:return Qe.load(e);case 4:return R.load(e);case 5:return Tt.load(e);case 6:return _.load(e);case 7:return f.load(e);case 8:return We.load(e);case 9:return je.load(e);case 10:return Je.load(e);case 11:return yt.load(e);case 12:return ft.load(e);case 13:return At.load(e);case 14:return ht.load(e);case 15:return bt.load(e);case 16:return wt.load(e);case 255:return G.load(e);default:throw new Error(`Unknown variant index for TypeTag: ${t}`)}}isBool(){return this instanceof L}isAddress(){return this instanceof R}isGeneric(){return this instanceof G}isSigner(){return this instanceof Tt}isVector(){return this instanceof _}isStruct(){return this instanceof f}isU8(){return this instanceof ae}isU16(){return this instanceof We}isU32(){return this instanceof je}isU64(){return this instanceof J}isU128(){return this instanceof Qe}isU256(){return this instanceof Je}isI8(){return this instanceof yt}isI16(){return this instanceof ft}isI32(){return this instanceof At}isI64(){return this instanceof ht}isI128(){return this instanceof bt}isI256(){return this instanceof wt}isPrimitive(){return this instanceof Tt||this instanceof R||this instanceof L||this instanceof ae||this instanceof We||this instanceof je||this instanceof J||this instanceof Qe||this instanceof Je||this instanceof yt||this instanceof ft||this instanceof At||this instanceof ht||this instanceof bt||this instanceof wt}},L=class n extends E{toString(){return"bool"}serialize(e){e.serializeU32AsUleb128(0)}static load(e){return new n}},ae=class n extends E{toString(){return"u8"}serialize(e){e.serializeU32AsUleb128(1)}static load(e){return new n}},yt=class n extends E{toString(){return"i8"}serialize(e){e.serializeU32AsUleb128(11)}static load(e){return new n}},We=class n extends E{toString(){return"u16"}serialize(e){e.serializeU32AsUleb128(8)}static load(e){return new n}},ft=class n extends E{toString(){return"i16"}serialize(e){e.serializeU32AsUleb128(12)}static load(e){return new n}},je=class n extends E{toString(){return"u32"}serialize(e){e.serializeU32AsUleb128(9)}static load(e){return new n}},At=class n extends E{toString(){return"i32"}serialize(e){e.serializeU32AsUleb128(13)}static load(e){return new n}},J=class n extends E{toString(){return"u64"}serialize(e){e.serializeU32AsUleb128(2)}static load(e){return new n}},ht=class n extends E{toString(){return"i64"}serialize(e){e.serializeU32AsUleb128(14)}static load(e){return new n}},Qe=class n extends E{toString(){return"u128"}serialize(e){e.serializeU32AsUleb128(3)}static load(e){return new n}},bt=class n extends E{toString(){return"i128"}serialize(e){e.serializeU32AsUleb128(15)}static load(e){return new n}},Je=class n extends E{toString(){return"u256"}serialize(e){e.serializeU32AsUleb128(10)}static load(e){return new n}},wt=class n extends E{toString(){return"i256"}serialize(e){e.serializeU32AsUleb128(16)}static load(e){return new n}},R=class n extends E{toString(){return"address"}serialize(e){e.serializeU32AsUleb128(4)}static load(e){return new n}},Tt=class n extends E{toString(){return"signer"}serialize(e){e.serializeU32AsUleb128(5)}static load(e){return new n}},nr=class n extends E{constructor(t){super();this.value=t}toString(){return`&${this.value.toString()}`}serialize(t){t.serializeU32AsUleb128(254)}static load(t){let r=E.deserialize(t);return new n(r)}},G=class n extends E{constructor(t){super();this.value=t;if(t<0)throw new Error("Generic type parameter index cannot be negative")}toString(){return`T${this.value}`}serialize(t){t.serializeU32AsUleb128(255),t.serializeU32(this.value)}static load(t){let r=t.deserializeU32();return new n(r)}},_=class n extends E{constructor(t){super();this.value=t}toString(){return`vector<${this.value.toString()}>`}static u8(){return new n(new ae)}serialize(t){t.serializeU32AsUleb128(6),this.value.serialize(t)}static load(t){let r=E.deserialize(t);return new n(r)}},f=class n extends E{constructor(t){super();this.value=t}toString(){let t="";return this.value.typeArgs.length>0&&(t=`<${this.value.typeArgs.map(r=>r.toString()).join(", ")}>`),`${this.value.address.toString()}::${this.value.moduleName.identifier}::${this.value.name.identifier}${t}`}serialize(t){t.serializeU32AsUleb128(7),this.value.serialize(t)}static load(t){let r=Oe.deserialize(t);return new n(r)}isTypeTag(t,r,i){return this.value.moduleName.identifier===r&&this.value.name.identifier===i&&this.value.address.equals(t)}isString(){return this.isTypeTag(u.ONE,"string","String")}isOption(){return this.isTypeTag(u.ONE,"option","Option")}isObject(){return this.isTypeTag(u.ONE,"object","Object")}isDelegationKey(){return this.isTypeTag(u.ONE,"permissioned_delegation","DelegationKey")}isRateLimiter(){return this.isTypeTag(u.ONE,"rate_limiter","RateLimiter")}},Oe=class n extends w{constructor(e,t,r,i){super(),this.address=e,this.moduleName=t,this.name=r,this.typeArgs=i}serialize(e){e.serialize(this.address),e.serialize(this.moduleName),e.serialize(this.name),e.serializeVector(this.typeArgs)}static deserialize(e){let t=u.deserialize(e),r=D.deserialize(e),i=D.deserialize(e),o=e.deserializeVector(E);return new n(t,r,i,o)}};function Vd(){return new Oe(u.ONE,new D("aptos_coin"),new D("AptosCoin"),[])}function x(){return new Oe(u.ONE,new D("string"),new D("String"),[])}function Hd(n){return new Oe(u.ONE,new D("option"),new D("Option"),[n])}function ye(n){return new Oe(u.ONE,new D("object"),new D("Object"),[n])}function Ha(n){let e=n.deserializeUleb128AsU32();switch(e){case 0:return Pe.deserialize(n);case 1:return he.deserialize(n);case 2:return Dt.deserialize(n);case 3:return u.deserialize(n);case 4:return P.deserialize(n,Pe);case 5:return $.deserialize(n);case 6:return Ft.deserialize(n);case 7:return zt.deserialize(n);case 8:return Nt.deserialize(n);case 9:return Fi.deserialize(n);default:throw new Error(`Unknown variant index for ScriptTransactionArgument: ${e}`)}}var st=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Qt.load(e);case 2:return Jt.load(e);case 3:return Zt.load(e);case 4:return rr.deserialize(e);default:throw new Error(`Unknown variant index for TransactionPayload: ${t}`)}}},Qt=class n extends st{constructor(e){super(),this.script=e}serialize(e){e.serializeU32AsUleb128(0),this.script.serialize(e)}static load(e){let t=Yt.deserialize(e);return new n(t)}},Jt=class n extends st{constructor(e){super(),this.entryFunction=e}serialize(e){e.serializeU32AsUleb128(2),this.entryFunction.serialize(e)}static load(e){let t=Ze.deserialize(e);return new n(t)}},Zt=class n extends st{constructor(e){super(),this.multiSig=e}serialize(e){e.serializeU32AsUleb128(3),this.multiSig.serialize(e)}static load(e){let t=bn.deserialize(e);return new n(t)}},Ze=class n{constructor(e,t,r,i){this.module_name=e,this.function_name=t,this.type_args=r,this.args=i}static build(e,t,r,i){return new n(hn.fromStr(e),new D(t),r,i)}serialize(e){this.module_name.serialize(e),this.function_name.serialize(e),e.serializeVector(this.type_args),e.serializeU32AsUleb128(this.args.length),this.args.forEach(t=>{t.serializeForEntryFunction(e)})}static deserialize(e){let t=hn.deserialize(e),r=D.deserialize(e),i=e.deserializeVector(E),o=e.deserializeUleb128AsU32(),s=new Array;for(let a=0;a<o;a+=1){let c=e.deserializeUleb128AsU32(),d=Ui.deserialize(e,c);s.push(d)}return new n(t,r,i,s)}},Yt=class n{constructor(e,t,r){this.bytecode=e,this.type_args=t,this.args=r}serialize(e){e.serializeBytes(this.bytecode),e.serializeVector(this.type_args),e.serializeU32AsUleb128(this.args.length),this.args.forEach(t=>{t.serializeForScriptFunction(e)})}static deserialize(e){let t=e.deserializeBytes(),r=e.deserializeVector(E),i=e.deserializeUleb128AsU32(),o=new Array;for(let s=0;s<i;s+=1){let a=Ha(e);o.push(a)}return new n(t,r,o)}},bn=class n{constructor(e,t){this.multisig_address=e,this.transaction_payload=t}serialize(e){this.multisig_address.serialize(e),this.transaction_payload===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.transaction_payload.serialize(e))}static deserialize(e){let t=u.deserialize(e),r=e.deserializeBool(),i;return r&&(i=wn.deserialize(e)),new n(t,i)}},wn=class n extends w{constructor(e){super(),this.transaction_payload=e}serialize(e){e.serializeU32AsUleb128(0),this.transaction_payload.serialize(e)}static deserialize(e){return e.deserializeUleb128AsU32(),new n(Ze.deserialize(e))}},rr=class extends st{static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return St.load(e);throw new Error(`Unknown variant index for TransactionInnerPayload: ${t}`)}},St=class n extends rr{constructor(e,t){super(),this.executable=e,this.extra_config=t}serialize(e){e.serializeU32AsUleb128(4),e.serializeU32AsUleb128(0),this.executable.serialize(e),this.extra_config.serialize(e)}static load(e){let t=Xt.deserialize(e),r=ir.deserialize(e);return new n(t,r)}},Xt=class{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Tn.load(e);case 1:return en.load(e);case 2:return Sn.load(e);default:throw new Error(`Unknown variant index for TransactionExecutable: ${t}`)}}},Tn=class n extends Xt{constructor(e){super(),this.script=e}serialize(e){e.serializeU32AsUleb128(0),this.script.serialize(e)}static load(e){let t=Yt.deserialize(e);return new n(t)}},en=class n extends Xt{constructor(e){super(),this.entryFunction=e}serialize(e){e.serializeU32AsUleb128(1),this.entryFunction.serialize(e)}static load(e){let t=Ze.deserialize(e);return new n(t)}},Sn=class n extends Xt{serialize(e){e.serializeU32AsUleb128(2)}static load(e){return new n}},ir=class{static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return vt.load(e);throw new Error(`Unknown variant index for TransactionExtraConfig: ${t}`)}},vt=class n extends ir{constructor(e,t){super(),this.multisigAddress=e,this.replayProtectionNonce=t!==void 0?BigInt(t):void 0}serialize(e){e.serializeU32AsUleb128(0),e.serializeOption(this.multisigAddress),e.serializeOption(this.replayProtectionNonce!==void 0?new he(this.replayProtectionNonce):void 0)}static load(e){let t=e.deserializeOption(u),r=e.deserializeOption(he);return new n(t,r?.value)}};var we=class n extends w{constructor(e,t,r,i,o,s,a){super(),this.sender=e,this.sequence_number=t,this.payload=r,this.max_gas_amount=i,this.gas_unit_price=o,this.expiration_timestamp_secs=s,this.chain_id=a}serialize(e){this.sender.serialize(e),e.serializeU64(this.sequence_number),this.payload.serialize(e),e.serializeU64(this.max_gas_amount),e.serializeU64(this.gas_unit_price),e.serializeU64(this.expiration_timestamp_secs),this.chain_id.serialize(e)}static deserialize(e){let t=u.deserialize(e),r=e.deserializeU64(),i=st.deserialize(e),o=e.deserializeU64(),s=e.deserializeU64(),a=e.deserializeU64(),c=qn.deserialize(e);return new n(t,r,i,o,s,a,c)}},or=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Pt.load(e);case 1:return Kt.load(e);default:throw new Error(`Unknown variant index for RawTransactionWithData: ${t}`)}}},Pt=class n extends or{constructor(e,t){super(),this.raw_txn=e,this.secondary_signer_addresses=t}serialize(e){e.serializeU32AsUleb128(0),this.raw_txn.serialize(e),e.serializeVector(this.secondary_signer_addresses)}static load(e){let t=we.deserialize(e),r=e.deserializeVector(u);return new n(t,r)}},Kt=class n extends or{constructor(e,t,r){super(),this.raw_txn=e,this.secondary_signer_addresses=t,this.fee_payer_address=r}serialize(e){e.serializeU32AsUleb128(1),this.raw_txn.serialize(e),e.serializeVector(this.secondary_signer_addresses),this.fee_payer_address.serialize(e)}static load(e){let t=we.deserialize(e),r=e.deserializeVector(u),i=u.deserialize(e);return new n(t,r,i)}};var sr=class n extends w{constructor(e,t,r){super(),this.rawTransaction=e,this.feePayerAddress=r,this.secondarySignerAddresses=t}serialize(e){this.rawTransaction.serialize(e),e.serializeVector(this.secondarySignerAddresses),this.feePayerAddress===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.feePayerAddress.serialize(e))}static deserialize(e){let t=we.deserialize(e),r=e.deserializeVector(u),i=e.deserializeBool(),o;return i&&(o=u.deserialize(e)),new n(t,r,o)}};var Ye=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return xt.load(e);case 1:return tn.load(e);case 2:return It.load(e);case 3:return Ct.load(e);case 4:return at.load(e);default:throw new Error(`Unknown variant index for TransactionAuthenticator: ${t}`)}}isEd25519(){return this instanceof xt}isMultiEd25519(){return this instanceof tn}isMultiAgent(){return this instanceof It}isFeePayer(){return this instanceof Ct}isSingleSender(){return this instanceof at}},xt=class n extends Ye{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(0),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=b.deserialize(e),r=C.deserialize(e);return new n(t,r)}},tn=class n extends Ye{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(1),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=ee.deserialize(e),r=xe.deserialize(e);return new n(t,r)}},It=class n extends Ye{constructor(e,t,r){super(),this.sender=e,this.secondary_signer_addresses=t,this.secondary_signers=r}serialize(e){e.serializeU32AsUleb128(2),this.sender.serialize(e),e.serializeVector(this.secondary_signer_addresses),e.serializeVector(this.secondary_signers)}static load(e){let t=Q.deserialize(e),r=e.deserializeVector(u),i=e.deserializeVector(Q);return new n(t,r,i)}},Ct=class n extends Ye{constructor(e,t,r,i){super(),this.sender=e,this.secondary_signer_addresses=t,this.secondary_signers=r,this.fee_payer=i}serialize(e){e.serializeU32AsUleb128(3),this.sender.serialize(e),e.serializeVector(this.secondary_signer_addresses),e.serializeVector(this.secondary_signers),this.fee_payer.address.serialize(e),this.fee_payer.authenticator.serialize(e)}static load(e){let t=Q.deserialize(e),r=e.deserializeVector(u),i=e.deserializeVector(Q),o=u.deserialize(e),s=Q.deserialize(e),a={address:o,authenticator:s};return new n(t,r,i,a)}},at=class n extends Ye{constructor(e){super(),this.sender=e}serialize(e){e.serializeU32AsUleb128(4),this.sender.serialize(e)}static load(e){let t=Q.deserialize(e);return new n(t)}};var Xe=class n extends w{constructor(e,t){super(),this.raw_txn=e,this.authenticator=t}serialize(e){this.raw_txn.serialize(e),this.authenticator.serialize(e)}static deserialize(e){let t=we.deserialize(e),r=Ye.deserialize(e);return new n(t,r)}};var ar=class n extends w{constructor(e,t){super(),this.rawTransaction=e,this.feePayerAddress=t}serialize(e){this.rawTransaction.serialize(e),this.feePayerAddress===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.feePayerAddress.serialize(e))}static deserialize(e){let t=we.deserialize(e),r=e.deserializeBool(),i;return r&&(i=u.deserialize(e)),new n(t,i)}};function cr(n){return n.feePayerAddress?new Kt(n.rawTransaction,n.secondarySignerAddresses??[],n.feePayerAddress):n.secondarySignerAddresses?new Pt(n.rawTransaction,n.secondarySignerAddresses):n.rawTransaction}function Re(n,e){let t=La.create();if(!e.startsWith("APTOS::"))throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${e}`);t.update(e);let r=t.digest(),i=n,o=new Uint8Array(r.length+i.length);return o.set(r),o.set(i,r.length),o}function nl(n){return Re(n.bcsToBytes(),`APTOS::${n.constructor.name}`)}function _e(n){let e=cr(n);return n.feePayerAddress?Re(e.bcsToBytes(),zr):n.secondarySignerAddresses?Re(e.bcsToBytes(),zr):Re(e.bcsToBytes(),Li)}var te=class n{constructor(e){this.signingScheme=0;let{privateKey:t,address:r}=e;this.privateKey=t,this.publicKey=t.publicKey(),this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress()}static generate(){let e=q.generate();return new n({privateKey:e})}static fromDerivationPath(e){let{path:t,mnemonic:r}=e,i=q.fromDerivationPath(t,r);return new n({privateKey:i})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync({...e,signature:e.signature})}signWithAuthenticator(e){return new Ee(this.publicKey,this.privateKey.sign(e))}signTransactionWithAuthenticator(e){return new Ee(this.publicKey,this.signTransaction(e))}sign(e){return this.privateKey.sign(e)}signTransaction(e){return this.sign(_e(e))}};function jr(n){return typeof n=="object"&&n!==null&&"getAnyPublicKey"in n&&typeof n.getAnyPublicKey=="function"}var ce=class n{constructor(e){this.signingScheme=2;let{privateKey:t,address:r}=e;this.privateKey=t,this.publicKey=new K(t.publicKey()),this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress()}getAnyPublicKey(){return this.publicKey}static generate(e={}){let{scheme:t=0}=e,r;switch(t){case 0:r=q.generate();break;case 2:r=$e.generate();break;default:throw new Error(`Unsupported signature scheme ${t}`)}return new n({privateKey:r})}static fromDerivationPath(e){let{scheme:t=0,path:r,mnemonic:i}=e,o;switch(t){case 0:o=q.fromDerivationPath(r,i);break;case 2:o=$e.fromDerivationPath(r,i);break;default:throw new Error(`Unsupported signature scheme ${t}`)}return new n({privateKey:o})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync({...e,signature:e.signature})}signWithAuthenticator(e){return new se(this.publicKey,this.sign(e))}signTransactionWithAuthenticator(e){return new se(this.publicKey,this.signTransaction(e))}sign(e){return new O(this.privateKey.sign(e))}signTransaction(e){return this.sign(_e(e))}static fromEd25519Account(e){return new n({privateKey:e.privateKey,address:e.accountAddress})}};var et=class{static generate(e={}){let{scheme:t=0,legacy:r=!0}=e;return t===0&&r?te.generate():ce.generate({scheme:t})}static fromPrivateKey(e){let{privateKey:t,address:r,legacy:i=!0}=e;return t instanceof q&&i?new te({privateKey:t,address:r}):new ce({privateKey:t,address:r})}static fromPrivateKeyAndAddress(e){return this.fromPrivateKey(e)}static fromDerivationPath(e){let{scheme:t=0,mnemonic:r,path:i,legacy:o=!0}=e;return t===0&&o?te.fromDerivationPath({mnemonic:r,path:i}):ce.fromDerivationPath({scheme:t,mnemonic:r,path:i})}static authKey(e){let{publicKey:t}=e;return t.authKey()}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync(e)}};import{randomBytes as Wa}from"@noble/hashes/utils";var ja=1209600,nn=class nn extends w{constructor(e){super();let{privateKey:t,expiryDateSecs:r,blinder:i}=e;this.privateKey=t,this.publicKey=new ct(t.publicKey()),this.expiryDateSecs=r||ji(He()+ja),this.blinder=i!==void 0?y.fromHexInput(i).toUint8Array():Qa();let o=$n(this.publicKey.bcsToBytes(),93);o.push(BigInt(this.expiryDateSecs)),o.push(Vt(this.blinder));let s=Ht(o);this.nonce=s.toString()}getPublicKey(){return this.publicKey}isExpired(){return Math.floor(Date.now()/1e3)>this.expiryDateSecs}serialize(e){e.serializeU32AsUleb128(this.publicKey.variant),e.serializeBytes(this.privateKey.toUint8Array()),e.serializeU64(this.expiryDateSecs),e.serializeFixedBytes(this.blinder)}static deserialize(e){let t=e.deserializeUleb128AsU32(),r;if(t===0)r=q.deserialize(e);else throw new Error(`Unknown variant index for EphemeralPublicKey: ${t}`);let i=e.deserializeU64(),o=e.deserializeFixedBytes(31);return new nn({privateKey:r,expiryDateSecs:Number(i),blinder:o})}static fromBytes(e){return nn.deserialize(new F(e))}static generate(e){let t;switch(e?.scheme){case 0:default:t=q.generate()}return new nn({privateKey:t,expiryDateSecs:e?.expiryDateSecs})}sign(e){if(this.isExpired())throw new Error("EphemeralKeyPair has expired");return new Ge(this.privateKey.sign(e))}};nn.BLINDER_LENGTH=31;var Et=nn;function Qa(){return Wa(Et.BLINDER_LENGTH)}import Za from"eventemitter3";import{jwtDecode as Ya}from"jwt-decode";function dr(n){return n!=null&&typeof n.checkKeylessAccountValidity=="function"}var rn=class rn extends w{constructor(t){super();this.signingScheme=2;let{address:r,ephemeralKeyPair:i,publicKey:o,uidKey:s,uidVal:a,aud:c,pepper:d,proof:l,proofFetchCallback:p,jwt:m,verificationKeyHash:g}=t;if(this.ephemeralKeyPair=i,this.publicKey=o,this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress(),this.uidKey=s,this.uidVal=a,this.aud=c,this.jwt=m,this.emitter=new Za,this.proofOrPromise=l,l instanceof fe)this.proof=l;else{if(p===void 0)throw new Error("Must provide callback for async proof fetch");this.emitter.on("proofFetchFinish",async U=>{await p(U),this.emitter.removeAllListeners()}),this.init(l)}let h=y.fromHexInput(d).toUint8Array();if(h.length!==rn.PEPPER_LENGTH)throw new Error(`Pepper length in bytes should be ${rn.PEPPER_LENGTH}`);if(this.pepper=h,g!==void 0){if(y.hexInputToUint8Array(g).length!==32)throw new Error("verificationKeyHash must be 32 bytes");this.verificationKeyHash=y.hexInputToUint8Array(g)}}getAnyPublicKey(){return new K(this.publicKey)}async init(t){try{this.proof=await t,this.emitter.emit("proofFetchFinish",{status:"Success"})}catch(r){r instanceof Error?this.emitter.emit("proofFetchFinish",{status:"Failed",error:r.toString()}):this.emitter.emit("proofFetchFinish",{status:"Failed",error:"Unknown"})}}serialize(t){if(this.accountAddress.serialize(t),t.serializeStr(this.jwt),t.serializeStr(this.uidKey),t.serializeFixedBytes(this.pepper),this.ephemeralKeyPair.serialize(t),this.proof===void 0)throw new Error("Cannot serialize - proof undefined");this.proof.serialize(t),t.serializeOption(this.verificationKeyHash,32)}static partialDeserialize(t){let r=u.deserialize(t),i=t.deserializeStr(),o=t.deserializeStr(),s=t.deserializeFixedBytes(31),a=Et.deserialize(t),c=fe.deserialize(t),d=t.deserializeOption("fixedBytes",32);return{address:r,jwt:i,uidKey:o,pepper:s,ephemeralKeyPair:a,proof:c,verificationKeyHash:d}}isExpired(){return this.ephemeralKeyPair.isExpired()}signWithAuthenticator(t){let r=new O(this.sign(t)),i=new K(this.publicKey);return new se(i,r)}signTransactionWithAuthenticator(t){let r=new O(this.signTransaction(t)),i=new K(this.publicKey);return new se(i,r)}async waitForProofFetch(){this.proofOrPromise instanceof Promise&&await this.proofOrPromise}async checkKeylessAccountValidity(t){if(this.isExpired())throw S.fromErrorType({type:0});if(await this.waitForProofFetch(),this.proof===void 0)throw S.fromErrorType({type:2});let r=Ya(this.jwt,{header:!0});if(r.kid===void 0)throw S.fromErrorType({type:12,details:"checkKeylessAccountValidity failed. JWT is missing 'kid' in header. This should never happen."});if(this.verificationKeyHash!==void 0){let{verificationKey:i}=await sn({movementConfig:t});if(y.hexInputToString(i.hash())!==y.hexInputToString(this.verificationKeyHash))throw S.fromErrorType({type:4})}else console.warn("[Movement SDK] The verification key hash was not set. Proof may be invalid if the verification key has rotated.");await rn.fetchJWK({movementConfig:t,publicKey:this.publicKey,kid:r.kid})}sign(t){let{expiryDateSecs:r}=this.ephemeralKeyPair;if(this.isExpired())throw S.fromErrorType({type:0});if(this.proof===void 0)throw S.fromErrorType({type:1,details:"Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing."});let i=this.ephemeralKeyPair.getPublicKey(),o=this.ephemeralKeyPair.sign(t);return new oe({jwtHeader:Qi(this.jwt.split(".")[0]),ephemeralCertificate:new on(this.proof,0),expiryDateSecs:r,ephemeralPublicKey:i,ephemeralSignature:o})}signTransaction(t){if(this.proof===void 0)throw S.fromErrorType({type:1,details:"Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing."});let r=cr(t),o=new ur(r,this.proof.proof).hash();return this.sign(o)}getSigningMessage(t){if(this.proof===void 0)throw S.fromErrorType({type:1,details:"Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing."});let r=cr(t);return new ur(r,this.proof.proof).hash()}verifySignature(t){return this.publicKey.verifySignature(t)}async verifySignatureAsync(t){return this.publicKey.verifySignatureAsync({...t})}static async fetchJWK(t){return Qr(t)}};rn.PEPPER_LENGTH=31;var Ae=rn,ur=class extends w{constructor(t,r){super();this.domainSeparator="APTOS::TransactionAndProof";this.transaction=t,this.proof=r}serialize(t){t.serializeFixedBytes(this.transaction.bcsToBytes()),t.serializeOption(this.proof)}hash(){return Re(this.bcsToBytes(),this.domainSeparator)}};var Te=class n extends Ae{constructor(e){let t=I.create(e);super({publicKey:t,...e}),this.publicKey=t}serialize(e){super.serialize(e)}static deserialize(e){let{address:t,proof:r,ephemeralKeyPair:i,jwt:o,uidKey:s,pepper:a,verificationKeyHash:c}=Ae.partialDeserialize(e),{iss:d,aud:l,uidVal:p}=tt({jwt:o,uidKey:s});return new n({address:t,proof:r,ephemeralKeyPair:i,iss:d,uidKey:s,uidVal:p,aud:l,pepper:a,jwt:o,verificationKeyHash:c})}static fromBytes(e){return n.deserialize(new F(y.hexInputToUint8Array(e)))}static create(e){let{address:t,proof:r,jwt:i,ephemeralKeyPair:o,pepper:s,uidKey:a="sub",proofFetchCallback:c,verificationKey:d,verificationKeyHash:l}=e;if(l&&d)throw new Error("Cannot provide both verificationKey and verificationKeyHash");let{iss:p,aud:m,uidVal:g}=tt({jwt:i,uidKey:a});return new n({address:t,proof:r,ephemeralKeyPair:o,iss:p,uidKey:a,uidVal:g,aud:m,pepper:s,jwt:i,proofFetchCallback:c,verificationKeyHash:l??(d?d.hash():void 0)})}};var Me=class n extends Ae{constructor(e){let t=V.create(e);super({publicKey:t,...e}),this.publicKey=t,this.audless=e.audless??!1}serialize(e){super.serialize(e),this.publicKey.jwkAddress.serialize(e)}static deserialize(e){let{address:t,proof:r,ephemeralKeyPair:i,jwt:o,uidKey:s,pepper:a,verificationKeyHash:c}=Ae.partialDeserialize(e),d=u.deserialize(e),{iss:l,aud:p,uidVal:m}=tt({jwt:o,uidKey:s});return new n({address:t,proof:r,ephemeralKeyPair:i,iss:l,uidKey:s,uidVal:m,aud:p,pepper:a,jwt:o,verificationKeyHash:c,jwkAddress:d})}static fromBytes(e){return n.deserialize(F.fromHex(e))}static create(e){let{address:t,proof:r,jwt:i,ephemeralKeyPair:o,pepper:s,jwkAddress:a,uidKey:c="sub",proofFetchCallback:d,verificationKey:l,verificationKeyHash:p}=e;if(p&&l)throw new Error("Cannot provide both verificationKey and verificationKeyHash");let{iss:m,aud:g,uidVal:h}=tt({jwt:i,uidKey:c});return new n({address:t,proof:r,ephemeralKeyPair:o,iss:m,uidKey:c,uidVal:h,aud:g,pepper:s,jwkAddress:u.from(a),jwt:i,proofFetchCallback:d,verificationKeyHash:p??(l?l.hash():void 0)})}};var nt=class n{constructor(e){this.signingScheme=3;let{multiKey:t,address:r}=e,i=e.signers.map(a=>a instanceof te?ce.fromEd25519Account(a):a);if(t.signaturesRequired>i.length)throw new Error(`Not enough signers provided to satisfy the required signatures. Need ${t.signaturesRequired} signers, but only ${i.length} provided`);if(t.signaturesRequired<i.length)throw new Error(`More signers provided than required. Need ${t.signaturesRequired} signers, but ${i.length} provided`);this.publicKey=t,this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress();let o=[];for(let a of i)o.push(this.publicKey.getIndex(a.getAnyPublicKey()));let s=i.map((a,c)=>[a,o[c]]);s.sort((a,c)=>a[1]-c[1]),this.signers=s.map(a=>a[0]),this.signerIndicies=s.map(a=>a[1]),this.signaturesBitmap=this.publicKey.createBitmap({bits:o})}static fromPublicKeysAndSigners(e){let{address:t,publicKeys:r,signaturesRequired:i,signers:o}=e,s=new H({publicKeys:r,signaturesRequired:i});return new n({multiKey:s,signers:o,address:t})}static isMultiKeySigner(e){return e instanceof n}signWithAuthenticator(e){return new Ne(this.publicKey,this.sign(e))}signTransactionWithAuthenticator(e){return new Ne(this.publicKey,this.signTransaction(e))}async waitForProofFetch(){let t=this.signers.filter(r=>r instanceof Ae).map(async r=>r.waitForProofFetch());await Promise.all(t)}async checkKeylessAccountValidity(e){let r=this.signers.filter(i=>i instanceof Ae).map(i=>i.checkKeylessAccountValidity(e));await Promise.all(r)}sign(e){let t=[];for(let r of this.signers)t.push(r.sign(e));return new be({signatures:t,bitmap:this.signaturesBitmap})}signTransaction(e){let t=[];for(let r of this.signers)t.push(r.signTransaction(e));return new be({signatures:t,bitmap:this.signaturesBitmap})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return await this.publicKey.verifySignatureAsync(e)}};var vn=class{constructor(e){this.signingScheme=1;let{signers:t,publicKey:r,address:i}=e;if(this.publicKey=r,this.accountAddress=i?u.from(i):this.publicKey.authKey().derivedAddress(),r.threshold>t.length)throw new Error(`Not enough signers provided to satisfy the required signatures. Need ${r.threshold} signers, but only ${t.length} provided`);if(r.threshold<t.length)throw new Error(`More signers provided than required. Need ${r.threshold} signers, but ${t.length} provided`);let o=[];for(let a of t)o.push(this.publicKey.getIndex(a.publicKey()));let s=t.map((a,c)=>[a,o[c]]);s.sort((a,c)=>a[1]-c[1]),this.signers=s.map(a=>a[0]),this.signerIndices=s.map(a=>a[1]),this.signaturesBitmap=this.publicKey.createBitmap({bits:o})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync({...e,signature:e.signature})}signWithAuthenticator(e){return new qe(this.publicKey,this.sign(e))}signTransactionWithAuthenticator(e){return new qe(this.publicKey,this.signTransaction(e))}sign(e){let t=[];for(let r of this.signers)t.push(r.sign(e));return new xe({signatures:t,bitmap:this.signaturesBitmap})}signTransaction(e){return this.sign(_e(e))}};function Ro(n){let e=n.deserializeUleb128AsU32();if(!Object.values(Z).includes(e))throw new Error(`Deserialization of Account failed: SigningScheme variant ${e} is invalid`);return{address:u.deserialize(n),signingScheme:e}}function Go(n,e){if(e.serializeStr(n.jwt),e.serializeStr(n.uidKey),e.serializeFixedBytes(n.pepper),n.ephemeralKeyPair.serialize(e),n.proof===void 0)throw new Error("Cannot serialize - proof undefined");n.proof.serialize(e),e.serializeOption(n.verificationKeyHash,32)}function Bo(n){let e=n.deserializeStr(),t=n.deserializeStr(),r=n.deserializeFixedBytes(31),i=Et.deserialize(n),o=fe.deserialize(n),s=n.deserializeOption("fixedBytes",32);return{jwt:e,uidKey:t,pepper:r,ephemeralKeyPair:i,proof:o,verificationKeyHash:s}}var Vo;(p=>{function n(m){let g=new ne;switch(g.serializeU32AsUleb128(m.signingScheme),m.accountAddress.serialize(g),m.signingScheme){case 0:return m.privateKey.serialize(g),g.toUint8Array();case 2:{if(!jr(m))throw new Error("Account is not a SingleKeySigner");let h=m.getAnyPublicKey();switch(g.serializeU32AsUleb128(h.variant),h.variant){case 3:return Go(m,g),g.toUint8Array();case 4:{let U=m;return Go(U,g),U.publicKey.jwkAddress.serialize(g),g.serializeBool(U.audless),g.toUint8Array()}case 1:case 0:return m.privateKey.serialize(g),g.toUint8Array();default:throw new Error(`Invalid public key variant: ${h.variant}`)}}case 3:{let h=m;return h.publicKey.serialize(g),g.serializeU32AsUleb128(h.signers.length),h.signers.forEach(U=>{g.serializeFixedBytes(n(U))}),g.toUint8Array()}default:throw new Error(`Deserialization of Account failed: invalid signingScheme value ${m.signingScheme}`)}}p.toBytes=n;function e(m){return y.hexInputToStringWithoutPrefix(n(m))}p.toHexStringWithoutPrefix=e;function t(m){return y.hexInputToString(n(m))}p.toHexString=t;function r(m){let{address:g,signingScheme:h}=Ro(m);switch(h){case 0:{let U=q.deserialize(m);return new te({privateKey:U,address:g})}case 2:{let U=m.deserializeUleb128AsU32();switch(U){case 0:{let j=q.deserialize(m);return new ce({privateKey:j,address:g})}case 1:{let j=$e.deserialize(m);return new ce({privateKey:j,address:g})}case 3:{let j=Bo(m),de=tt(j);return new Te({...j,...de})}case 4:{let j=Bo(m),de=u.deserialize(m),lt=m.deserializeBool(),pt=tt(j);return new Me({...j,...pt,jwkAddress:de,audless:lt})}default:throw new Error(`Unsupported public key variant ${U}`)}}case 3:{let U=H.deserialize(m),j=m.deserializeUleb128AsU32(),de=new Array;for(let lt=0;lt<j;lt+=1){let pt=r(m);if(!jr(pt)&&!(pt instanceof te))throw new Error("Deserialization of MultiKeyAccount failed. Signer is not a SingleKeySigner or Ed25519Account");de.push(pt)}return new nt({multiKey:U,signers:de,address:g})}default:throw new Error(`Deserialization of Account failed: invalid signingScheme value ${h}`)}}p.deserialize=r;function i(m){let g=d(m);if(!(g instanceof Te))throw new Error("Deserialization of KeylessAccount failed");return g}p.keylessAccountFromHex=i;function o(m){let g=d(m);if(!(g instanceof Me))throw new Error("Deserialization of FederatedKeylessAccount failed");return g}p.federatedKeylessAccountFromHex=o;function s(m){let g=d(m);if(!(g instanceof nt))throw new Error("Deserialization of MultiKeyAccount failed");return g}p.multiKeyAccountFromHex=s;function a(m){let g=d(m);if(!(g instanceof ce))throw new Error("Deserialization of SingleKeyAccount failed");return g}p.singleKeyAccountFromHex=a;function c(m){let g=d(m);if(!(g instanceof te))throw new Error("Deserialization of Ed25519Account failed");return g}p.ed25519AccountFromHex=c;function d(m){return r(F.fromHex(m))}p.fromHex=d;function l(m){return d(m)}p.fromBytes=l})(Vo||(Vo={}));import{sha3_256 as Ho}from"@noble/hashes/sha3";var mr=class n extends et{constructor({signer:t,accountAddress:r,authenticationFunction:i}){super();this.signingScheme=2;if(!Rt(i))throw new Error(`Invalid authentication function ${i} passed into AbstractedAccount`);this.authenticationFunction=i,this.accountAddress=r,this.publicKey=new zi(this.accountAddress),this.sign=o=>new Fr(t(o))}static fromPermissionedSigner({signer:t,accountAddress:r}){return new n({signer:i=>{let o=new ne;return t.publicKey.serialize(o),t.sign(i).serialize(o),o.toUint8Array()},accountAddress:r??t.accountAddress,authenticationFunction:"0x1::permissioned_delegation::authenticate"})}static generateAccountAbstractionMessage(t,r){let i=new tr(t,r);return Re(i.bcsToBytes(),$i)}signWithAuthenticator(t){return new gt(this.authenticationFunction,Ho(t),this.sign(Ho(t)).toUint8Array())}signTransactionWithAuthenticator(t){let r=n.generateAccountAbstractionMessage(_e(t),this.authenticationFunction);return this.signWithAuthenticator(r)}signTransaction(t){return this.sign(_e(t))}setSigner(t){this.sign=r=>new Fr(t(r))}};import{sha3_256 as Jr}from"@noble/hashes/sha3";var Pn=class Pn extends mr{constructor({signer:e,authenticationFunction:t,abstractPublicKey:r}){let i=new u(Pn.computeAccountAddress(t,r));super({accountAddress:i,signer:e,authenticationFunction:t}),this.abstractPublicKey=r}static computeAccountAddress(e,t){if(!Rt(e))throw new Error(`Invalid authentication function ${e} passed into DerivableAbstractedAccount`);let[r,i,o]=e.split("::"),s=Jr.create(),a=new ne;u.fromString(r).serialize(a),a.serializeStr(i),a.serializeStr(o),s.update(a.toUint8Array());let c=new ne;return c.serializeBytes(t),s.update(c.toUint8Array()),s.update(new Uint8Array([Pn.ADDRESS_DOMAIN_SEPERATOR])),s.digest()}signWithAuthenticator(e){return new gt(this.authenticationFunction,Jr(e),this.sign(Jr(e)).value,this.abstractPublicKey)}};Pn.ADDRESS_DOMAIN_SEPERATOR=5;var Lo=Pn;function $o(n){return typeof n=="boolean"}function rt(n){return typeof n=="string"}function Xa(n){return typeof n=="number"}function lr(n){if(Xa(n))return n;if(rt(n)&&n!=="")return Number.parseInt(n,10)}function pr(n){return typeof n=="number"||typeof n=="bigint"||typeof n=="string"}function qo(n){return n==null}function Wo(n){return Zr(n)||Xr(n)||ei(n)||ti(n)||ni(n)||ri(n)||ii(n)||gr(n)||Yr(n)||ec(n)||n instanceof P||n instanceof ie}function Zr(n){return n instanceof $}function gr(n){return n instanceof u}function Yr(n){return n instanceof z}function ec(n){return n instanceof Ut}function Xr(n){return n instanceof Pe}function ei(n){return n instanceof Ft}function ti(n){return n instanceof zt}function ni(n){return n instanceof he}function ri(n){return n instanceof Dt}function ii(n){return n instanceof Nt}function jo(n){return"bytecode"in n}function M(n,e){throw new Error(`Type mismatch for argument ${e}, expected '${n}'`)}function Qo(n){let e=n.params.findIndex(t=>t!=="signer"&&t!=="&signer");return e<0?n.params.length:e}function Jo(n){return!!n.match(/^[_a-zA-Z0-9]+$/)}function Zo(n){return!!n.match(/\s/)}function tc(n){return!!n.match(/^T[0-9]+$/)}function nc(n){return!!n.match(/^&.+$/)}function rc(n){switch(n){case"signer":case"address":case"bool":case"u8":case"u16":case"u32":case"u64":case"u128":case"u256":case"i8":case"i16":case"i32":case"i64":case"i128":case"i256":return!0;default:return!1}}function ic(n,e){let t=e;for(;t<n.length;t+=1){let r=n[t];if(!Zo(r))break}return t}var oc=(h=>(h.InvalidTypeTag="unknown type",h.UnexpectedGenericType="unexpected generic type",h.UnexpectedTypeArgumentClose="unexpected '>'",h.UnexpectedWhitespaceCharacter="unexpected whitespace character",h.UnexpectedComma="unexpected ','",h.TypeArgumentCountMismatch="type argument count doesn't match expected amount",h.MissingTypeArgumentClose="no matching '>' for '<'",h.MissingTypeArgument="no type argument before ','",h.UnexpectedPrimitiveTypeArguments="primitive types not expected to have type arguments",h.UnexpectedVectorTypeArgumentCount="vector type expected to have exactly one type argument",h.UnexpectedStructFormat="unexpected struct format, must be of the form 0xaddress::module_name::struct_name",h.InvalidModuleNameCharacter="module name must only contain alphanumeric or '_' characters",h.InvalidStructNameCharacter="struct name must only contain alphanumeric or '_' characters",h.InvalidAddress="struct address must be valid",h))(oc||{}),W=class extends Error{constructor(e,t){super(`Failed to parse typeTag '${e}', ${t}`)}};function ke(n,e){let t=e?.allowGenerics??!1,r=[],i=[],o=[],s=0,a="",c=1;for(;s<n.length;){let d=n[s];if(d==="<")r.push({savedExpectedTypes:c,savedStr:a,savedTypes:o}),a="",o=[],c=1;else if(d===">"){if(a!==""){let h=Kn(a,i,t);o.push(h)}let l=r.pop();if(l===void 0)throw new W(n,"unexpected '>'");if(c!==o.length)throw new W(n,"type argument count doesn't match expected amount");let{savedStr:p,savedTypes:m,savedExpectedTypes:g}=l;i=o,o=m,a=p,c=g}else if(d===","){if(r.length===0)throw new W(n,"unexpected ','");if(a.length===0)throw new W(n,"no type argument before ','");let l=Kn(a,i,t);i=[],o.push(l),a="",c+=1}else if(Zo(d)){let l=!1;if(a.length!==0){let m=Kn(a,i,t);i=[],o.push(m),a="",l=!0}s=ic(n,s);let p=n[s];if(s<n.length&&l&&p!==","&&p!==">")throw new W(n,"unexpected whitespace character");continue}else a+=d;s+=1}if(r.length>0)throw new W(n,"no matching '>' for '<'");switch(o.length){case 0:return Kn(a,i,t);case 1:if(a==="")return o[0];throw new W(n,"unexpected ','");default:throw new W(n,"unexpected whitespace character")}}function Kn(n,e,t){let r=n.trim(),i=r.toLowerCase();if(rc(i)&&e.length>0)throw new W(n,"primitive types not expected to have type arguments");switch(r.toLowerCase()){case"signer":return new Tt;case"bool":return new L;case"address":return new R;case"u8":return new ae;case"u16":return new We;case"u32":return new je;case"u64":return new J;case"u128":return new Qe;case"u256":return new Je;case"i8":return new yt;case"i16":return new ft;case"i32":return new At;case"i64":return new ht;case"i128":return new bt;case"i256":return new wt;case"vector":if(e.length!==1)throw new W(n,"vector type expected to have exactly one type argument");return new _(e[0]);default:if(nc(r)){let a=r.substring(1);return new nr(Kn(a,e,t))}if(tc(r)){if(t)return new G(Number(r.split("T")[1]));throw new W(n,"unexpected generic type")}if(!r.match(/:/))throw new W(n,"unknown type");let o=r.split("::");if(o.length!==3)throw new W(n,"unexpected struct format, must be of the form 0xaddress::module_name::struct_name");let s;try{s=u.fromString(o[0])}catch{throw new W(n,"struct address must be valid")}if(!Jo(o[1]))throw new W(n,"module name must only contain alphanumeric or '_' characters");if(!Jo(o[2]))throw new W(n,"struct name must only contain alphanumeric or '_' characters");return new f(new Oe(s,new D(o[1]),new D(o[2]),e))}}var sc=new TextEncoder;function yr(n){return n?.map(e=>rt(e)?ke(e):e)??[]}async function ac(n,e,t){return(await fr({movementConfig:t,accountAddress:n,moduleName:e})).abi}async function si(n,e,t,r){let i=await ac(n,e,r);if(!i)throw new Error(`Could not find module ABI for '${n}::${e}'`);return i.exposed_functions.find(o=>o.name===t)}async function ly(n,e,t,r){let i=await si(n,e,t,r);if(!i)throw new Error(`Could not find function ABI for '${n}::${e}::${t}'`);let o=[];for(let s=0;s<i.params.length;s+=1)o.push(ke(i.params[s],{allowGenerics:!0}));return{typeParameters:i.generic_type_params,parameters:o}}async function Yo(n,e,t,r){let i=await si(n,e,t,r);if(!i)throw new Error(`Could not find entry function ABI for '${n}::${e}::${t}'`);if(!i.is_entry)throw new Error(`'${n}::${e}::${t}' is not an entry function`);let o=Qo(i),s=[];for(let a=o;a<i.params.length;a+=1)s.push(ke(i.params[a],{allowGenerics:!0}));return{signers:o,typeParameters:i.generic_type_params,parameters:s}}async function Xo(n,e,t,r){let i=await si(n,e,t,r);if(!i)throw new Error(`Could not find view function ABI for '${n}::${e}::${t}'`);if(!i.is_view)throw new Error(`'${n}::${e}::${t}' is not an view function`);let o=[];for(let a=0;a<i.params.length;a+=1)o.push(ke(i.params[a],{allowGenerics:!0}));let s=[];for(let a=0;a<i.return.length;a+=1)s.push(ke(i.return[a],{allowGenerics:!0}));return{typeParameters:i.generic_type_params,parameters:o,returnTypes:s}}function ai(n,e,t,r,i,o){let s;if("exposed_functions"in e){let a=e.exposed_functions.find(c=>c.name===n);if(!a)throw new Error(`Could not find function ABI for '${e.address}::${e.name}::${n}'`);if(r>=a.params.length)throw new Error(`Too many arguments for '${n}', expected ${a.params.length}`);s=ke(a.params[r],{allowGenerics:!0})}else{if(r>=e.parameters.length)throw new Error(`Too many arguments for '${n}', expected ${e.parameters.length}`);s=e.parameters[r]}return _t(t,s,r,i,"exposed_functions"in e?e:void 0,o)}function _t(n,e,t,r,i,o){return Wo(n)?(oi(e,n,t),n):cc(n,e,t,r,i,o)}function cc(n,e,t,r,i,o){if(e.isBool()){if($o(n))return new $(n);if(rt(n)){if(n==="true")return new $(!0);if(n==="false")return new $(!1)}M("boolean",t)}if(e.isAddress()){if(rt(n))return u.fromString(n);if(n&&typeof n=="object"&&"data"in n&&n.data instanceof Uint8Array)return new u(n.data);M("string | AccountAddress",t)}if(e.isU8()){let s=lr(n);if(s!==void 0)return new Pe(s);M("number | string",t)}if(e.isU16()){let s=lr(n);if(s!==void 0)return new Ft(s);M("number | string",t)}if(e.isU32()){let s=lr(n);if(s!==void 0)return new zt(s);M("number | string",t)}if(e.isU64()){if(pr(n))return new he(BigInt(n));M("bigint | number | string",t)}if(e.isU128()){if(pr(n))return new Dt(BigInt(n));M("bigint | number | string",t)}if(e.isU256()){if(pr(n))return new Nt(BigInt(n));M("bigint | number | string",t)}if(e.isGeneric()){let s=e.value;if(s<0||s>=r.length)throw new Error(`Generic argument ${e.toString()} is invalid for argument ${t}`);return _t(n,r[s],t,r,i)}if(e.isVector()){if(e.value.isU8()){if(rt(n))return P.U8(sc.encode(n));if(n instanceof Uint8Array)return P.U8(n);if(n instanceof ArrayBuffer)return P.U8(new Uint8Array(n))}if(rt(n)&&n.startsWith("["))return _t(JSON.parse(n),e,t,r);if(Array.isArray(n))return new P(n.map(s=>_t(s,e.value,t,r,i)));throw new Error(`Type mismatch for argument ${t}, type '${e.toString()}'`)}if(e.isStruct()){if(e.isString()){if(rt(n))return new z(n);M("string",t)}if(e.isObject()){if(rt(n))return u.fromString(n);if(n&&typeof n=="object"&&"data"in n&&n.data instanceof Uint8Array)return new u(n.data);M("string | AccountAddress",t)}if(e.isDelegationKey()||e.isRateLimiter()){if(n instanceof Uint8Array)return new Ut(n);M("Uint8Array",t)}if(e.isOption()){if(qo(n)){let a=e.value.typeArgs[0];return a instanceof L?new ie(null):a instanceof R?new ie(null):a instanceof ae?new ie(null):a instanceof We?new ie(null):a instanceof je?new ie(null):a instanceof J?new ie(null):a instanceof Qe?new ie(null):a instanceof Je?new ie(null):new ie(null)}return new ie(_t(n,e.value.typeArgs[0],t,r,i))}if(i?.structs.find(a=>a.name===e.value.name.identifier)?.fields.length===0&&n instanceof Uint8Array)return new Ut(n);if(n instanceof Uint8Array&&o?.allowUnknownStructs)return console.warn(`Unsupported struct input type for argument ${t}. Continuing since 'allowUnknownStructs' is enabled.`),new Ut(n);throw new Error(`Unsupported struct input type for argument ${t}, type '${e.toString()}'`)}throw new Error(`Type mismatch for argument ${t}, type '${e.toString()}'`)}function oi(n,e,t){if(n.isBool()){if(Zr(e))return;M("Bool",t)}if(n.isAddress()){if(gr(e))return;M("AccountAddress",t)}if(n.isU8()){if(Xr(e))return;M("U8",t)}if(n.isU16()){if(ei(e))return;M("U16",t)}if(n.isU32()){if(ti(e))return;M("U32",t)}if(n.isU64()){if(ni(e))return;M("U64",t)}if(n.isU128()){if(ri(e))return;M("U128",t)}if(n.isU256()){if(ii(e))return;M("U256",t)}if(n.isVector()){if(e instanceof P){e.values.length>0&&oi(n.value,e.values[0],t);return}M("MoveVector",t)}if(n instanceof f){if(n.isString()){if(Yr(e))return;M("MoveString",t)}if(n.isObject()){if(gr(e))return;M("AccountAddress",t)}if(n.isOption()){if(e instanceof ie){e.value!==void 0&&oi(n.value.typeArgs[0],e.value,t);return}M("MoveOption",t)}}throw new Error(`Type mismatch for argument ${t}, expected '${n.toString()}'`)}import{sha3_256 as uc}from"@noble/hashes/sha3";async function Ar(n){if(jo(n))return lc(n);let{moduleAddress:e,moduleName:t,functionName:r}=me(n.function),i=await rs({key:"entry-function",moduleAddress:e,moduleName:t,functionName:r,movementConfig:n.movementConfig,abi:n.abi,fetch:Yo});return dc({...n,abi:i})}function dc(n){let e=n.abi,{moduleAddress:t,moduleName:r,functionName:i}=me(n.function),o=yr(n.typeArguments);if(o.length!==e.typeParameters.length)throw new Error(`Type argument count mismatch, expected ${e.typeParameters.length}, received ${o.length}`);let s=n.functionArguments.map((c,d)=>ai(n.function,e,c,d,o));if(s.length!==e.parameters.length)throw new Error(`Too few arguments for '${t}::${r}::${i}', expected ${e.parameters.length} but got ${s.length}`);let a=Ze.build(`${t}::${r}`,i,o,s);if("multisigAddress"in n){let c=u.from(n.multisigAddress);return new Zt(new bn(c,new wn(a)))}return new Jt(a)}async function es(n){let{moduleAddress:e,moduleName:t,functionName:r}=me(n.function),i=await rs({key:"view-function",moduleAddress:e,moduleName:t,functionName:r,movementConfig:n.movementConfig,abi:n.abi,fetch:Xo});return mc({abi:i,...n})}function mc(n){let e=n.abi,{moduleAddress:t,moduleName:r,functionName:i}=me(n.function),o=yr(n.typeArguments);if(o.length!==e.typeParameters.length)throw new Error(`Type argument count mismatch, expected ${e.typeParameters.length}, received ${o.length}`);let s=n?.functionArguments?.map((a,c)=>ai(n.function,e,a,c,o))??[];if(s.length!==e.parameters.length)throw new Error(`Too few arguments for '${t}::${r}::${i}', expected ${e.parameters.length} but got ${s.length}`);return Ze.build(`${t}::${r}`,i,o,s)}function lc(n){return new Qt(new Yt(y.fromHexInput(n.bytecode).toUint8Array(),yr(n.typeArguments),n.functionArguments))}async function pc(n){let{movementConfig:e,sender:t,payload:r,options:i,feePayerAddress:o}=n;if(i?.replayProtectionNonce!==void 0&&i?.accountSequenceNumber!==void 0)throw new Error("Cannot specify both replayProtectionNonce and accountSequenceNumber in options.");let s=async()=>Dr[e.network]?{chainId:Dr[e.network]}:{chainId:(await jn({movementConfig:e})).chain_id},a=async()=>i?.gasUnitPrice?{gasEstimate:i.gasUnitPrice}:{gasEstimate:(await Qn({movementConfig:e})).gas_estimate},c=async()=>{let de=async()=>i?.accountSequenceNumber!==void 0?i.accountSequenceNumber:i?.replayProtectionNonce!==void 0?0xdeadbeefn:(await Jn({movementConfig:e,accountAddress:t})).sequence_number;if(o&&u.from(o).equals(u.ZERO))try{return await de()}catch{return 0}else return de()},[{chainId:d},{gasEstimate:l},p]=await Promise.all([s(),a(),c()]),{maxGasAmount:m,gasUnitPrice:g,expireTimestamp:h,replayProtectionNonce:U}={maxGasAmount:i?.maxGasAmount?BigInt(i.maxGasAmount):BigInt(e.getDefaultMaxGasAmount()),gasUnitPrice:i?.gasUnitPrice??BigInt(l),expireTimestamp:i?.expireTimestamp??BigInt(Math.floor(Date.now()/1e3)+e.getDefaultTxnExpirySecFromNow()),replayProtectionNonce:i?.replayProtectionNonce?BigInt(i.replayProtectionNonce):void 0},j=r;return U!==void 0&&(j=gc(r,U)),new we(u.from(t),BigInt(p),j,BigInt(m),BigInt(g),BigInt(h),new qn(d))}function gc(n,e){if(n instanceof Qt)return new St(new Tn(n.script),new vt(void 0,e));if(n instanceof Jt)return new St(new en(n.entryFunction),new vt(void 0,e));if(n instanceof Zt){let t=n.multiSig.transaction_payload,r;if(t===void 0||t?.transaction_payload===void 0)r=new Sn;else if(t.transaction_payload instanceof Ze)r=new en(t.transaction_payload);else throw new Error("Scripts are not supported in multi-sig transactions.");return new St(r,new vt(n.multiSig.multisig_address,e))}else throw new Error(`Unsupported payload type: ${n}`)}async function ci(n){let{movementConfig:e,sender:t,payload:r,options:i,feePayerAddress:o}=n,s=await pc({movementConfig:e,sender:t,payload:r,options:i,feePayerAddress:o});if("secondarySignerAddresses"in n){let a=n.secondarySignerAddresses?.map(c=>u.from(c))??[];return new sr(s,a,n.feePayerAddress?u.from(n.feePayerAddress):void 0)}return new ar(s,n.feePayerAddress?u.from(n.feePayerAddress):void 0)}function ts(n){let{signerPublicKey:e,transaction:t,secondarySignersPublicKeys:r,feePayerPublicKey:i}=n,o=an(e);if(t.feePayerAddress){let a=new Kt(t.rawTransaction,t.secondarySignerAddresses??[],t.feePayerAddress),c=[];t.secondarySignerAddresses&&(r?c=r.map(p=>an(p)):c=Array.from({length:t.secondarySignerAddresses.length},()=>an(void 0)));let d=an(i),l=new Ct(o,t.secondarySignerAddresses??[],c,{address:t.feePayerAddress,authenticator:d});return new Xe(a.raw_txn,l).bcsToBytes()}if(t.secondarySignerAddresses){let a=new Pt(t.rawTransaction,t.secondarySignerAddresses),c=[];r?c=r.map(l=>an(l)):c=Array.from({length:t.secondarySignerAddresses.length},()=>an(void 0));let d=new It(o,t.secondarySignerAddresses,c);return new Xe(a.raw_txn,d).bcsToBytes()}let s;if(o instanceof Ee)s=new xt(o.public_key,o.signature);else if(o instanceof se||o instanceof Ne)s=new at(o);else if(o instanceof jt)s=new at(o);else throw new Error("Invalid public key");return new Xe(t.rawTransaction,s).bcsToBytes()}function an(n){if(!n)return new jt;let t=I.isInstance(n)||V.isInstance(n)||Ke.isInstance(n)?new K(n):n,r=new C(new Uint8Array(64));if(b.isInstance(t))return new Ee(t,r);if(K.isInstance(t))return I.isInstance(t.publicKey)?new se(t,new O(oe.getSimulationSignature())):new se(t,new O(r));if(H.isInstance(t))return new Ne(t,new be({signatures:t.publicKeys.map(i=>I.isInstance(i.publicKey)||V.isInstance(i.publicKey)?new O(oe.getSimulationSignature()):new O(r)),bitmap:t.createBitmap({bits:Array(t.publicKeys.length).fill(0).map((i,o)=>o)})}));throw new Error("Unsupported PublicKey used for simulations")}function ui(n){let{transaction:e,feePayerAuthenticator:t,additionalSignersAuthenticators:r}=n,i=eo(Q,n.senderAuthenticator),o;if(e.feePayerAddress){if(!t)throw new Error("Must provide a feePayerAuthenticator argument to generate a signed fee payer transaction");o=new Ct(i,e.secondarySignerAddresses??[],r??[],{address:e.feePayerAddress,authenticator:t})}else if(e.secondarySignerAddresses){if(!r)throw new Error("Must provide a additionalSignersAuthenticators argument to generate a signed multi agent transaction");o=new It(i,e.secondarySignerAddresses,r)}else i instanceof Ee?o=new xt(i.public_key,i.signature):i instanceof qe?o=new tn(i.public_key,i.signature):o=new at(i);return new Xe(e.rawTransaction,o).bcsToBytes()}function ns(n){let e=uc.create();for(let t of n)e.update(t);return e.digest()}var yc=ns(["APTOS::Transaction"]);function Ry(n){let e=ui(n);return new y(ns([yc,new Uint8Array([0]),e])).toString()}async function rs({key:n,moduleAddress:e,moduleName:t,functionName:r,movementConfig:i,abi:o,fetch:s}){return o!==void 0?o:Bt(async()=>s(e,t,r,i),`${n}-${i.network}-${e}-${t}-${r}`,1e3*60*5)()}async function A(n){let e=await Ac(n);return hc(n,e)}async function Ac(n){let{movementConfig:e,data:t}=n,r,i;return"bytecode"in t?i=await Ar(t):"multisigAddress"in t?(r={movementConfig:e,multisigAddress:t.multisigAddress,function:t.function,functionArguments:t.functionArguments,typeArguments:t.typeArguments,abi:t.abi},i=await Ar(r)):(r={movementConfig:e,function:t.function,functionArguments:t.functionArguments,typeArguments:t.typeArguments,abi:t.abi},i=await Ar(r)),i}async function hc(n,e){let{movementConfig:t,sender:r,options:i}=n,o;if(bc(n)&&(o=u.ZERO.toString()),wc(n)){let{secondarySignerAddresses:s}=n;return ci({movementConfig:t,sender:r,payload:e,options:i,secondarySignerAddresses:s,feePayerAddress:o})}return ci({movementConfig:t,sender:r,payload:e,options:i,feePayerAddress:o})}function bc(n){return n.withFeePayer===!0}function wc(n){return"secondarySignerAddresses"in n}function is(n){let{transaction:e}=n;return _e(e)}function hr(n){let{signer:e,transaction:t}=n;return e.signTransactionWithAuthenticator(t)}function br(n){let{signer:e,transaction:t}=n;if(!t.feePayerAddress)throw new Error(`Transaction ${t} is not a Fee Payer transaction`);return t.feePayerAddress=e.accountAddress,hr({signer:e,transaction:t})}async function di(n){let{movementConfig:e,transaction:t,signerPublicKey:r,secondarySignersPublicKeys:i,feePayerPublicKey:o,options:s}=n,a=ts({transaction:t,signerPublicKey:r,secondarySignersPublicKeys:i,feePayerPublicKey:o,options:s}),{data:c}=await Gt({movementConfig:e,body:a,path:"transactions/simulate",params:{estimate_gas_unit_price:n.options?.estimateGasUnitPrice??!1,estimate_max_gas_amount:n.options?.estimateMaxGasAmount??!1,estimate_prioritized_gas_unit_price:n.options?.estimatePrioritizedGasUnitPrice??!1},originMethod:"simulateTransaction",contentType:"application/x.aptos.signed_transaction+bcs"});return c}async function xn(n){let{movementConfig:e,transactionSubmitter:t}=n,r=t===void 0?e.getTransactionSubmitter():t;if(r)return r.submitTransaction(n);let i=ui({...n});try{let{data:o}=await Gt({movementConfig:e,body:i,path:"transactions",originMethod:"submitTransaction",contentType:"application/x.aptos.signed_transaction+bcs"});return o}catch(o){let s=Xe.deserialize(new F(i));throw s.authenticator.isSingleSender()&&s.authenticator.sender.isSingleKey()&&(s.authenticator.sender.public_key.publicKey instanceof I||s.authenticator.sender.public_key.publicKey instanceof V)&&await Ae.fetchJWK({movementConfig:e,publicKey:s.authenticator.sender.public_key.publicKey,kid:s.authenticator.sender.signature.signature.getJwkKid()}),o}}async function wr(n){let{movementConfig:e,signer:t,feePayer:r,transaction:i,...o}=n;dr(t)&&await t.checkKeylessAccountValidity(e),dr(r)&&await r.checkKeylessAccountValidity(e);let s=n.feePayerAuthenticator||r&&br({signer:r,transaction:i}),a=hr({signer:t,transaction:i});return xn({movementConfig:e,transaction:i,senderAuthenticator:a,feePayerAuthenticator:s,...o})}async function os(n){let{movementConfig:e,senderAuthenticator:t,feePayer:r,transaction:i,...o}=n;dr(r)&&await r.checkKeylessAccountValidity(e);let s=br({signer:r,transaction:i});return xn({movementConfig:e,transaction:i,senderAuthenticator:t,feePayerAuthenticator:s,...o})}var Tc={typeParameters:[],parameters:[_.u8(),new _(_.u8())]};async function ss(n){let{movementConfig:e,account:t,metadataBytes:r,moduleBytecode:i,options:o}=n,s=i.map(a=>P.U8(a));return A({movementConfig:e,sender:u.from(t),data:{function:"0x1::code::publish_package_txn",functionArguments:[P.U8(r),new P(s)],abi:Tc},options:o})}async function cn(n){return Jn(n)}async function cs(n){let{movementConfig:e,accountAddress:t,options:r}=n;return Nr({movementConfig:e,originMethod:"getModules",path:`accounts/${u.from(t).toString()}/modules`,params:{ledger_version:r?.ledgerVersion,limit:r?.limit??1e3}})}async function us(n){let{movementConfig:e,accountAddress:t,options:r}=n,{response:i,cursor:o}=await Or({movementConfig:e,originMethod:"getModulesPage",path:`accounts/${u.from(t).toString()}/modules`,params:{ledger_version:r?.ledgerVersion,cursor:r?.cursor,limit:r?.limit??100}});return{modules:i.data,cursor:o}}async function fr(n){return Fo(n)}async function pi(n){let{movementConfig:e,accountAddress:t,options:r}=n;return to({movementConfig:e,originMethod:"getTransactions",path:`accounts/${u.from(t).toString()}/transactions`,params:{start:r?.offset,limit:r?.limit}})}async function gi(n){let{movementConfig:e,accountAddress:t,options:r}=n;return Nr({movementConfig:e,originMethod:"getResources",path:`accounts/${u.from(t).toString()}/resources`,params:{ledger_version:r?.ledgerVersion,limit:r?.limit??999}})}async function ds(n){let{movementConfig:e,accountAddress:t,options:r}=n,{response:i,cursor:o}=await Or({movementConfig:e,originMethod:"getResourcesPage",path:`accounts/${u.from(t).toString()}/resources`,params:{ledger_version:r?.ledgerVersion,cursor:r?.cursor,limit:r?.limit??100}});return{resources:i.data,cursor:o}}async function yi(n){let{movementConfig:e,accountAddress:t,resourceType:r,options:i}=n,{data:o}=await ot({movementConfig:e,originMethod:"getResource",path:`accounts/${u.from(t).toString()}/resource/${r}`,params:{ledger_version:i?.ledgerVersion}});return o.data}async function un(n){let{movementConfig:e,authenticationKey:t,options:r}=n,i=await yi({movementConfig:e,accountAddress:"0x1",resourceType:"0x1::account::OriginatingAddress",options:r}),{address_map:{handle:o}}=i,s=u.from(t);try{let a=await zo({movementConfig:e,handle:o,data:{key:s.toString(),key_type:"address",value_type:"address"},options:r});return u.from(a)}catch(a){if(a instanceof Xi&&a.data.error_code==="table_item_not_found")return s;throw a}}async function ms(n){let{movementConfig:e,accountAddress:t}=n,i={owner_address:{_eq:u.from(t).toStringLong()},amount:{_gt:0}},s=await v({movementConfig:e,query:{query:go,variables:{where_condition:i}},originMethod:"getAccountTokensCount"});return s.current_token_ownerships_v2_aggregate.aggregate?s.current_token_ownerships_v2_aggregate.aggregate.count:0}async function ls(n){let{movementConfig:e,accountAddress:t,options:r}=n,o={owner_address:{_eq:u.from(t).toStringLong()},amount:{_gt:0}};r?.tokenStandard&&(o.token_standard={_eq:r?.tokenStandard});let s={query:lo,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountOwnedTokens"})).current_token_ownerships_v2}async function ps(n){let{movementConfig:e,accountAddress:t,collectionAddress:r,options:i}=n,o=u.from(t).toStringLong(),s=u.from(r).toStringLong(),a={owner_address:{_eq:o},current_token_data:{collection_id:{_eq:s}},amount:{_gt:0}};i?.tokenStandard&&(a.token_standard={_eq:i?.tokenStandard});let c={query:po,variables:{where_condition:a,offset:i?.offset,limit:i?.limit,order_by:i?.orderBy}};return(await v({movementConfig:e,query:c,originMethod:"getAccountOwnedTokensFromCollectionAddress"})).current_token_ownerships_v2}async function gs(n){let{movementConfig:e,accountAddress:t,options:r}=n,o={owner_address:{_eq:u.from(t).toStringLong()}};r?.tokenStandard&&(o.current_collection={token_standard:{_eq:r?.tokenStandard}});let s={query:mo,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountCollectionsWithOwnedTokens"})).current_collection_ownership_v2_view}async function ys(n){let{movementConfig:e,accountAddress:t}=n,r=u.from(t).toStringLong(),o=await v({movementConfig:e,query:{query:yo,variables:{address:r}},originMethod:"getAccountTransactionsCount"});return o.account_transactions_aggregate.aggregate?o.account_transactions_aggregate.aggregate.count:0}async function eA(n){let{movementConfig:e,accountAddress:t,coinType:r,faMetadataAddress:i}=n,o=r,s;if(r!==void 0&&i!==void 0)s=u.from(i).toStringLong();else if(r!==void 0&&i===void 0)r===Ve?s=u.A.toStringLong():s=Hn(u.A,r).toStringLong();else if(r===void 0&&i!==void 0){let l=u.from(i);s=l.toStringLong(),l===u.A&&(o=Ve)}else throw new Error("Either coinType, fungibleAssetAddress, or both must be provided");let a=u.from(t).toStringLong(),c={asset_type:{_eq:s}};o!==void 0&&(c={asset_type:{_in:[o,s]}});let d=await fi({movementConfig:e,accountAddress:a,options:{where:c}});return d[0]?d[0].amount:0}async function fi(n){let{movementConfig:e,accountAddress:t,options:r}=n,i=u.from(t).toStringLong(),o={...r?.where,owner_address:{_eq:i}},s={query:uo,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountCoinsData"})).current_fungible_asset_balances}async function fs(n){let{movementConfig:e,accountAddress:t}=n,r=u.from(t).toStringLong(),o=await v({movementConfig:e,query:{query:co,variables:{address:r}},originMethod:"getAccountCoinsCount"});if(!o.current_fungible_asset_balances_aggregate.aggregate)throw Error("Failed to get the count of account coins");return o.current_fungible_asset_balances_aggregate.aggregate.count}async function As(n){let{movementConfig:e,accountAddress:t,asset:r}=n,i=await ot({movementConfig:e,originMethod:"getBalance",path:`accounts/${t}/balance/${r}`,params:{accountAddress:t.toString(),asset:r instanceof Uint8Array?u.from(r).toString():r.toString()}});return parseInt(i.data.toString(),10)}async function Ai(n){let{movementConfig:e,accountAddress:t,options:r}=n,o={owner_address:{_eq:u.from(t).toStringLong()}},s={query:Wn,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountOwnedObjects"})).current_objects}async function hs(n){let{movementConfig:e,privateKey:t,options:r}=n,i=r?.throwIfNoAccountFound??!1,o=await Tr({movementConfig:e,privateKey:t});if(o.length===0){if(i)throw new Error("No existing account found for private key.");return et.fromPrivateKey({privateKey:t})}return o[0]}async function tA(n){let{movementConfig:e,authKey:t}=n,r=await un({movementConfig:e,authenticationKey:t.derivedAddress()});return bs({movementConfig:e,accountAddress:r})}async function bs(n){let{movementConfig:e,accountAddress:t,options:r}=n;try{let[i,o]=await Promise.all([gi({movementConfig:e,accountAddress:t}),Ai({movementConfig:e,accountAddress:t,options:{limit:1}})]),s=i.find(c=>c.type==="0x1::account::Account");if(!s&&o.length===0)return!1;if(!r?.withAuthKey)return!0;let a;return s?a=s.data.authentication_key:a=t.toStringLong(),a===r.withAuthKey.toString()}catch(i){throw new Error(`Error while checking if account exists at ${t.toString()}: ${i}`)}}var Sc={typeParameters:[],parameters:[new ae,_.u8(),new ae,_.u8(),_.u8(),_.u8()]};async function ws(n){let{movementConfig:e,fromAccount:t,options:r}=n;if("toNewPrivateKey"in n)return mi({movementConfig:e,fromAccount:t,toNewPrivateKey:n.toNewPrivateKey,options:r});if("toAccount"in n)return n.toAccount instanceof te?mi({movementConfig:e,fromAccount:t,toNewPrivateKey:n.toAccount.privateKey,options:r}):mi({movementConfig:e,fromAccount:t,toAccount:n.toAccount,options:r});throw new Error("Invalid arguments")}async function mi(n){let{movementConfig:e,fromAccount:t,options:r}=n,i=await cn({movementConfig:e,accountAddress:t.accountAddress}),o;"toNewPrivateKey"in n?o=et.fromPrivateKey({privateKey:n.toNewPrivateKey,legacy:!0}):o=n.toAccount;let a=new so({sequenceNumber:BigInt(i.sequence_number),originator:t.accountAddress,currentAuthKey:u.from(i.authentication_key),newPublicKey:o.publicKey}).bcsToBytes(),c=t.sign(a),d=o.sign(a);return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::account::rotate_authentication_key",functionArguments:[new Pe(t.signingScheme),P.U8(t.publicKey.toUint8Array()),new Pe(o.signingScheme),P.U8(o.publicKey.toUint8Array()),P.U8(c.toUint8Array()),P.U8(d.toUint8Array())],abi:Sc},options:r})}var vc={typeParameters:[],parameters:[new ae,_.u8()]};async function Ts(n){let{movementConfig:e,fromAccount:t,toNewPublicKey:r,options:i}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::account::rotate_authentication_key_from_public_key",functionArguments:[new Pe(as(r)),P.U8(li(r).toUint8Array())],abi:vc},options:i})}async function Sr(n){let{movementConfig:e,publicKey:t,options:r}=n,i=r?.noMultiKey??!1;if(i&&t instanceof Ce)throw new Error("Multi-key accounts are not supported when noMultiKey is true.");let o=[t];t instanceof K&&t.publicKey instanceof b?o.push(t.publicKey):t instanceof b&&o.push(new K(t));let[s,a]=await Promise.all([Promise.all(o.map(async p=>{let m=await Cc({movementConfig:e,publicKey:p});if(m)return{...m,publicKey:p}})),!(t instanceof Ce)&&!i?Kc({movementConfig:e,publicKey:t,options:r}):Promise.resolve([])]),c=[];for(let p of s)p&&c.push(p);o.push(...a);let d=new Map(o.map(p=>[p.authKey().toString(),p])),l=await xc({movementConfig:e,authKeys:o.map(p=>p.authKey()),options:r});for(let p of l){if(c.find(g=>g.accountAddress===p.accountAddress))continue;let m=d.get(p.authKey.toString());if(!m)throw new Error(`No publicKey found for authentication key ${p.authKey}. This should never happen.`);c.push({accountAddress:p.accountAddress,publicKey:m,lastTransactionVersion:p.lastTransactionVersion})}return c.sort((p,m)=>m.lastTransactionVersion-p.lastTransactionVersion)}async function hi(n){let{movementConfig:e,signer:t,options:r}=n;if(t instanceof q||t instanceof $e)return Tr({movementConfig:e,privateKey:t,options:r});if(t instanceof te||t instanceof ce)return Tr({movementConfig:e,privateKey:t.privateKey,options:r});if(t instanceof Te||t instanceof Me)return Pc({movementConfig:e,keylessAccount:t,options:r});if(t instanceof nt&&t.signers.length===1)return hi({movementConfig:e,signer:t.signers[0],options:r});if(t instanceof vn&&t.signers.length===1)return Tr({movementConfig:e,privateKey:t.signers[0],options:r});throw new Error("Unknown signer type")}async function Pc(n){let{movementConfig:e,keylessAccount:t,options:r}=n,i=await Sr({movementConfig:e,publicKey:t.getAnyPublicKey(),options:r}),o={proof:t.proofOrPromise,jwt:t.jwt,ephemeralKeyPair:t.ephemeralKeyPair,pepper:t.pepper,verificationKeyHash:t.verificationKeyHash},s=[];for(let{accountAddress:a,publicKey:c}of i)if(c instanceof Ce){if(c.getSignaturesRequired()>1)continue;if(c instanceof ee)throw new Error("Keyless authentication cannot be used for multi-ed25519 accounts. This should never happen.");c instanceof H&&s.push(new nt({multiKey:c,signers:[t],address:a}))}else t instanceof Me?s.push(Me.create({...o,address:a,jwkAddress:t.publicKey.jwkAddress})):s.push(Te.create({...o,address:a}));return s}async function Tr(n){let{movementConfig:e,privateKey:t,options:r}=n,i=et.fromPrivateKey({privateKey:t,legacy:!1}),o=await Sr({movementConfig:e,publicKey:new K(t.publicKey()),options:r}),s=[];for(let{accountAddress:a,publicKey:c}of o)if(c instanceof Ce){if(c.getSignaturesRequired()>1)continue;c instanceof ee?s.push(new vn({publicKey:c,signers:[t],address:a})):c instanceof H&&s.push(new nt({multiKey:c,signers:[i],address:a}))}else{let d=c instanceof b;s.push(et.fromPrivateKey({privateKey:t,address:a,legacy:d}))}return s}async function Kc(n){let{movementConfig:e,publicKey:t,options:r}=n;if(t instanceof Ce)throw new Error("Public key is a multi-key.");let i=r?.includeUnverified??!1,o=t instanceof K?t:new K(t),s=o.publicKey,a=ki(o.variant),c={public_key:{_eq:s.toString()},public_key_type:{_eq:a},...i?{}:{is_public_key_used:{_eq:!0}}},d={query:fo,variables:{where_condition:c}},{public_key_auth_keys:l}=await v({movementConfig:e,query:d,originMethod:"getMultiKeysForPublicKey"});return l.map(m=>{switch(m.signature_type){case"multi_ed25519_signature":return ee.deserializeWithoutLength(F.fromHex(m.account_public_key));case"multi_key_signature":return H.deserialize(F.fromHex(m.account_public_key));default:throw new Error(`Unknown multi-signature type: ${m.signature_type}`)}})}async function xc(n){let{movementConfig:e,authKeys:t,options:r}=n,i=r?.includeUnverified??!1;if(t.length===0)throw new Error("No authentication keys provided");let o={auth_key:{_in:t.map(c=>c.toString())},...i?{}:{is_auth_key_used:{_eq:!0}}},s={query:ao,variables:{where_condition:o,order_by:[{last_transaction_version:"desc"}]}},{auth_key_account_addresses:a}=await v({movementConfig:e,query:s,originMethod:"getAccountAddressesForAuthKeys"});return a.map(c=>({authKey:new re({data:c.auth_key}),accountAddress:new u(y.hexInputToUint8Array(c.account_address)),lastTransactionVersion:Number(c.last_transaction_version)}))}async function Ic(n){let{movementConfig:e,accountAddress:t}=n,r=await pi({movementConfig:e,accountAddress:t,options:{limit:1}});return r.length===0?0:Number(r[0].version)}async function Cc(n){let{movementConfig:e,publicKey:t}=n,r=t.authKey().derivedAddress(),[i,o]=await Promise.all([Ic({movementConfig:e,accountAddress:r}),bs({movementConfig:e,accountAddress:r,options:{withAuthKey:t.authKey()}})]);if(o)return{accountAddress:r,lastTransactionVersion:i}}async function k(n){let{movementConfig:e,payload:t,options:r}=n,i=await es({...t,movementConfig:e}),o=new ne;i.serialize(o);let s=o.toUint8Array(),{data:a}=await Gt({movementConfig:e,path:"view",originMethod:"view",contentType:"application/x.aptos.view_function+bcs",params:{ledger_version:r?.ledgerVersion},body:s});return a}async function Ss(n){let{movementConfig:e,payload:t,options:r}=n,{data:i}=await Gt({movementConfig:e,originMethod:"viewJson",path:"view",params:{ledger_version:r?.ledgerVersion},body:{function:t.function,type_arguments:t.typeArguments??[],arguments:t.functionArguments??[]}});return i}async function vs(n){let{movementConfig:e,sender:t,authenticationFunction:r,options:i}=n,{moduleAddress:o,moduleName:s,functionName:a}=me(r);return A({movementConfig:e,sender:t,data:{function:"0x1::account_abstraction::add_authentication_function",typeArguments:[],functionArguments:[o,s,a],abi:{typeParameters:[],parameters:[new R,new f(x()),new f(x())]}},options:i})}async function Ps(n){let{movementConfig:e,sender:t,authenticationFunction:r,options:i}=n,{moduleAddress:o,moduleName:s,functionName:a}=me(r);return A({movementConfig:e,sender:t,data:{function:"0x1::account_abstraction::remove_authentication_function",typeArguments:[],functionArguments:[o,s,a],abi:{typeParameters:[],parameters:[new R,new f(x()),new f(x())]}},options:i})}async function Ks(n){let{movementConfig:e,sender:t,options:r}=n;return A({movementConfig:e,sender:t,data:{function:"0x1::account_abstraction::remove_authenticator",typeArguments:[],functionArguments:[],abi:{typeParameters:[],parameters:[]}},options:r})}var Mt=class{constructor(e){this.config=e;this.isAccountAbstractionEnabled=async e=>{let t=await this.getAuthenticationFunction(e),{moduleAddress:r,moduleName:i,functionName:o}=me(e.authenticationFunction);return t?.some(s=>u.fromString(r).equals(s.moduleAddress)&&i===s.moduleName&&o===s.functionName)??!1};this.enableAccountAbstractionTransaction=this.addAuthenticationFunctionTransaction;this.disableAccountAbstractionTransaction=async e=>{let{accountAddress:t,authenticationFunction:r,options:i}=e;return r?this.removeAuthenticationFunctionTransaction({accountAddress:t,authenticationFunction:r,options:i}):this.removeDispatchableAuthenticatorTransaction({accountAddress:t,options:i})}}async addAuthenticationFunctionTransaction(e){let{accountAddress:t,authenticationFunction:r,options:i}=e;return vs({movementConfig:this.config,authenticationFunction:r,sender:t,options:i})}async removeAuthenticationFunctionTransaction(e){let{accountAddress:t,authenticationFunction:r,options:i}=e;return Ps({movementConfig:this.config,sender:t,authenticationFunction:r,options:i})}async removeDispatchableAuthenticatorTransaction(e){let{accountAddress:t,options:r}=e;return Ks({movementConfig:this.config,sender:t,options:r})}async getAuthenticationFunction(e){let{accountAddress:t}=e,[{vec:r}]=await k({movementConfig:this.config,payload:{function:"0x1::account_abstraction::dispatchable_authenticator",functionArguments:[u.from(t)],abi:{typeParameters:[],parameters:[new R],returnTypes:[]}}});if(r.length!==0)return r[0].map(i=>({moduleAddress:u.fromString(i.module_address),moduleName:i.module_name,functionName:i.function_name}))}};var In=class{constructor(e){this.config=e;this.abstraction=new Mt(e)}async getAccountInfo(e){return cn({movementConfig:this.config,...e})}async getAccountModules(e){return cs({movementConfig:this.config,...e})}async getAccountModulesPage(e){return us({movementConfig:this.config,...e})}async getAccountModule(e){return fr({movementConfig:this.config,...e})}async getAccountTransactions(e){return pi({movementConfig:this.config,...e})}async getAccountResources(e){return gi({movementConfig:this.config,...e})}async getAccountResourcesPage(e){return ds({movementConfig:this.config,...e})}async getAccountResource(e){return yi({movementConfig:this.config,...e})}async lookupOriginalAccountAddress(e){return un({movementConfig:this.config,...e})}async getAccountTokensCount(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_transactions_processor"}),ms({movementConfig:this.config,...e})}async getAccountOwnedTokens(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ls({movementConfig:this.config,...e})}async getAccountOwnedTokensFromCollectionAddress(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ps({movementConfig:this.config,...e})}async getAccountCollectionsWithOwnedTokens(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),gs({movementConfig:this.config,...e})}async getAccountTransactionsCount(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_transactions_processor"}),ys({movementConfig:this.config,...e})}async getAccountCoinsData(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"fungible_asset_processor"}),fi({movementConfig:this.config,...e})}async getAccountCoinsCount(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"fungible_asset_processor"}),fs({movementConfig:this.config,...e})}async getAccountMOVEAmount(e){return this.getAccountCoinAmount({coinType:Ve,faMetadataAddress:Hi,...e})}async getAccountCoinAmount(e){let{accountAddress:t,coinType:r,faMetadataAddress:i}=e,o=r;r===void 0&&i!==void 0&&(o=await Bt(async()=>{try{let c=(await k({movementConfig:this.config,payload:{function:"0x1::coin::paired_coin",functionArguments:[i]}}))[0];if(c.vec.length>0&&Yi(c.vec[0]))return Zi(c.vec[0])}catch{}},`coin-mapping-${i.toString()}`,1e3*60*5)());let s;if(r!==void 0&&i!==void 0)s=u.from(i).toStringLong();else if(r!==void 0&&i===void 0)r===Ve?s=u.A.toStringLong():s=Hn(u.A,r).toStringLong();else if(r===void 0&&i!==void 0){let c=u.from(i);s=c.toStringLong(),c===u.A&&(o=Ve)}else throw new Error("Either coinType, faMetadataAddress, or both must be provided");if(o!==void 0){let[c]=await k({movementConfig:this.config,payload:{function:"0x1::coin::balance",typeArguments:[o],functionArguments:[t]}});return parseInt(c,10)}let[a]=await k({movementConfig:this.config,payload:{function:"0x1::primary_fungible_store::balance",typeArguments:["0x1::object::ObjectCore"],functionArguments:[t,s]}});return parseInt(a,10)}async getBalance(e){return As({movementConfig:this.config,...e})}async getAccountOwnedObjects(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"default_processor"}),Ai({movementConfig:this.config,...e})}async deriveAccountFromPrivateKey(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_restoration_processor"}),await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),hs({movementConfig:this.config,...e})}async deriveOwnedAccountsFromSigner(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_restoration_processor"}),await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),hi({movementConfig:this.config,...e})}async getAccountsForPublicKey(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_restoration_processor"}),await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),Sr({movementConfig:this.config,...e})}};var dn=["A name must be between 3 and 63 characters long,","and can only contain lowercase a-z, 0-9, and hyphens.","A name may not start or end with a hyphen."].join(" ");function mn(n){return!(!n||n.length<3||n.length>63||!/^[a-z\d][a-z\d-]{1,61}[a-z\d]$/.test(n))}function B(n){let[e,t,...r]=n.replace(/\.move$/,"").split(".");if(r.length>0)throw new Error(`${n} is invalid. A name can only have two parts, a domain and a subdomain separated by a "."`);if(!mn(e))throw new Error(`${e} is not valid. ${dn}`);if(t&&!mn(t))throw new Error(`${t} is not valid. ${dn}`);return{domainName:t||e,subdomainName:t?e:void 0}}var Ec=(t=>(t[t.Independent=0]="Independent",t[t.FollowsDomain=1]="FollowsDomain",t))(Ec||{});function xs(n){if(!n)return!1;let e=new Date(n.domain_expiration_timestamp).getTime()<Date.now(),t=new Date(n.expiration_timestamp).getTime()<Date.now();return n.subdomain&&e?!1:n.subdomain&&n.subdomain_expiration_policy===1?!0:!t}var jA=process.env.MNS_TEST_ACCOUNT_PRIVATE_KEY??"ed25519-priv-0x37368b46ce665362562c6d1d4ec01a08c8644c488690df5a17e13ba163e20221",_c=process.env.MNS_TEST_ACCOUNT_ADDRESS??"0x585fc9f0f0c54183b039ffc770ca282ebd87307916c215a3e692f2f8e4305e82",Mc={testnet:"0x67bf15b3eed0fc62deea9630bbbd1d48842550655140f913699a1ca7e6f727d8",mainnet:null,local:_c,custom:null,devnet:null,shelbynet:null,netna:null};function N(n){let e=Mc[n.network];if(!e)throw new Error(`The MNS contract is not deployed to ${n.network}`);return e}var vr=n=>{if(n&&typeof n=="object"&&"vec"in n&&Array.isArray(n.vec))return n.vec[0]};async function Is(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t),s=await k({movementConfig:e,payload:{function:`${r}::router::get_owner_addr`,functionArguments:[i,o]}}),a=vr(s[0]);return a?u.from(a):void 0}async function Cs(n){let{movementConfig:e,expiration:t,name:r,sender:i,targetAddress:o,toAddress:s,options:a,transferable:c}=n,d=N(e),{domainName:l,subdomainName:p}=B(r),m=t.policy==="subdomain:independent"||t.policy==="subdomain:follow-domain";if(p&&!m)throw new Error("Subdomains must have an expiration policy of either 'subdomain:independent' or 'subdomain:follow-domain'");if(m&&!p)throw new Error(`Policy is set to ${t.policy} but no subdomain was provided`);if(t.policy==="domain"){let g=t.years??1;if(g!==1)throw new Error("For now, names can only be registered for 1 year at a time");let U=g*31536e3;return await A({movementConfig:e,sender:i.accountAddress.toString(),data:{function:`${d}::router::register_domain`,functionArguments:[l,U,o,s]},options:a})}throw p?new Error("Subdomain registration is not currently supported on Movement. Movement's MNS contract uses a key staking mechanism for subdomains. See the router module's stake_key_for_subdomain and buy_and_stake_key_for_subdomain functions."):new Error(`${t.policy} requires a subdomain to be provided.`)}async function Es(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t);try{let s=await k({movementConfig:e,payload:{function:`${r}::router::get_expiration`,functionArguments:[i,o]}});return Number(s[0])*1e3}catch{return}}async function _s(n){let{movementConfig:e,address:t}=n,r=N(e),i=await k({movementConfig:e,payload:{function:`${r}::router::get_primary_name`,functionArguments:[u.from(t).toString()]}}),o=vr(i[1]),s=vr(i[0]);if(o)return[s,o].filter(Boolean).join(".")}async function Ms(n){let{movementConfig:e,sender:t,name:r,options:i}=n,o=N(e);if(!r)return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${o}::router::clear_primary_name`,functionArguments:[]},options:i});let{domainName:s,subdomainName:a}=B(r);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${o}::router::set_primary_name`,functionArguments:[s,a]},options:i})}async function ks(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t),s=await k({movementConfig:e,payload:{function:`${r}::router::get_target_addr`,functionArguments:[i,o]}}),a=vr(s[0]);return a?u.from(a):void 0}async function Us(n){let{movementConfig:e,sender:t,name:r,address:i,options:o}=n,s=N(e),{domainName:a,subdomainName:c}=B(r);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${s}::router::set_target_addr`,functionArguments:[a,c,i]},options:o})}async function Fs(n){let{movementConfig:e,name:t}=n,{domainName:r,subdomainName:i=""}=B(t),a=(await v({movementConfig:e,query:{query:Lt,variables:{where_condition:{domain:{_eq:r},subdomain:{_eq:i}},limit:1}},originMethod:"getName"})).current_aptos_names[0];return a&&(a=En(a)),xs(a)?a:void 0}async function zs(n){let{movementConfig:e,options:t,accountAddress:r}=n,i=await bi({movementConfig:e});return(await v({movementConfig:e,originMethod:"getAccountNames",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},owner_address:{_eq:r.toString()},expiration_timestamp:{_gte:i}}}}})).current_aptos_names.map(En)}async function Ds(n){let{movementConfig:e,options:t,accountAddress:r}=n,i=await bi({movementConfig:e});return(await v({movementConfig:e,originMethod:"getAccountDomains",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},owner_address:{_eq:r.toString()},expiration_timestamp:{_gte:i},subdomain:{_eq:""}}}}})).current_aptos_names.map(En)}async function Ns(n){let{movementConfig:e,options:t,accountAddress:r}=n,i=await bi({movementConfig:e});return(await v({movementConfig:e,originMethod:"getAccountSubdomains",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},owner_address:{_eq:r.toString()},expiration_timestamp:{_gte:i},subdomain:{_neq:""}}}}})).current_aptos_names.map(En)}async function Os(n){let{movementConfig:e,options:t,domain:r}=n;return(await v({movementConfig:e,originMethod:"getDomainSubdomains",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},domain:{_eq:r},subdomain:{_neq:""}}}}})).current_aptos_names.map(En).filter(xs)}async function bi(n){let{movementConfig:e}=n,t=N(e),[r]=await k({movementConfig:e,payload:{function:`${t}::config::reregistration_grace_sec`,functionArguments:[]}}),i=r/60/60/24,o=()=>new Date;return new Date(o().setDate(o().getDate()-i)).toISOString()}async function Rs(n){let{movementConfig:e,sender:t,name:r,years:i=1,options:o}=n,s=N(e),a=i*31536e3,{domainName:c,subdomainName:d}=B(r);if(d)throw new Error("Subdomains cannot be renewed");if(i!==1)throw new Error("Currently, only 1 year renewals are supported");return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${s}::router::renew_domain`,functionArguments:[c,a]},options:o})}function En(n){return{...n,expiration_timestamp:new Date(n.expiration_timestamp).getTime()}}async function Gs(n){let{movementConfig:e,domainName:t,amount:r=1}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);if(s)throw new Error("Can only get key price for domains, not subdomains");let d=(await k({movementConfig:e,payload:{function:`${i}::key_manager::get_key_info_by_domain_name`,functionArguments:[o]}}))[0]?.vec?.[0]?.metadata?.inner;if(!d)throw new Error(`No key found for domain ${o}. Keys are created when the first subdomain is registered.`);let l=await k({movementConfig:e,payload:{function:`${i}::key_manager::get_buy_price_after_fee`,functionArguments:[d,r]}});return BigInt(l[0])}async function Bs(n){let{movementConfig:e,domainName:t,amount:r=1}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);if(s)throw new Error("Can only get key price for domains, not subdomains");let d=(await k({movementConfig:e,payload:{function:`${i}::key_manager::get_key_info_by_domain_name`,functionArguments:[o]}}))[0]?.vec?.[0]?.metadata?.inner;if(!d)throw new Error(`No key found for domain ${o}. Keys are created when the first subdomain is registered.`);let l=await k({movementConfig:e,payload:{function:`${i}::key_manager::get_sell_price_after_fee`,functionArguments:[d,r]}});return BigInt(l[0])}async function Vs(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,targetAddress:o,toAddress:s,referrer:a,options:c}=n,d=N(e),{domainName:l}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);let p=o?u.from(o).toString():null,m=s?u.from(s).toString():null,g=a?u.from(a).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${d}::router::buy_and_stake_key_for_subdomain`,functionArguments:[l,i,p,m,g]},options:c})}async function Hs(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,targetAddress:o,toAddress:s,options:a}=n,c=N(e),{domainName:d}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);let l=o?u.from(o).toString():null,p=s?u.from(s).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${c}::router::stake_key_for_subdomain`,functionArguments:[d,i,l,p]},options:a})}async function Ls(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,options:o}=n,s=N(e),{domainName:a}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${s}::router::unstake_key_for_subdomain`,functionArguments:[a,i]},options:o})}async function $s(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,referrer:o,options:s}=n,a=N(e),{domainName:c}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);let d=o?u.from(o).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${a}::router::unstake_and_sell_key_for_subdomain`,functionArguments:[c,i,d]},options:s})}async function qs(n){let{movementConfig:e,name:t,account:r}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);return(await k({movementConfig:e,payload:{function:`${i}::router::can_register`,functionArguments:[u.from(r).toString(),o,s??null]}}))[0]}async function Ws(n){let{movementConfig:e,name:t,account:r}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);return(await k({movementConfig:e,payload:{function:`${i}::router::is_name_owner`,functionArguments:[u.from(r).toString(),o,s??null]}}))[0]}async function js(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t);try{let a=(await k({movementConfig:e,payload:{function:`${r}::router::get_token_addr`,functionArguments:[i,o??null]}}))[0];return a?u.from(a):void 0}catch{return}}async function Qs(n){let{movementConfig:e,sender:t,name:r,options:i}=n,o=N(e),{domainName:s,subdomainName:a}=B(r);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${o}::router::clear_target_addr`,functionArguments:[s,a??null]},options:i})}async function Js(n){let{movementConfig:e,sender:t,domainName:r,amount:i,referrer:o,options:s}=n,a=N(e),{domainName:c,subdomainName:d}=B(r);if(d)throw new Error("Can only buy keys for domains, not subdomains");let m=(await k({movementConfig:e,payload:{function:`${a}::key_manager::get_key_info_by_domain_name`,functionArguments:[c]}}))[0]?.vec?.[0]?.metadata?.inner;if(!m)throw new Error(`No key found for domain ${c}. Keys are created when the first subdomain is registered.`);let g=o?u.from(o).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${a}::router::buy_keys`,functionArguments:[m,i,g]},options:s})}async function Zs(n){let{movementConfig:e,sender:t,domainName:r,amount:i,referrer:o,options:s}=n,a=N(e),{domainName:c,subdomainName:d}=B(r);if(d)throw new Error("Can only sell keys for domains, not subdomains");let m=(await k({movementConfig:e,payload:{function:`${a}::key_manager::get_key_info_by_domain_name`,functionArguments:[c]}}))[0]?.vec?.[0]?.metadata?.inner;if(!m)throw new Error(`No key found for domain ${c}.`);let g=o?u.from(o).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${a}::router::sell_keys`,functionArguments:[m,i,g]},options:s})}async function Ys(n){let{movementConfig:e,name:t,years:r=1}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);if(s)throw new Error("Can only get price for domains, not subdomains. Subdomains use key staking.");let c=r*31536e3,d=await k({movementConfig:e,payload:{function:`${i}::price_model_v2::price_for_domain`,functionArguments:[o,c]}});return BigInt(d[0])}var _n=class{constructor(e){this.config=e}async getOwnerAddress(e){return Is({movementConfig:this.config,...e})}async getExpiration(e){return Es({movementConfig:this.config,...e})}async getTargetAddress(e){return ks({movementConfig:this.config,...e})}async setTargetAddress(e){return Us({movementConfig:this.config,...e})}async getPrimaryName(e){return _s({movementConfig:this.config,...e})}async setPrimaryName(e){return Ms({movementConfig:this.config,...e})}async registerName(e){return Cs({movementConfig:this.config,...e})}async renewDomain(e){return Rs({movementConfig:this.config,...e})}async getName(e){return Fs({movementConfig:this.config,...e})}async getAccountNames(e){return zs({movementConfig:this.config,...e})}async getAccountDomains(e){return Ds({movementConfig:this.config,...e})}async getAccountSubdomains(e){return Ns({movementConfig:this.config,...e})}async getDomainSubdomains(e){return Os({movementConfig:this.config,...e})}async getKeyBuyPrice(e){return Gs({movementConfig:this.config,...e})}async getKeySellPrice(e){return Bs({movementConfig:this.config,...e})}async buyAndStakeKeyForSubdomain(e){return Vs({movementConfig:this.config,...e})}async stakeKeyForSubdomain(e){return Hs({movementConfig:this.config,...e})}async unstakeKeyForSubdomain(e){return Ls({movementConfig:this.config,...e})}async unstakeAndSellKeyForSubdomain(e){return $s({movementConfig:this.config,...e})}async canRegister(e){return qs({movementConfig:this.config,...e})}async isNameOwner(e){return Ws({movementConfig:this.config,...e})}async getTokenAddress(e){return js({movementConfig:this.config,...e})}async clearTargetAddress(e){return Qs({movementConfig:this.config,...e})}async buyKeys(e){return Js({movementConfig:this.config,...e})}async sellKeys(e){return Zs({movementConfig:this.config,...e})}async getDomainPrice(e){return Ys({movementConfig:this.config,...e})}};var kc={typeParameters:[{constraints:[]}],parameters:[new R,new J]};async function Xs(n){let{movementConfig:e,sender:t,recipient:r,amount:i,coinType:o,options:s}=n;return A({movementConfig:e,sender:t,data:{function:"0x1::aptos_account::transfer_coins",typeArguments:[o??Ve],functionArguments:[r,i],abi:kc},options:s})}var Mn=class{constructor(e){this.config=e}async transferCoinTransaction(e){return Xs({movementConfig:this.config,...e})}};var ut={BOOLEAN:"bool",U8:"u8",U16:"u16",U32:"u32",U64:"u64",U128:"u128",U256:"u256",ADDRESS:"address",STRING:"0x1::string::String",ARRAY:"vector<u8>"},Se="0x4::token::Token";async function ea(n){let{movementConfig:e,digitalAssetAddress:t}=n,r={token_data_id:{_eq:u.from(t).toStringLong()}};return(await v({movementConfig:e,query:{query:vo,variables:{where_condition:r}},originMethod:"getDigitalAssetData"})).current_token_datas_v2[0]}async function ta(n){let{movementConfig:e,digitalAssetAddress:t}=n,r={token_data_id:{_eq:u.from(t).toStringLong()},amount:{_gt:0}};return(await v({movementConfig:e,query:{query:Hr,variables:{where_condition:r}},originMethod:"getCurrentDigitalAssetOwnership"})).current_token_ownerships_v2[0]}async function na(n){let{movementConfig:e,ownerAddress:t,options:r}=n,i={owner_address:{_eq:u.from(t).toStringLong()},amount:{_gt:0}},o={query:Hr,variables:{where_condition:i,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:o,originMethod:"getOwnedDigitalAssets"})).current_token_ownerships_v2}async function ra(n){let{movementConfig:e,digitalAssetAddress:t,options:r}=n,i={token_data_id:{_eq:u.from(t).toStringLong()}},o={query:So,variables:{where_condition:i,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:o,originMethod:"getDigitalAssetActivity"})).token_activities_v2}var Uc={typeParameters:[],parameters:[new f(x()),new J,new f(x()),new f(x()),new L,new L,new L,new L,new L,new L,new L,new L,new L,new J,new J]};async function ia(n){let{movementConfig:e,options:t,creator:r}=n;return A({movementConfig:e,sender:r.accountAddress,data:{function:"0x4::aptos_token::create_collection",functionArguments:[new z(n.description),new he(n.maxSupply??Mi),new z(n.name),new z(n.uri),new $(n.mutableDescription??!0),new $(n.mutableRoyalty??!0),new $(n.mutableURI??!0),new $(n.mutableTokenDescription??!0),new $(n.mutableTokenName??!0),new $(n.mutableTokenProperties??!0),new $(n.mutableTokenURI??!0),new $(n.tokensBurnableByCreator??!0),new $(n.tokensFreezableByCreator??!0),new he(n.royaltyNumerator??0),new he(n.royaltyDenominator??1)],abi:Uc},options:t})}async function ln(n){let{movementConfig:e,options:t}=n,r=t?.where;t?.tokenStandard&&(r.token_standard={_eq:t?.tokenStandard??"v2"});let i={query:Ao,variables:{where_condition:r,offset:t?.offset,limit:t?.limit}};return(await v({movementConfig:e,query:i,originMethod:"getCollectionData"})).current_collections_v2[0]}async function oa(n){let{movementConfig:e,creatorAddress:t,collectionName:r,options:i}=n,o=u.from(t),s={collection_name:{_eq:r},creator_address:{_eq:o.toStringLong()}};return i?.tokenStandard&&(s.token_standard={_eq:i?.tokenStandard??"v2"}),ln({movementConfig:e,options:{...i,where:s}})}async function sa(n){let{movementConfig:e,creatorAddress:t,options:r}=n,o={creator_address:{_eq:u.from(t).toStringLong()}};return r?.tokenStandard&&(o.token_standard={_eq:r?.tokenStandard??"v2"}),ln({movementConfig:e,options:{...r,where:o}})}async function aa(n){let{movementConfig:e,collectionId:t,options:r}=n,o={collection_id:{_eq:u.from(t).toStringLong()}};return r?.tokenStandard&&(o.token_standard={_eq:r?.tokenStandard??"v2"}),ln({movementConfig:e,options:{...r,where:o}})}async function ca(n){let{creatorAddress:e,collectionName:t,options:r,movementConfig:i}=n,o=u.from(e),s={collection_name:{_eq:t},creator_address:{_eq:o.toStringLong()}};return r?.tokenStandard&&(s.token_standard={_eq:r?.tokenStandard??"v2"}),(await ln({movementConfig:i,options:{where:s}})).collection_id}var Fc={typeParameters:[],parameters:[new f(x()),new f(x()),new f(x()),new f(x()),new _(new f(x())),new _(new f(x())),new _(_.u8())]};async function ua(n){let{movementConfig:e,options:t,creator:r,collection:i,description:o,name:s,uri:a,propertyKeys:c,propertyTypes:d,propertyValues:l}=n,p=d?.map(m=>ut[m]);return A({movementConfig:e,sender:r.accountAddress,data:{function:"0x4::aptos_token::mint",functionArguments:[new z(i),new z(o),new z(s),new z(a),P.MoveString(c??[]),P.MoveString(p??[]),va(l??[],p??[])],abi:Fc},options:t})}var zc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new R]};async function da(n){let{movementConfig:e,sender:t,digitalAssetAddress:r,recipient:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::object::transfer",typeArguments:[o??Se],functionArguments:[u.from(r),u.from(i)],abi:zc},options:s})}var Dc={typeParameters:[],parameters:[new f(x()),new f(x()),new f(x()),new f(x()),new _(new f(x())),new _(new f(x())),new _(_.u8()),new R]};async function ma(n){let{movementConfig:e,account:t,collection:r,description:i,name:o,uri:s,recipient:a,propertyKeys:c,propertyTypes:d,propertyValues:l,options:p}=n;if(c?.length!==l?.length)throw new Error("Property keys and property values counts do not match");if(d?.length!==l?.length)throw new Error("Property types and property values counts do not match");let m=d?.map(g=>ut[g]);return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::mint_soul_bound",functionArguments:[r,i,o,s,P.MoveString(c??[]),P.MoveString(m??[]),va(l??[],m??[]),a],abi:Dc},options:p})}var Nc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0)))]};async function la(n){let{movementConfig:e,creator:t,digitalAssetAddress:r,digitalAssetType:i,options:o}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::burn",typeArguments:[i??Se],functionArguments:[u.from(r)],abi:Nc},options:o})}var Oc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0)))]};async function pa(n){let{movementConfig:e,creator:t,digitalAssetAddress:r,digitalAssetType:i,options:o}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::freeze_transfer",typeArguments:[i??Se],functionArguments:[r],abi:Oc},options:o})}var Rc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0)))]};async function ga(n){let{movementConfig:e,creator:t,digitalAssetAddress:r,digitalAssetType:i,options:o}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::unfreeze_transfer",typeArguments:[i??Se],functionArguments:[r],abi:Rc},options:o})}var Gc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function ya(n){let{movementConfig:e,creator:t,description:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::set_description",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Gc},options:s})}var Bc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function fa(n){let{movementConfig:e,creator:t,name:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::set_name",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Bc},options:s})}var Vc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function Aa(n){let{movementConfig:e,creator:t,uri:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::set_uri",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Vc},options:s})}var Hc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x()),new f(x()),_.u8()]};async function ha(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::add_property",typeArguments:[a??Se],functionArguments:[u.from(s),new z(r),new z(ut[i]),P.U8(wi(o,ut[i]))],abi:Hc},options:c})}var Lc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function ba(n){let{movementConfig:e,creator:t,propertyKey:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::remove_property",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Lc},options:s})}var $c={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x()),new f(x()),_.u8()]};async function wa(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::update_property",typeArguments:[a??Se],functionArguments:[u.from(s),new z(r),new z(ut[i]),wi(o,ut[i])],abi:$c},options:c})}var qc={typeParameters:[{constraints:["key"]},{constraints:[]}],parameters:[new f(ye(new G(0))),new f(x()),new G(1)]};async function Ta(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::add_typed_property",typeArguments:[a??Se,ut[i]],functionArguments:[u.from(s),new z(r),o],abi:qc},options:c})}var Wc={typeParameters:[{constraints:["key"]},{constraints:[]}],parameters:[new f(ye(new G(0))),new f(x()),new G(1)]};async function Sa(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::update_typed_property",typeArguments:[a??Se,ut[i]],functionArguments:[u.from(s),new z(r),o],abi:Wc},options:c})}function va(n,e){let t=new Array;return e.forEach((r,i)=>{t.push(wi(n[i],r))}),t}function wi(n,e){let t=ke(e);return _t(n,t,0,[]).bcsToBytes()}var kn=class{constructor(e){this.config=e}async getCollectionData(e){await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"});let{creatorAddress:t,collectionName:r,options:i}=e,o=u.from(t),s={collection_name:{_eq:r},creator_address:{_eq:o.toStringLong()}};return i?.tokenStandard&&(s.token_standard={_eq:i?.tokenStandard??"v2"}),ln({movementConfig:this.config,options:{where:s}})}async getCollectionDataByCreatorAddressAndCollectionName(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),oa({movementConfig:this.config,...e})}async getCollectionDataByCreatorAddress(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),sa({movementConfig:this.config,...e})}async getCollectionDataByCollectionId(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),aa({movementConfig:this.config,...e})}async getCollectionId(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ca({movementConfig:this.config,...e})}async getDigitalAssetData(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ea({movementConfig:this.config,...e})}async getCurrentDigitalAssetOwnership(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ta({movementConfig:this.config,...e})}async getOwnedDigitalAssets(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),na({movementConfig:this.config,...e})}async getDigitalAssetActivity(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ra({movementConfig:this.config,...e})}async createCollectionTransaction(e){return ia({movementConfig:this.config,...e})}async mintDigitalAssetTransaction(e){return ua({movementConfig:this.config,...e})}async transferDigitalAssetTransaction(e){return da({movementConfig:this.config,...e})}async mintSoulBoundTransaction(e){return ma({movementConfig:this.config,...e})}async burnDigitalAssetTransaction(e){return la({movementConfig:this.config,...e})}async freezeDigitalAssetTransaferTransaction(e){return pa({movementConfig:this.config,...e})}async unfreezeDigitalAssetTransaferTransaction(e){return ga({movementConfig:this.config,...e})}async setDigitalAssetDescriptionTransaction(e){return ya({movementConfig:this.config,...e})}async setDigitalAssetNameTransaction(e){return fa({movementConfig:this.config,...e})}async setDigitalAssetURITransaction(e){return Aa({movementConfig:this.config,...e})}async addDigitalAssetPropertyTransaction(e){return ha({movementConfig:this.config,...e})}async removeDigitalAssetPropertyTransaction(e){return ba({movementConfig:this.config,...e})}async updateDigitalAssetPropertyTransaction(e){return wa({movementConfig:this.config,...e})}async addDigitalAssetTypedPropertyTransaction(e){return Ta({movementConfig:this.config,...e})}async updateDigitalAssetTypedPropertyTransaction(e){return Sa({movementConfig:this.config,...e})}};async function Pa(n){let{movementConfig:e,accountAddress:t,amount:r,options:i}=n,o=i?.timeoutSecs||20,{data:s}=await no({movementConfig:e,path:"mint",params:{address:u.from(t).toString(),amount:r},originMethod:"fundAccount"}),a=s[0],c=await $t({movementConfig:e,transactionHash:a,options:{timeoutSecs:o,checkSuccess:i?.checkSuccess}});if(c.type==="user_transaction")return c;throw new Error(`Unexpected transaction received for fund account: ${c.type}`)}var Un=class{constructor(e){this.config=e}async fundAccount(e){let t=await Pa({movementConfig:this.config,...e});return(e.options?.waitForIndexer===void 0||e.options?.waitForIndexer)&&await Mo({movementConfig:this.config,minimumLedgerVersion:BigInt(t.version),processorType:"fungible_asset_processor"}),t}};async function Pr(n){let{movementConfig:e,options:t}=n,r={query:To,variables:{where_condition:t?.where,limit:t?.limit,offset:t?.offset}};return(await v({movementConfig:e,query:r,originMethod:"getFungibleAssetMetadata"})).fungible_asset_metadata}async function Ka(n){let{movementConfig:e,options:t}=n,r={query:wo,variables:{where_condition:t?.where,limit:t?.limit,offset:t?.offset}};return(await v({movementConfig:e,query:r,originMethod:"getFungibleAssetActivities"})).fungible_asset_activities}async function xa(n){let{movementConfig:e,options:t}=n,r={query:ho,variables:{where_condition:t?.where,limit:t?.limit,offset:t?.offset}};return(await v({movementConfig:e,query:r,originMethod:"getCurrentFungibleAssetBalances"})).current_fungible_asset_balances}var Ia={typeParameters:[{constraints:[]}],parameters:[ke("0x1::object::Object"),new R,new J]};async function Ca(n){let{movementConfig:e,sender:t,fungibleAssetMetadataAddress:r,recipient:i,amount:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::primary_fungible_store::transfer",typeArguments:["0x1::fungible_asset::Metadata"],functionArguments:[r,i,o],abi:Ia},options:s})}async function Ea(n){let{movementConfig:e,sender:t,fromStore:r,toStore:i,amount:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::dispatchable_fungible_asset::transfer",typeArguments:["0x1::fungible_asset::FungibleStore"],functionArguments:[r,i,o],abi:Ia},options:s})}var Fn=class{constructor(e){this.config=e}async getFungibleAssetMetadata(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),Pr({movementConfig:this.config,...e})}async getFungibleAssetMetadataByAssetType(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),(await Pr({movementConfig:this.config,options:{where:{asset_type:{_eq:e.assetType}}}}))[0]}async getFungibleAssetMetadataByCreatorAddress(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),await Pr({movementConfig:this.config,options:{where:{creator_address:{_eq:u.from(e.creatorAddress).toStringLong()}}}})}async getFungibleAssetActivities(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),Ka({movementConfig:this.config,...e})}async getCurrentFungibleAssetBalances(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),xa({movementConfig:this.config,...e})}async transferFungibleAsset(e){return Ca({movementConfig:this.config,...e})}async transferFungibleAssetBetweenStores(e){return Ea({movementConfig:this.config,...e})}};var zn=class{constructor(e){this.config=e}async getLedgerInfo(){return jn({movementConfig:this.config})}async getChainId(){return(await this.getLedgerInfo()).chain_id}async getBlockByVersion(e){return ko({movementConfig:this.config,...e})}async getBlockByHeight(e){return Uo({movementConfig:this.config,...e})}async view(e){return k({movementConfig:this.config,...e})}async viewJson(e){return Ss({movementConfig:this.config,...e})}async getChainTopUserTransactions(e){return Po({movementConfig:this.config,...e})}async queryIndexer(e){return v({movementConfig:this.config,...e})}async getIndexerLastSuccessVersion(){return Ko({movementConfig:this.config})}async getProcessorStatus(e){return xo({movementConfig:this.config,processorType:e})}};import{jwtDecode as Qc}from"jwt-decode";async function Kr(n){let{movementConfig:e,jwt:t,ephemeralKeyPair:r,uidKey:i="sub",derivationPath:o}=n,s={jwt_b64:t,epk:r.getPublicKey().bcsToHex().toStringWithoutPrefix(),exp_date_secs:r.expiryDateSecs,epk_blinder:y.fromHexInput(r.blinder).toStringWithoutPrefix(),uid_key:i,derivation_path:o},{data:a}=await ro({movementConfig:e,path:"fetch",body:s,originMethod:"getPepper",overrides:{WITH_CREDENTIALS:!1}});return y.fromHexInput(a.pepper).toUint8Array()}async function Ti(n){let{movementConfig:e,jwt:t,ephemeralKeyPair:r,pepper:i=await Kr(n),uidKey:o="sub",maxExpHorizonSecs:s=(await sn({movementConfig:e})).maxExpHorizonSecs}=n;if(y.fromHexInput(i).toUint8Array().length!==Te.PEPPER_LENGTH)throw new Error(`Pepper needs to be ${Te.PEPPER_LENGTH} bytes`);let a=Qc(t);if(typeof a.iat!="number")throw new Error("iat was not found");if(s<r.expiryDateSecs-a.iat)throw Error(`The EphemeralKeyPair is too long lived. It's lifespan must be less than ${s}`);let c={jwt_b64:t,epk:r.getPublicKey().bcsToHex().toStringWithoutPrefix(),epk_blinder:y.fromHexInput(r.blinder).toStringWithoutPrefix(),exp_date_secs:r.expiryDateSecs,exp_horizon_secs:s,pepper:y.fromHexInput(i).toStringWithoutPrefix(),uid_key:o},{data:d}=await io({movementConfig:e,path:"prove",body:c,originMethod:"getProof",overrides:{WITH_CREDENTIALS:!1}}),l=d.proof,p=new dt({a:l.a,b:l.b,c:l.c});return new fe({proof:new pn(p,0),trainingWheelsSignature:Ge.fromHex(d.training_wheels_signature),expHorizonSecs:s})}async function _a(n){let{movementConfig:e,jwt:t,jwkAddress:r,uidKey:i,proofFetchCallback:o,pepper:s=await Kr(n)}=n,{verificationKey:a,maxExpHorizonSecs:c}=await sn({movementConfig:e}),d=Ti({...n,pepper:s,maxExpHorizonSecs:c}),l=o?d:await d;if(r!==void 0){let g=V.fromJwtAndPepper({jwt:t,pepper:s,jwkAddress:r,uidKey:i}),h=await un({movementConfig:e,authenticationKey:g.authKey().derivedAddress()});return Me.create({...n,address:h,proof:l,pepper:s,proofFetchCallback:o,jwkAddress:r,verificationKey:a})}let p=I.fromJwtAndPepper({jwt:t,pepper:s,uidKey:i}),m=await un({movementConfig:e,authenticationKey:p.authKey().derivedAddress()});return Te.create({...n,address:m,proof:l,pepper:s,proofFetchCallback:o,verificationKey:a})}async function Ma(n){let{movementConfig:e,sender:t,iss:r,options:i}=n,{jwksUrl:o}=n;o===void 0&&(qi.test(r)?o="https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com":o=r.endsWith("/")?`${r}.well-known/jwks.json`:`${r}/.well-known/jwks.json`);let s;try{if(s=await fetch(o),!s.ok)throw new Error(`${s.status} ${s.statusText}`)}catch(c){let d;throw c instanceof Error?d=`${c.message}`:d=`error unknown - ${c}`,S.fromErrorType({type:14,details:`Failed to fetch JWKS at ${o}: ${d}`})}let a=await s.json();return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::jwks::update_federated_jwk_set",functionArguments:[r,P.MoveString(a.keys.map(c=>c.kid)),P.MoveString(a.keys.map(c=>c.alg)),P.MoveString(a.keys.map(c=>c.e)),P.MoveString(a.keys.map(c=>c.n))]},options:i})}var Dn=class{constructor(e){this.config=e}async getPepper(e){return Kr({movementConfig:this.config,...e})}async getProof(e){return Ti({movementConfig:this.config,...e})}async deriveKeylessAccount(e){return _a({movementConfig:this.config,...e})}async updateFederatedKeylessJwkSetTransaction(e){return Ma({movementConfig:this.config,...e})}};async function Jc(n){let{movementConfig:e,options:t}=n,r={query:Wn,variables:{where_condition:t?.where,offset:t?.offset,limit:t?.limit,order_by:t?.orderBy}};return(await v({movementConfig:e,query:r,originMethod:"getObjectData"})).current_objects}async function ka(n){let{movementConfig:e,objectAddress:t,options:r}=n,o={object_address:{_eq:u.from(t).toStringLong()}};return(await Jc({movementConfig:e,options:{...r,where:o}}))[0]}var Nn=class{constructor(e){this.config=e}async getObjectDataByObjectAddress(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),ka({movementConfig:this.config,...e})}};async function Ua(n){let{movementConfig:e,poolAddress:t}=n,r=u.from(t).toStringLong(),o=await v({movementConfig:e,query:{query:Vr,variables:{where_condition:{pool_address:{_eq:r}}}}});return o.num_active_delegator_per_pool[0]?o.num_active_delegator_per_pool[0].num_active_delegator:0}async function Fa(n){let{movementConfig:e,options:t}=n,r={query:Vr,variables:{order_by:t?.orderBy}};return(await v({movementConfig:e,query:r})).num_active_delegator_per_pool}async function za(n){let{movementConfig:e,delegatorAddress:t,poolAddress:r}=n,i={query:bo,variables:{delegatorAddress:u.from(t).toStringLong(),poolAddress:u.from(r).toStringLong()}};return(await v({movementConfig:e,query:i})).delegated_staking_activities}var On=class{constructor(e){this.config=e}async getNumberOfDelegators(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"stake_processor"}),Ua({movementConfig:this.config,...e})}async getNumberOfDelegatorsForAllPools(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"stake_processor"}),Fa({movementConfig:this.config,...e})}async getDelegatedStakingActivities(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"stake_processor"}),za({movementConfig:this.config,...e})}};var xr=class{constructor(e){this.config=e}async simple(e){return A({movementConfig:this.config,...e})}async multiAgent(e){return A({movementConfig:this.config,...e})}};import Yc from"eventemitter3";var Ir=class{constructor(e,t,r,i,o){this.lastUncommintedNumber=null;this.currentNumber=null;this.lock=!1;this.movementConfig=e,this.account=t,this.maxWaitTime=r,this.maximumInFlight=i,this.sleepTime=o}async nextSequenceNumber(){for(;this.lock;)await fn(this.sleepTime);this.lock=!0;let e=BigInt(0);try{if((this.lastUncommintedNumber===null||this.currentNumber===null)&&await this.initialize(),this.currentNumber-this.lastUncommintedNumber>=this.maximumInFlight){await this.update();let t=He();for(;this.currentNumber-this.lastUncommintedNumber>=this.maximumInFlight;)await fn(this.sleepTime),He()-t>this.maxWaitTime?(console.warn(`Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`),await this.initialize()):await this.update()}e=this.currentNumber,this.currentNumber+=BigInt(1)}catch(t){console.error("error in getting next sequence number for this account",t)}finally{this.lock=!1}return e}async initialize(){let{sequence_number:e}=await cn({movementConfig:this.movementConfig,accountAddress:this.account.accountAddress});this.currentNumber=BigInt(e),this.lastUncommintedNumber=BigInt(e)}async update(){let{sequence_number:e}=await cn({movementConfig:this.movementConfig,accountAddress:this.account.accountAddress});return this.lastUncommintedNumber=BigInt(e),this.lastUncommintedNumber}async synchronize(){if(this.lastUncommintedNumber!==this.currentNumber){for(;this.lock;)await fn(this.sleepTime);this.lock=!0;try{await this.update();let e=He();for(;this.lastUncommintedNumber!==this.currentNumber;)He()-e>this.maxWaitTime?(console.warn(`Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`),await this.initialize()):(await fn(this.sleepTime),await this.update())}catch(e){console.error("error in synchronizing this account sequence number with the one on chain",e)}finally{this.lock=!1}}}};import Zc from"eventemitter3";var Da="fulfilled",Na=(o=>(o.TransactionSent="transactionSent",o.TransactionSendFailed="transactionSendFailed",o.TransactionExecuted="transactionExecuted",o.TransactionExecutionFailed="transactionExecutionFailed",o.ExecutionFinish="executionFinish",o))(Na||{}),Cr=class extends Zc{constructor(t,r,i=30,o=100,s=10){super();this.taskQueue=new Zn;this.transactionsQueue=new Zn;this.outstandingTransactions=new Zn;this.sentTransactions=[];this.executedTransactions=[];this.movementConfig=t,this.account=r,this.started=!1,this.accountSequnceNumber=new Ir(t,r,i,o,s)}async submitNextTransaction(){try{for(;;){let t=await this.accountSequnceNumber.nextSequenceNumber();if(t===null)return;let r=await this.generateNextTransaction(this.account,t);if(!r)return;let i=wr({movementConfig:this.movementConfig,transaction:r,signer:this.account});await this.outstandingTransactions.enqueue([i,t])}}catch(t){if(t instanceof $r)return;throw new Error(`Submit transaction failed for ${this.account.accountAddress.toString()} with error ${t}`)}}async processTransactions(){try{for(;;){let t=[],r=[],[i,o]=await this.outstandingTransactions.dequeue();for(t.push(i),r.push(o);!this.outstandingTransactions.isEmpty();)[i,o]=await this.outstandingTransactions.dequeue(),t.push(i),r.push(o);let s=await Promise.allSettled(t);for(let a=0;a<s.length&&a<r.length;a+=1){let c=s[a];o=r[a],c.status===Da?(this.sentTransactions.push([c.value.hash,o,null]),this.emit("transactionSent",{message:`transaction hash ${c.value.hash} has been committed to chain`,transactionHash:c.value.hash}),await this.checkTransaction(c,o)):(this.sentTransactions.push([c.status,o,c.reason]),this.emit("transactionSendFailed",{message:`failed to commit transaction ${this.sentTransactions.length} with error ${c.reason}`,error:c.reason}))}this.emit("executionFinish",{message:`execute ${s.length} transactions finished`})}}catch(t){if(t instanceof $r)return;throw new Error(`Process execution failed for ${this.account.accountAddress.toString()} with error ${t}`)}}async checkTransaction(t,r){try{let i=[];i.push($t({movementConfig:this.movementConfig,transactionHash:t.value.hash}));let o=await Promise.allSettled(i);for(let s=0;s<o.length;s+=1){let a=o[s];a.status===Da?(this.executedTransactions.push([a.value.hash,r,null]),this.emit("transactionExecuted",{message:`transaction hash ${a.value.hash} has been executed on chain`,transactionHash:t.value.hash})):(this.executedTransactions.push([a.status,r,a.reason]),this.emit("transactionExecutionFailed",{message:`failed to execute transaction ${this.executedTransactions.length} with error ${a.reason}`,error:a.reason}))}}catch(i){throw new Error(`Check transaction failed for ${this.account.accountAddress.toString()} with error ${i}`)}}async push(t,r){this.transactionsQueue.enqueue([t,r])}async generateNextTransaction(t,r){if(this.transactionsQueue.isEmpty())return;let[i,o]=await this.transactionsQueue.dequeue();return A({movementConfig:this.movementConfig,sender:t.accountAddress,data:i,options:{...o,accountSequenceNumber:r,replayProtectionNonce:void 0}})}async run(){try{for(;!this.taskQueue.isCancelled();)await(await this.taskQueue.dequeue())()}catch(t){throw new Error(`Unable to start transaction batching: ${t}`)}}start(){if(this.started)throw new Error("worker has already started");this.started=!0,this.taskQueue.enqueue(()=>this.submitNextTransaction()),this.taskQueue.enqueue(()=>this.processTransactions()),this.run()}stop(){if(this.taskQueue.isCancelled())throw new Error("worker has already stopped");this.started=!1,this.taskQueue.cancel()}};var Er=class extends Yc{constructor(e){super(),this.config=e}start(e){let{sender:t}=e;this.account=t,this.transactionWorker=new Cr(this.config,t),this.transactionWorker.start(),this.registerToEvents()}push(e){let{data:t,options:r}=e;for(let i of t)this.transactionWorker.push(i,r)}registerToEvents(){this.transactionWorker.on("transactionSent",async e=>{this.emit("transactionSent",e)}),this.transactionWorker.on("transactionSendFailed",async e=>{this.emit("transactionSendFailed",e)}),this.transactionWorker.on("transactionExecuted",async e=>{this.emit("transactionExecuted",e)}),this.transactionWorker.on("transactionExecutionFailed",async e=>{this.emit("transactionExecutionFailed",e)}),this.transactionWorker.on("executionFinish",async e=>{this.emit("executionFinish",e)})}forSingleAccount(e){try{let{sender:t,data:r,options:i}=e;this.start({sender:t}),this.push({data:r,options:i})}catch(t){throw new Error(`failed to submit transactions with error: ${t}`)}}};var gn=class{constructor(e){this.config=e}async simple(e){return di({movementConfig:this.config,...e})}async multiAgent(e){return di({movementConfig:this.config,...e})}};Ur([Wr],gn.prototype,"simple",1),Ur([Wr],gn.prototype,"multiAgent",1);var _r=class{constructor(e){this.config=e}async simple(e){return qr(this.config,e),xn({movementConfig:this.config,...e})}async multiAgent(e){return qr(this.config,e),xn({movementConfig:this.config,...e})}};var Rn=class{constructor(e){this.config=e,this.build=new xr(this.config),this.simulate=new gn(this.config),this.submit=new _r(this.config),this.batch=new Er(this.config)}async getTransactions(e){return Io({movementConfig:this.config,...e})}async getTransactionByVersion(e){return Co({movementConfig:this.config,...e})}async getTransactionByHash(e){return Eo({movementConfig:this.config,...e})}async isPendingTransaction(e){return _o({movementConfig:this.config,...e})}async waitForTransaction(e){return $t({movementConfig:this.config,...e})}async getGasPriceEstimation(){return Qn({movementConfig:this.config})}getSigningMessage(e){return is(e)}async publishPackageTransaction(e){return ss({movementConfig:this.config,...e})}async rotateAuthKey(e){return ws({movementConfig:this.config,...e})}async rotateAuthKeyUnverified(e){return Ts({movementConfig:this.config,...e})}sign(e){return hr({...e})}signAsFeePayer(e){return br({...e})}async batchTransactionsForSingleAccount(e){try{let{sender:t,data:r,options:i}=e;this.batch.forSingleAccount({sender:t,data:r,options:i})}catch(t){throw new Error(`failed to submit transactions with error: ${t}`)}}async signAndSubmitTransaction(e){return wr({movementConfig:this.config,...e})}async signAndSubmitAsFeePayer(e){return os({movementConfig:this.config,...e})}};var X=class{constructor(e){this.config=e??new Do,this.account=new In(this.config),this.abstraction=new Mt(this.config),this.mns=new _n(this.config),this.coin=new Mn(this.config),this.digitalAsset=new kn(this.config),this.faucet=new Un(this.config),this.fungibleAsset=new Fn(this.config),this.general=new zn(this.config),this.staking=new On(this.config),this.transaction=new Rn(this.config),this.table=new Lr(this.config),this.keyless=new Dn(this.config),this.object=new Nn(this.config)}setIgnoreTransactionSubmitter(e){this.config.setIgnoreTransactionSubmitter(e)}};function ue(n,e,t){Object.getOwnPropertyNames(e.prototype).forEach(r=>{let i=Object.getOwnPropertyDescriptor(e.prototype,r);i&&Object.defineProperty(n.prototype,r,{value:function(...o){return this[t][r](...o)},writable:i.writable,configurable:i.configurable,enumerable:i.enumerable})})}ue(X,In,"account");ue(X,Mt,"abstraction");ue(X,_n,"mns");ue(X,Mn,"coin");ue(X,kn,"digitalAsset");ue(X,Event,"event");ue(X,Un,"faucet");ue(X,Fn,"fungibleAsset");ue(X,zn,"general");ue(X,On,"staking");ue(X,Rn,"transaction");ue(X,Lr,"table");ue(X,Dn,"keyless");ue(X,Nn,"object");var ct=class n extends Vn{constructor(e){super();let t=e.constructor.name;if(t===b.name)this.publicKey=e,this.variant=0;else throw new Error(`Unsupported key for EphemeralPublicKey - ${t}`)}verifySignature(e){let{message:t,signature:r}=e;return this.publicKey.verifySignature({message:t,signature:r.signature})}async verifySignatureAsync(e){return this.verifySignature(e)}serialize(e){if(this.publicKey instanceof b)e.serializeU32AsUleb128(0),this.publicKey.serialize(e);else throw new Error("Unknown public key type")}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(b.deserialize(e));throw new Error(`Unknown variant index for EphemeralPublicKey: ${t}`)}static isPublicKey(e){return e instanceof n}},Ge=class n extends Y{constructor(e){super();let t=e.constructor.name;if(t===C.name)this.signature=e;else throw new Error(`Unsupported signature for EphemeralSignature - ${t}`)}static fromHex(e){let t=y.fromHexInput(e),r=new F(t.toUint8Array());return n.deserialize(r)}serialize(e){if(this.signature instanceof C)e.serializeU32AsUleb128(0),this.signature.serialize(e);else throw new Error("Unknown signature type")}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(C.deserialize(e));throw new Error(`Unknown variant index for EphemeralSignature: ${t}`)}};var nu=1e7,Si=120,ru=30,iu=330,ou=120,su=350,au=300,cu=93,Be=class Be extends Fe{constructor(e,t){super();let r=y.fromHexInput(t).toUint8Array();if(r.length!==Be.ID_COMMITMENT_LENGTH)throw new Error(`Id Commitment length in bytes should be ${Be.ID_COMMITMENT_LENGTH}`);this.iss=e,this.idCommitment=r}authKey(){let e=new ne;return e.serializeU32AsUleb128(3),e.serializeFixedBytes(this.bcsToBytes()),re.fromSchemeAndBytes({scheme:2,input:e.toUint8Array()})}verifySignature(e){try{return Mr({...e,publicKey:this}),!0}catch(t){if(t instanceof S)return!1;throw t}}async verifySignatureAsync(e){return Ci({...e,publicKey:this})}serialize(e){e.serializeStr(this.iss),e.serializeBytes(this.idCommitment)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new Be(t,r)}static load(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new Be(t,r)}static isPublicKey(e){return e instanceof Be}static create(e){return Oa(e),new Be(e.iss,Oa(e))}static fromJwtAndPepper(e){let{jwt:t,pepper:r,uidKey:i="sub"}=e,o=Ra(t);if(typeof o.iss!="string")throw new Error("iss was not found");if(typeof o.aud!="string")throw new Error("aud was not found or an array of values");let s=o[i];return Be.create({iss:o.iss,uidKey:i,uidVal:s,aud:o.aud,pepper:r})}static isInstance(e){return"iss"in e&&typeof e.iss=="string"&&"idCommitment"in e&&e.idCommitment instanceof Uint8Array}};Be.ID_COMMITMENT_LENGTH=32;var I=Be;async function Ci(n){let{movementConfig:e,publicKey:t,message:r,signature:i,jwk:o,keylessConfig:s=await sn({movementConfig:e}),options:a}=n;try{if(!(i instanceof oe))throw S.fromErrorType({type:26,details:"Not a keyless signature"});return Mr({message:r,publicKey:t,signature:i,jwk:o||await Qr({movementConfig:e,publicKey:t,kid:i.getJwkKid()}),keylessConfig:s}),!0}catch(c){if(a?.throwErrorWithReason)throw c;return!1}}function Mr(n){let{publicKey:e,message:t,signature:r,keylessConfig:i,jwk:o}=n,{verificationKey:s,maxExpHorizonSecs:a,trainingWheelsPubkey:c}=i;if(!(r instanceof oe))throw S.fromErrorType({type:26,details:"Not a keyless signature"});if(!(r.ephemeralCertificate.signature instanceof fe))throw S.fromErrorType({type:26,details:"Unsupported ephemeral certificate variant"});let d=r.ephemeralCertificate.signature;if(!(d.proof.proof instanceof dt))throw S.fromErrorType({type:26,details:"Unsupported proof variant for ZeroKnowledgeSig"});let l=d.proof.proof;if(r.expiryDateSecs<He())throw S.fromErrorType({type:27,details:"The expiryDateSecs is in the past"});if(d.expHorizonSecs>a)throw S.fromErrorType({type:28});if(!r.ephemeralPublicKey.verifySignature({message:t,signature:r.ephemeralSignature}))throw S.fromErrorType({type:29});let p=uu({publicKey:e,signature:r,jwk:o,keylessConfig:i});if(!s.verifyProof({publicInputsHash:p,groth16Proof:l}))throw S.fromErrorType({type:32});if(c){if(!d.trainingWheelsSignature)throw S.fromErrorType({type:30});let m=new Pi(l,p);if(!c.verifySignature({message:m.hash(),signature:d.trainingWheelsSignature}))throw S.fromErrorType({type:31})}}function uu(n){let{publicKey:e,signature:t,jwk:r,keylessConfig:i}=n,o=e instanceof I?e:e.keylessPublicKey;if(!(t.ephemeralCertificate.signature instanceof fe))throw new Error("Signature is not a ZeroKnowledgeSig");let s=t.ephemeralCertificate.signature,a=[];return a.push(...$n(t.ephemeralPublicKey.toUint8Array(),i.maxCommitedEpkBytes)),a.push(Vt(o.idCommitment)),a.push(t.expiryDateSecs),a.push(s.expHorizonSecs),a.push(ze(o.iss,i.maxIssValBytes)),s.extraField?(a.push(1n),a.push(ze(s.extraField,i.maxExtraFieldBytes))):(a.push(0n),a.push(ze(" ",i.maxExtraFieldBytes))),a.push(ze(tu(t.jwtHeader,!0)+".",i.maxJwtHeaderB64Bytes)),a.push(r.toScalar()),s.overrideAudVal?(a.push(ze(s.overrideAudVal,Si)),a.push(1n)):(a.push(ze("",Si)),a.push(0n)),Ht(a)}async function Qr(n){let{movementConfig:e,publicKey:t,kid:r}=n,i=t instanceof I?t:t.keylessPublicKey,{iss:o}=i,s,a=t instanceof V?t.jwkAddress:void 0;try{s=await lu({movementConfig:e,jwkAddr:a})}catch(l){throw S.fromErrorType({type:24,error:l,details:`Failed to fetch ${a?"Federated":"Patched"}JWKs ${a?`for address ${a}`:"0x1"}`})}let c=s.get(o);if(c===void 0)throw S.fromErrorType({type:7,details:`JWKs for issuer ${o} not found.`});let d=c.find(l=>l.kid===r);if(d===void 0)throw S.fromErrorType({type:6,details:`JWK with kid '${r}' for issuer '${o}' not found.`});return d}function Oa(n){let{uidKey:e,uidVal:t,aud:r,pepper:i}=n,o=[Vt(y.fromHexInput(i).toUint8Array()),ze(r,Si),ze(t,iu),ze(e,ru)];return Rr(Ht(o),I.ID_COMMITMENT_LENGTH)}var oe=class n extends Y{constructor(e){super();let{jwtHeader:t,ephemeralCertificate:r,expiryDateSecs:i,ephemeralPublicKey:o,ephemeralSignature:s}=e;this.jwtHeader=t,this.ephemeralCertificate=r,this.expiryDateSecs=i,this.ephemeralPublicKey=o,this.ephemeralSignature=s}getJwkKid(){return gu(this.jwtHeader).kid}serialize(e){this.ephemeralCertificate.serialize(e),e.serializeStr(this.jwtHeader),e.serializeU64(this.expiryDateSecs),this.ephemeralPublicKey.serialize(e),this.ephemeralSignature.serialize(e)}static deserialize(e){let t=on.deserialize(e),r=e.deserializeStr(),i=e.deserializeU64(),o=ct.deserialize(e),s=Ge.deserialize(e);return new n({jwtHeader:r,expiryDateSecs:Number(i),ephemeralCertificate:t,ephemeralPublicKey:o,ephemeralSignature:s})}static getSimulationSignature(){return new n({jwtHeader:"{}",ephemeralCertificate:new on(new fe({proof:new pn(new dt({a:new Uint8Array(32),b:new Uint8Array(64),c:new Uint8Array(32)}),0),expHorizonSecs:0}),0),expiryDateSecs:0,ephemeralPublicKey:new ct(new b(new Uint8Array(32))),ephemeralSignature:new Ge(new C(new Uint8Array(64)))})}static isSignature(e){return e instanceof n}},on=class n extends Y{constructor(e,t){super(),this.signature=e,this.variant=t}toUint8Array(){return this.signature.toUint8Array()}serialize(e){e.serializeU32AsUleb128(this.variant),this.signature.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(fe.deserialize(e),t);throw new Error(`Unknown variant index for EphemeralCertificate: ${t}`)}},Gn=class Gn extends w{constructor(e){if(super(),this.data=y.fromHexInput(e).toUint8Array(),this.data.length!==32)throw new Error("Input needs to be 32 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(32);return new Gn(t)}toArray(){let e=this.toProjectivePoint();return[e.x.toString(),e.y.toString(),e.pz.toString()]}toProjectivePoint(){let e=new Uint8Array(this.data);e.reverse();let t=(e[0]&128)>>7,{Fp:r}=Ue.fields,i=r.create(vi(e)),o=r.sqrt(r.add(r.pow(i,3n),Gn.B)),s=r.neg(o),a=o>s==(t===1)?o:s;return Ue.G1.ProjectivePoint.fromAffine({x:i,y:a})}};Gn.B=Ue.fields.Fp.create(3n);var it=Gn;function vi(n){if(n.length!==32)throw new Error("Input should be 32 bytes");let e=new Uint8Array(n);return e[0]=e[0]&63,Xc(e)}var Bn=class Bn extends w{constructor(e){if(super(),this.data=y.fromHexInput(e).toUint8Array(),this.data.length!==64)throw new Error("Input needs to be 64 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(64);return new Bn(t)}toArray(){let e=this.toProjectivePoint();return[[e.x.c0.toString(),e.x.c1.toString()],[e.y.c0.toString(),e.y.c1.toString()],[e.pz.c0.toString(),e.pz.c1.toString()]]}toProjectivePoint(){let e=new Uint8Array(this.data),t=e.slice(0,32).reverse(),r=e.slice(32,64).reverse(),i=(r[0]&128)>>7,{Fp2:o}=Ue.fields,s=o.fromBigTuple([vi(t),vi(r)]),a=o.sqrt(o.add(o.pow(s,3n),Bn.B)),c=o.neg(a),l=(a.c1>c.c1||a.c1===c.c1&&a.c0>c.c0)===(i===1)?a:c;return Ue.G2.ProjectivePoint.fromAffine({x:s,y:l})}};Bn.B=Ue.fields.Fp2.fromBigTuple([19485874751759354771024239261021720505790618469301721065564631296452457478373n,266929791119991161246907387137283842545076965332900288569378510910307636690n]);var kt=Bn,dt=class n extends oo{constructor(e){super();let{a:t,b:r,c:i}=e;this.a=new it(t),this.b=new kt(r),this.c=new it(i)}serialize(e){this.a.serialize(e),this.b.serialize(e),this.c.serialize(e)}static deserialize(e){let t=it.deserialize(e).bcsToBytes(),r=kt.deserialize(e).bcsToBytes(),i=it.deserialize(e).bcsToBytes();return new n({a:t,b:r,c:i})}toSnarkJsJson(){return{protocol:"groth16",curve:"bn128",pi_a:this.a.toArray(),pi_b:this.b.toArray(),pi_c:this.c.toArray()}}},Pi=class n extends w{constructor(t,r){super();this.domainSeparator="APTOS::Groth16ProofAndStatement";if(this.proof=t,this.publicInputsHash=typeof r=="bigint"?Rr(r,32):y.fromHexInput(r).toUint8Array(),this.publicInputsHash.length!==32)throw new Error("Invalid public inputs hash")}serialize(t){this.proof.serialize(t),t.serializeFixedBytes(this.publicInputsHash)}static deserialize(t){return new n(dt.deserialize(t),t.deserializeFixedBytes(32))}hash(){return Re(this.bcsToBytes(),this.domainSeparator)}},pn=class n extends w{constructor(e,t){super(),this.proof=e,this.variant=t}serialize(e){e.serializeU32AsUleb128(this.variant),this.proof.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(dt.deserialize(e),t);throw new Error(`Unknown variant index for ZkProof: ${t}`)}},fe=class n extends Y{constructor(e){super();let{proof:t,expHorizonSecs:r,trainingWheelsSignature:i,extraField:o,overrideAudVal:s}=e;this.proof=t,this.expHorizonSecs=r,this.trainingWheelsSignature=i,this.extraField=o,this.overrideAudVal=s}static fromBytes(e){return n.deserialize(new F(e))}serialize(e){this.proof.serialize(e),e.serializeU64(this.expHorizonSecs),e.serializeOption(this.extraField),e.serializeOption(this.overrideAudVal),e.serializeOption(this.trainingWheelsSignature)}static deserialize(e){let t=pn.deserialize(e),r=Number(e.deserializeU64()),i=e.deserializeOption("string"),o=e.deserializeOption("string"),s=e.deserializeOption(Ge);return new n({proof:t,expHorizonSecs:r,trainingWheelsSignature:s,extraField:i,overrideAudVal:o})}},Ki=class n{constructor(e){let{verificationKey:t,trainingWheelsPubkey:r,maxExpHorizonSecs:i=nu,maxExtraFieldBytes:o=su,maxJwtHeaderB64Bytes:s=au,maxIssValBytes:a=ou,maxCommitedEpkBytes:c=cu}=e;this.verificationKey=t,this.maxExpHorizonSecs=i,r&&(this.trainingWheelsPubkey=new ct(new b(r))),this.maxExtraFieldBytes=o,this.maxJwtHeaderB64Bytes=s,this.maxIssValBytes=a,this.maxCommitedEpkBytes=c}static create(e,t){return new n({verificationKey:new xi({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2}),maxExpHorizonSecs:Number(t.max_exp_horizon_secs),trainingWheelsPubkey:t.training_wheels_pubkey.vec[0],maxExtraFieldBytes:t.max_extra_field_bytes,maxJwtHeaderB64Bytes:t.max_jwt_header_b64_bytes,maxIssValBytes:t.max_iss_val_bytes,maxCommitedEpkBytes:t.max_commited_epk_bytes})}},xi=class n{constructor(e){let{alphaG1:t,betaG2:r,deltaG2:i,gammaAbcG1:o,gammaG2:s}=e;this.alphaG1=new it(t),this.betaG2=new kt(r),this.deltaG2=new kt(i),this.gammaAbcG1=[new it(o[0]),new it(o[1])],this.gammaG2=new kt(s)}hash(){let e=new ne;return this.serialize(e),eu.create().update(e.toUint8Array()).digest()}serialize(e){this.alphaG1.serialize(e),this.betaG2.serialize(e),this.deltaG2.serialize(e),this.gammaAbcG1[0].serialize(e),this.gammaAbcG1[1].serialize(e),this.gammaG2.serialize(e)}static fromGroth16VerificationKeyResponse(e){return new n({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2})}verifyProof(e){let{publicInputsHash:t,groth16Proof:r}=e;try{let i=r.a.toProjectivePoint(),o=r.b.toProjectivePoint(),s=r.c.toProjectivePoint(),a=this.alphaG1.toProjectivePoint(),c=this.betaG2.toProjectivePoint(),d=this.gammaG2.toProjectivePoint(),l=this.deltaG2.toProjectivePoint(),p=this.gammaAbcG1.map(pt=>pt.toProjectivePoint()),{Fp12:m}=Ue.fields,g=p[0].add(p[1].multiply(t)),h=Ue.pairing(g,d),U=Ue.pairing(i,o),j=Ue.pairing(a,c),de=Ue.pairing(s,l),lt=m.mul(j,m.mul(h,de));return m.eql(U,lt)}catch(i){throw S.fromErrorType({type:32,error:i,details:"Error encountered when checking zero knowledge relation"})}}toSnarkJsJson(){return{protocol:"groth16",curve:"bn128",nPublic:1,vk_alpha_1:this.alphaG1.toArray(),vk_beta_2:this.betaG2.toArray(),vk_gamma_2:this.gammaG2.toArray(),vk_delta_2:this.deltaG2.toArray(),IC:this.gammaAbcG1.map(e=>e.toArray())}}};async function sn(n){let{movementConfig:e}=n;try{return await Bt(async()=>{let[t,r]=await Promise.all([du(n),mu(n)]);return Ki.create(r,t)},`keyless-configuration-${e.network}`,1e3*60*5)()}catch(t){throw t instanceof S?t:S.fromErrorType({type:25,error:t})}}function tt(n){let{jwt:e,uidKey:t="sub"}=n,r;try{r=Ra(e)}catch(o){throw S.fromErrorType({type:12,details:`Failed to parse JWT - ${Wi(o)}`})}if(typeof r.iss!="string")throw S.fromErrorType({type:12,details:"JWT is missing 'iss' in the payload. This should never happen."});if(typeof r.aud!="string")throw S.fromErrorType({type:12,details:"JWT is missing 'aud' in the payload or 'aud' is an array of values."});let i=r[t];return{iss:r.iss,aud:r.aud,uidVal:i}}async function du(n){let{movementConfig:e,options:t}=n,r="0x1::keyless_account::Configuration";try{let{data:i}=await ot({movementConfig:e,originMethod:"getKeylessConfigurationResource",path:`accounts/${u.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return i.data}catch(i){throw S.fromErrorType({type:22,error:i})}}async function mu(n){let{movementConfig:e,options:t}=n,r="0x1::keyless_account::Groth16VerificationKey";try{let{data:i}=await ot({movementConfig:e,originMethod:"getGroth16VerificationKeyResource",path:`accounts/${u.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return i.data}catch(i){throw S.fromErrorType({type:23,error:i})}}async function lu(n){let{movementConfig:e,jwkAddr:t,options:r}=n,i;if(t){let s="0x1::jwks::FederatedJWKs",{data:a}=await ot({movementConfig:e,originMethod:"getKeylessJWKs",path:`accounts/${u.from(t).toString()}/resource/${s}`,params:{ledger_version:r?.ledgerVersion}});i=a}else{let s="0x1::jwks::PatchedJWKs",{data:a}=await ot({movementConfig:e,originMethod:"getKeylessJWKs",path:`accounts/0x1/resource/${s}`,params:{ledger_version:r?.ledgerVersion}});i=a}let o=new Map;for(let s of i.data.jwks.entries){let a=[];for(let c of s.jwks){let{data:d}=c.variant,l=new F(y.fromHexInput(d).toUint8Array()),p=Ii.deserialize(l);a.push(p)}o.set(_i(s.issuer),a)}return o}var Ii=class n extends w{constructor(e){super();let{kid:t,kty:r,alg:i,e:o,n:s}=e;this.kid=t,this.kty=r,this.alg=i,this.e=o,this.n=s}serialize(e){e.serializeStr(this.kid),e.serializeStr(this.kty),e.serializeStr(this.alg),e.serializeStr(this.e),e.serializeStr(this.n)}static fromMoveStruct(e){let{data:t}=e.variant,r=new F(y.fromHexInput(t).toUint8Array());return n.deserialize(r)}toScalar(){if(this.alg!=="RS256")throw S.fromErrorType({type:32,details:"Failed to convert JWK to scalar when calculating the public inputs hash. Only RSA 256 is supported currently"});let e=Ji(this.n),r=pu(e.reverse()).map(i=>Vt(i));return r.push(256n),Ht(r)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeStr(),i=e.deserializeStr(),o=e.deserializeStr(),s=e.deserializeStr();return new n({kid:t,kty:r,alg:i,n:s,e:o})}};function pu(n){let e=[];for(let t=0;t<n.length;t+=24){let r=n.slice(t,Math.min(t+24,n.length));if(r.length<24){let i=new Uint8Array(24);i.set(r),e.push(i)}else e.push(r)}return e}function gu(n){try{let e=JSON.parse(n);if(e.kid===void 0)throw new Error("JWT header missing kid");return e}catch{throw new Error("Failed to parse JWT header.")}}var V=class n extends Fe{constructor(e,t){super(),this.jwkAddress=u.from(e),this.keylessPublicKey=t}authKey(){let e=new ne;return e.serializeU32AsUleb128(4),e.serializeFixedBytes(this.bcsToBytes()),re.fromSchemeAndBytes({scheme:2,input:e.toUint8Array()})}verifySignature(e){try{return Mr({...e,publicKey:this}),!0}catch{return!1}}serialize(e){this.jwkAddress.serialize(e),this.keylessPublicKey.serialize(e)}static deserialize(e){let t=u.deserialize(e),r=I.deserialize(e);return new n(t,r)}static isPublicKey(e){return e instanceof n}async verifySignatureAsync(e){return Ci({...e,publicKey:this})}static create(e){return new n(e.jwkAddress,I.create(e))}static fromJwtAndPepper(e){return new n(e.jwkAddress,I.fromJwtAndPepper(e))}static isInstance(e){return"jwkAddress"in e&&e.jwkAddress instanceof u&&"keylessPublicKey"in e&&e.keylessPublicKey instanceof I}};var Wt=n=>typeof n=="string"?y.isValid(n).valid?n:new TextEncoder().encode(n):n,li=n=>{if(n instanceof b||n instanceof K||n instanceof ee||n instanceof H)return n;if(n instanceof I||n instanceof V)return new K(n);throw new Error(`Unknown account public key: ${n}`)},as=n=>{let e=li(n);if(e instanceof b)return 0;if(e instanceof K)return 2;if(e instanceof ee)return 1;if(e instanceof H)return 3;throw new Error(`Unknown signing scheme: ${e}`)};var Ei=[237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16];function yu(n){let e=n.toUint8Array().slice(32);for(let t=Ei.length-1;t>=0;t-=1){if(e[t]<Ei[t])return!0;if(e[t]>Ei[t])return!1}return!1}var mt=class mt extends Fe{constructor(e){super();let t=y.fromHexInput(e);if(t.toUint8Array().length!==mt.LENGTH)throw new Error(`PublicKey length should be ${mt.LENGTH}`);this.key=t}verifySignature(e){let{message:t,signature:r}=e;if(!yu(r))return!1;let i=Wt(t),o=y.fromHexInput(i).toUint8Array(),s=r.toUint8Array(),a=this.key.toUint8Array();return kr.verify(s,o,a)}async verifySignatureAsync(e){return this.verifySignature(e)}authKey(){return re.fromSchemeAndBytes({scheme:0,input:this.toUint8Array()})}toUint8Array(){return this.key.toUint8Array()}serialize(e){e.serializeBytes(this.key.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new mt(t)}static isPublicKey(e){return e instanceof mt}static isInstance(e){return"key"in e&&e.key?.data?.length===mt.LENGTH}};mt.LENGTH=32;var b=mt,ve=class ve extends w{constructor(e,t){super();let r=Ot.parseHexInput(e,"ed25519",t);if(r.toUint8Array().length!==ve.LENGTH)throw new Error(`PrivateKey length should be ${ve.LENGTH}`);this.signingKey=r}static generate(){let e=kr.utils.randomPrivateKey();return new ve(e,!1)}static fromDerivationPath(e,t){if(!Oi(e))throw new Error(`Invalid derivation path ${e}`);return ve.fromDerivationPathInner(e,Ln(t))}static fromDerivationPathInner(e,t,r=Di){let{key:i,chainCode:o}=Ri(ve.SLIP_0010_SEED,t),s=Bi(e).map(c=>parseInt(c,10)),{key:a}=s.reduce((c,d)=>Gi(c,d+r),{key:i,chainCode:o});return new ve(a,!1)}publicKey(){let e=kr.getPublicKey(this.signingKey.toUint8Array());return new b(e)}sign(e){let t=Wt(e),r=y.fromHexInput(t).toUint8Array(),i=kr.sign(r,this.signingKey.toUint8Array());return new C(i)}toUint8Array(){return this.signingKey.toUint8Array()}toString(){return this.toAIP80String()}toHexString(){return this.signingKey.toString()}toAIP80String(){return Ot.formatPrivateKey(this.signingKey.toString(),"ed25519")}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new ve(t,!1)}static isPrivateKey(e){return e instanceof ve}};ve.LENGTH=32,ve.SLIP_0010_SEED="ed25519 seed";var q=ve,yn=class yn extends Y{constructor(e){super();let t=y.fromHexInput(e);if(t.toUint8Array().length!==yn.LENGTH)throw new Error(`Signature length should be ${yn.LENGTH}`);this.data=t}toUint8Array(){return this.data.toUint8Array()}serialize(e){e.serializeBytes(this.data.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new yn(t)}};yn.LENGTH=64;var C=yn;export{wu as a,Tu as b,ct as c,Ge as d,nu as e,Si as f,ru as g,iu as h,ou as i,su as j,au as k,cu as l,I as m,Ci as n,Mr as o,Qr as p,oe as q,on as r,dt as s,Pi as t,pn as u,fe as v,Ki as w,xi as x,sn as y,tt as z,lu as A,Ii as B,gu as C,V as D,Ke as E,$e as F,Le as G,K as H,O as I,Ce as J,H as K,be as L,ee as M,xe as N,Wt as O,li as P,as as Q,yu as R,b as S,q as T,C as U,Q as V,Ee as W,qe as X,se as Y,Ne as Z,jt as _,gt as $,tr as aa,hn as ba,E as ca,L as da,ae as ea,yt as fa,We as ga,ft as ha,je as ia,At as ja,J as ka,ht as la,Qe as ma,bt as na,Je as oa,wt as pa,R as qa,Tt as ra,nr as sa,G as ta,_ as ua,f as va,Oe as wa,Vd as xa,x as ya,Hd as za,ye as Aa,Ha as Ba,st as Ca,Qt as Da,Jt as Ea,Zt as Fa,Ze as Ga,Yt as Ha,bn as Ia,wn as Ja,rr as Ka,St as La,Xt as Ma,Tn as Na,en as Oa,Sn as Pa,ir as Qa,vt as Ra,we as Sa,or as Ta,Pt as Ua,Kt as Va,sr as Wa,Ye as Xa,xt as Ya,tn as Za,It as _a,Ct as $a,at as ab,Xe as bb,ar as cb,cr as db,Re as eb,nl as fb,_e as gb,te as hb,jr as ib,ce as jb,et as kb,Et as lb,dr as mb,Ae as nb,ur as ob,Te as pb,Me as qb,nt as rb,vn as sb,Ro as tb,Vo as ub,mr as vb,Lo as wb,$o as xb,rt as yb,Xa as zb,lr as Ab,pr as Bb,qo as Cb,Wo as Db,Zr as Eb,gr as Fb,Yr as Gb,ec as Hb,Xr as Ib,ei as Jb,ti as Kb,ni as Lb,ri as Mb,ii as Nb,jo as Ob,M as Pb,Qo as Qb,oc as Rb,W as Sb,ke as Tb,yr as Ub,ac as Vb,si as Wb,ly as Xb,Yo as Yb,Xo as Zb,ai as _b,_t as $b,Ar as ac,dc as bc,es as cc,mc as dc,pc as ec,gc as fc,ci as gc,ts as hc,an as ic,ui as jc,ns as kc,Ry as lc,A as mc,Ac as nc,hc as oc,is as pc,hr as qc,br as rc,di as sc,xn as tc,wr as uc,os as vc,ss as wc,cn as xc,cs as yc,us as zc,fr as Ac,pi as Bc,gi as Cc,ds as Dc,yi as Ec,un as Fc,ms as Gc,ls as Hc,ps as Ic,gs as Jc,ys as Kc,eA as Lc,fi as Mc,fs as Nc,As as Oc,Ai as Pc,hs as Qc,tA as Rc,ws as Sc,Ts as Tc,Sr as Uc,hi as Vc,k as Wc,Ss as Xc,vs as Yc,Ps as Zc,Ks as _c,Mt as $c,In as ad,dn as bd,mn as cd,B as dd,Ec as ed,xs as fd,jA as gd,_c as hd,Is as id,Cs as jd,Es as kd,_s as ld,Ms as md,ks as nd,Us as od,Fs as pd,zs as qd,Ds as rd,Ns as sd,Os as td,Rs as ud,Gs as vd,Bs as wd,Vs as xd,Hs as yd,Ls as zd,$s as Ad,qs as Bd,Ws as Cd,js as Dd,Qs as Ed,Js as Fd,Zs as Gd,Ys as Hd,_n as Id,Xs as Jd,Mn as Kd,ea as Ld,ta as Md,na as Nd,ra as Od,ia as Pd,ln as Qd,oa as Rd,sa as Sd,aa as Td,ca as Ud,ua as Vd,da as Wd,ma as Xd,la as Yd,pa as Zd,ga as _d,ya as $d,fa as ae,Aa as be,ha as ce,ba as de,wa as ee,Ta as fe,Sa as ge,kn as he,Pa as ie,Un as je,Pr as ke,Ka as le,xa as me,Ca as ne,Ea as oe,Fn as pe,zn as qe,Kr as re,Ti as se,_a as te,Ma as ue,Dn as ve,Jc as we,ka as xe,Nn as ye,Ua as ze,Fa as Ae,za as Be,On as Ce,xr as De,Ir as Ee,Da as Fe,Na as Ge,Cr as He,Er as Ie,gn as Je,_r as Ke,Rn as Le,X as Me};
4
- //# sourceMappingURL=chunk-4OOPIIBY.mjs.map
3
+ K-of-N MultiKey transaction.`);this.signaturesRequired=r}getSignaturesRequired(){return this.signaturesRequired}verifySignature(e){let{message:t,signature:r}=e;if(r.signatures.length!==this.signaturesRequired)throw new Error("The number of signatures does not match the number of required signatures");let i=r.bitMapToSignerIndices();for(let o=0;o<r.signatures.length;o+=1){let s=r.signatures[o];if(!this.publicKeys[i[o]].verifySignature({message:t,signature:s}))return!1}return!0}async verifySignatureAsync(e){let{signature:t}=e;try{if(!(t instanceof be))throw new Error("Signature is not a MultiKeySignature");if(t.signatures.length!==this.signaturesRequired)throw new Error("The number of signatures does not match the number of required signatures");let r=t.bitMapToSignerIndices();for(let i=0;i<t.signatures.length;i+=1){let o=t.signatures[i];if(!await this.publicKeys[r[i]].verifySignatureAsync({...e,signature:o}))return!1}return!0}catch(r){if(e.options?.throwErrorWithReason)throw r;return!1}}authKey(){return re.fromSchemeAndBytes({scheme:3,input:this.toUint8Array()})}serialize(e){e.serializeVector(this.publicKeys),e.serializeU8(this.signaturesRequired)}static deserialize(e){let t=e.deserializeVector(K),r=e.deserializeU8();return new n({publicKeys:t,signaturesRequired:r})}getIndex(e){let t=e instanceof K?e:new K(e);return super.getIndex(t)}static isInstance(e){return"publicKeys"in e&&"signaturesRequired"in e}},le=class le extends Y{constructor(e){super();let{signatures:t,bitmap:r}=e;if(t.length>le.MAX_SIGNATURES_SUPPORTED)throw new Error(`The number of signatures cannot be greater than ${le.MAX_SIGNATURES_SUPPORTED}`);if(this.signatures=t.map(o=>o instanceof O?o:new O(o)),!(r instanceof Uint8Array))this.bitmap=le.createBitmap({bits:r});else{if(r.length!==le.BITMAP_LEN)throw new Error(`"bitmap" length should be ${le.BITMAP_LEN}`);this.bitmap=r}let i=this.bitmap.reduce((o,s)=>o+Va(s),0);if(i!==this.signatures.length)throw new Error(`Expecting ${i} signatures from the bitmap, but got ${this.signatures.length}`)}static createBitmap(e){let{bits:t}=e,r=128,i=new Uint8Array([0,0,0,0]),o=new Set;return t.forEach(s=>{if(s>=le.MAX_SIGNATURES_SUPPORTED)throw new Error(`Cannot have a signature larger than ${le.MAX_SIGNATURES_SUPPORTED-1}.`);if(o.has(s))throw new Error("Duplicate bits detected.");o.add(s);let a=Math.floor(s/8),c=i[a];c|=r>>s%8,i[a]=c}),i}bitMapToSignerIndices(){let e=[];for(let t=0;t<this.bitmap.length;t+=1){let r=this.bitmap[t];for(let i=0;i<8;i+=1)(r&128>>i)!==0&&e.push(t*8+i)}return e}serialize(e){e.serializeVector(this.signatures),e.serializeBytes(this.bitmap)}static deserialize(e){let t=e.deserializeVector(O),r=e.deserializeBytes();return new le({signatures:t,bitmap:r})}};le.BITMAP_LEN=4,le.MAX_SIGNATURES_SUPPORTED=le.BITMAP_LEN*8;var be=le;var pe=class pe extends Ce{constructor(e){let{publicKeys:t,threshold:r}=e;if(super({publicKeys:t}),t.length>pe.MAX_KEYS||t.length<pe.MIN_KEYS)throw new Error(`Must have between ${pe.MIN_KEYS} and ${pe.MAX_KEYS} public keys, inclusive`);if(r<pe.MIN_THRESHOLD||r>t.length)throw new Error(`Threshold must be between ${pe.MIN_THRESHOLD} and ${t.length}, inclusive`);this.publicKeys=t,this.threshold=r}getSignaturesRequired(){return this.threshold}verifySignature(e){let{message:t,signature:r}=e;if(!(r instanceof xe))return!1;let i=[];for(let o=0;o<4;o+=1)for(let s=0;s<8;s+=1)if((r.bitmap[o]&1<<7-s)!==0){let c=o*8+s;i.push(c)}if(i.length!==r.signatures.length)throw new Error("Bitmap and signatures length mismatch");if(i.length<this.threshold)throw new Error("Not enough signatures");for(let o=0;o<i.length;o+=1)if(!this.publicKeys[i[o]].verifySignature({message:t,signature:r.signatures[o]}))return!1;return!0}async verifySignatureAsync(e){return this.verifySignature(e)}authKey(){return re.fromSchemeAndBytes({scheme:1,input:this.toUint8Array()})}toUint8Array(){let e=new Uint8Array(this.publicKeys.length*b.LENGTH+1);return this.publicKeys.forEach((t,r)=>{e.set(t.toUint8Array(),r*b.LENGTH)}),e[this.publicKeys.length*b.LENGTH]=this.threshold,e}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes(),r=t[t.length-1],i=[];for(let o=0;o<t.length-1;o+=b.LENGTH){let s=o;i.push(new b(t.subarray(s,s+b.LENGTH)))}return new pe({publicKeys:i,threshold:r})}static deserializeWithoutLength(e){let t=e.remaining(),r=e.deserializeFixedBytes(t),i=r[r.length-1],o=[];for(let s=0;s<r.length-1;s+=b.LENGTH){let a=s;o.push(new b(r.subarray(a,a+b.LENGTH)))}return new pe({publicKeys:o,threshold:i})}getIndex(e){return super.getIndex(e)}};pe.MAX_KEYS=32,pe.MIN_KEYS=2,pe.MIN_THRESHOLD=1;var ee=pe,ge=class ge extends Y{constructor(e){super();let{signatures:t,bitmap:r}=e;if(t.length>ge.MAX_SIGNATURES_SUPPORTED)throw new Error(`The number of signatures cannot be greater than ${ge.MAX_SIGNATURES_SUPPORTED}`);if(this.signatures=t,!(r instanceof Uint8Array))this.bitmap=ge.createBitmap({bits:r});else{if(r.length!==ge.BITMAP_LEN)throw new Error(`"bitmap" length should be ${ge.BITMAP_LEN}`);this.bitmap=r}}toUint8Array(){let e=new Uint8Array(this.signatures.length*C.LENGTH+ge.BITMAP_LEN);return this.signatures.forEach((t,r)=>{e.set(t.toUint8Array(),r*C.LENGTH)}),e.set(this.bitmap,this.signatures.length*C.LENGTH),e}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes(),r=t.subarray(t.length-4),i=[];for(let o=0;o<t.length-r.length;o+=C.LENGTH){let s=o;i.push(new C(t.subarray(s,s+C.LENGTH)))}return new ge({signatures:i,bitmap:r})}static createBitmap(e){let{bits:t}=e,r=128,i=new Uint8Array([0,0,0,0]),o=new Set;return t.forEach((s,a)=>{if(s>=ge.MAX_SIGNATURES_SUPPORTED)throw new Error(`Cannot have a signature larger than ${ge.MAX_SIGNATURES_SUPPORTED-1}.`);if(o.has(s))throw new Error("Duplicate bits detected.");if(a>0&&s<=t[a-1])throw new Error("The bits need to be sorted in ascending order.");o.add(s);let c=Math.floor(s/8),d=i[c];d|=r>>s%8,i[c]=d}),i}};ge.MAX_SIGNATURES_SUPPORTED=32,ge.BITMAP_LEN=4;var xe=ge;var Q=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Ee.load(e);case 1:return qe.load(e);case 2:return se.load(e);case 3:return Ne.load(e);case 4:return jt.load(e);case 5:return gt.load(e);default:throw new Error(`Unknown variant index for AccountAuthenticator: ${t}`)}}isEd25519(){return this instanceof Ee}isMultiEd25519(){return this instanceof qe}isSingleKey(){return this instanceof se}isMultiKey(){return this instanceof Ne}},Ee=class n extends Q{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(0),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=b.deserialize(e),r=C.deserialize(e);return new n(t,r)}},qe=class n extends Q{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(1),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=ee.deserialize(e),r=xe.deserialize(e);return new n(t,r)}},se=class n extends Q{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(2),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=K.deserialize(e),r=O.deserialize(e);return new n(t,r)}},Ne=class n extends Q{constructor(e,t){super(),this.public_keys=e,this.signatures=t}serialize(e){e.serializeU32AsUleb128(3),this.public_keys.serialize(e),this.signatures.serialize(e)}static load(e){let t=H.deserialize(e),r=be.deserialize(e);return new n(t,r)}},jt=class n extends Q{serialize(e){e.serializeU32AsUleb128(4)}static load(e){return new n}},gt=class n extends Q{constructor(e,t,r,i){if(super(),!Rt(e))throw new Error(`Invalid function info ${e} passed into AccountAuthenticatorAbstraction`);this.functionInfo=e,this.abstractionSignature=r,this.signingMessageDigest=y.fromHexInput(y.fromHexInput(t).toUint8Array()),this.accountIdentity=i}serialize(e){e.serializeU32AsUleb128(5);let{moduleAddress:t,moduleName:r,functionName:i}=me(this.functionInfo);u.fromString(t).serialize(e),e.serializeStr(r),e.serializeStr(i),this.accountIdentity?e.serializeU32AsUleb128(1):e.serializeU32AsUleb128(0),e.serializeBytes(this.signingMessageDigest.toUint8Array()),this.accountIdentity?e.serializeBytes(this.abstractionSignature):e.serializeFixedBytes(this.abstractionSignature),this.accountIdentity&&e.serializeBytes(this.accountIdentity)}static load(e){let t=u.deserialize(e),r=e.deserializeStr(),i=e.deserializeStr(),o=e.deserializeUleb128AsU32(),s=e.deserializeBytes();if(o===0){let a=e.deserializeFixedBytes(e.remaining());return new n(`${t}::${r}::${i}`,s,a)}if(o===1){let a=e.deserializeBytes(),c=e.deserializeBytes();return new n(`${t}::${r}::${i}`,s,a,c)}throw new Error(`Unknown variant index for AccountAuthenticatorAbstraction: ${o}`)}},tr=class n extends w{constructor(e,t){super(),this.originalSigningMessage=y.fromHexInput(y.fromHexInput(e).toUint8Array()),this.functionInfo=t}serialize(e){e.serializeU32AsUleb128(0),e.serializeBytes(this.originalSigningMessage.toUint8Array());let{moduleAddress:t,moduleName:r,functionName:i}=me(this.functionInfo);u.fromString(t).serialize(e),e.serializeStr(r),e.serializeStr(i)}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t!==0)throw new Error(`Unknown variant index for AccountAbstractionMessage: ${t}`);let r=e.deserializeBytes(),i=u.deserialize(e),o=e.deserializeStr(),s=e.deserializeStr(),a=`${i}::${o}::${s}`;return new n(r,a)}};import{sha3_256 as La}from"@noble/hashes/sha3";var hn=class n extends w{constructor(e,t){super(),this.address=e,this.name=t}static fromStr(e){let t=e.split("::");if(t.length!==2)throw new Error("Invalid module id.");return new n(u.fromString(t[0]),new D(t[1]))}serialize(e){this.address.serialize(e),this.name.serialize(e)}static deserialize(e){let t=u.deserialize(e),r=D.deserialize(e);return new n(t,r)}};var E=class n extends w{deserialize(e){let t=u.deserialize(e),r=D.deserialize(e),i=D.deserialize(e),o=e.deserializeVector(n);return new Oe(t,r,i,o)}static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return L.load(e);case 1:return ae.load(e);case 2:return J.load(e);case 3:return Qe.load(e);case 4:return R.load(e);case 5:return Tt.load(e);case 6:return _.load(e);case 7:return f.load(e);case 8:return We.load(e);case 9:return je.load(e);case 10:return Je.load(e);case 11:return yt.load(e);case 12:return ft.load(e);case 13:return At.load(e);case 14:return ht.load(e);case 15:return bt.load(e);case 16:return wt.load(e);case 255:return G.load(e);default:throw new Error(`Unknown variant index for TypeTag: ${t}`)}}isBool(){return this instanceof L}isAddress(){return this instanceof R}isGeneric(){return this instanceof G}isSigner(){return this instanceof Tt}isVector(){return this instanceof _}isStruct(){return this instanceof f}isU8(){return this instanceof ae}isU16(){return this instanceof We}isU32(){return this instanceof je}isU64(){return this instanceof J}isU128(){return this instanceof Qe}isU256(){return this instanceof Je}isI8(){return this instanceof yt}isI16(){return this instanceof ft}isI32(){return this instanceof At}isI64(){return this instanceof ht}isI128(){return this instanceof bt}isI256(){return this instanceof wt}isPrimitive(){return this instanceof Tt||this instanceof R||this instanceof L||this instanceof ae||this instanceof We||this instanceof je||this instanceof J||this instanceof Qe||this instanceof Je||this instanceof yt||this instanceof ft||this instanceof At||this instanceof ht||this instanceof bt||this instanceof wt}},L=class n extends E{toString(){return"bool"}serialize(e){e.serializeU32AsUleb128(0)}static load(e){return new n}},ae=class n extends E{toString(){return"u8"}serialize(e){e.serializeU32AsUleb128(1)}static load(e){return new n}},yt=class n extends E{toString(){return"i8"}serialize(e){e.serializeU32AsUleb128(11)}static load(e){return new n}},We=class n extends E{toString(){return"u16"}serialize(e){e.serializeU32AsUleb128(8)}static load(e){return new n}},ft=class n extends E{toString(){return"i16"}serialize(e){e.serializeU32AsUleb128(12)}static load(e){return new n}},je=class n extends E{toString(){return"u32"}serialize(e){e.serializeU32AsUleb128(9)}static load(e){return new n}},At=class n extends E{toString(){return"i32"}serialize(e){e.serializeU32AsUleb128(13)}static load(e){return new n}},J=class n extends E{toString(){return"u64"}serialize(e){e.serializeU32AsUleb128(2)}static load(e){return new n}},ht=class n extends E{toString(){return"i64"}serialize(e){e.serializeU32AsUleb128(14)}static load(e){return new n}},Qe=class n extends E{toString(){return"u128"}serialize(e){e.serializeU32AsUleb128(3)}static load(e){return new n}},bt=class n extends E{toString(){return"i128"}serialize(e){e.serializeU32AsUleb128(15)}static load(e){return new n}},Je=class n extends E{toString(){return"u256"}serialize(e){e.serializeU32AsUleb128(10)}static load(e){return new n}},wt=class n extends E{toString(){return"i256"}serialize(e){e.serializeU32AsUleb128(16)}static load(e){return new n}},R=class n extends E{toString(){return"address"}serialize(e){e.serializeU32AsUleb128(4)}static load(e){return new n}},Tt=class n extends E{toString(){return"signer"}serialize(e){e.serializeU32AsUleb128(5)}static load(e){return new n}},nr=class n extends E{constructor(t){super();this.value=t}toString(){return`&${this.value.toString()}`}serialize(t){t.serializeU32AsUleb128(254)}static load(t){let r=E.deserialize(t);return new n(r)}},G=class n extends E{constructor(t){super();this.value=t;if(t<0)throw new Error("Generic type parameter index cannot be negative")}toString(){return`T${this.value}`}serialize(t){t.serializeU32AsUleb128(255),t.serializeU32(this.value)}static load(t){let r=t.deserializeU32();return new n(r)}},_=class n extends E{constructor(t){super();this.value=t}toString(){return`vector<${this.value.toString()}>`}static u8(){return new n(new ae)}serialize(t){t.serializeU32AsUleb128(6),this.value.serialize(t)}static load(t){let r=E.deserialize(t);return new n(r)}},f=class n extends E{constructor(t){super();this.value=t}toString(){let t="";return this.value.typeArgs.length>0&&(t=`<${this.value.typeArgs.map(r=>r.toString()).join(", ")}>`),`${this.value.address.toString()}::${this.value.moduleName.identifier}::${this.value.name.identifier}${t}`}serialize(t){t.serializeU32AsUleb128(7),this.value.serialize(t)}static load(t){let r=Oe.deserialize(t);return new n(r)}isTypeTag(t,r,i){return this.value.moduleName.identifier===r&&this.value.name.identifier===i&&this.value.address.equals(t)}isString(){return this.isTypeTag(u.ONE,"string","String")}isOption(){return this.isTypeTag(u.ONE,"option","Option")}isObject(){return this.isTypeTag(u.ONE,"object","Object")}isDelegationKey(){return this.isTypeTag(u.ONE,"permissioned_delegation","DelegationKey")}isRateLimiter(){return this.isTypeTag(u.ONE,"rate_limiter","RateLimiter")}},Oe=class n extends w{constructor(e,t,r,i){super(),this.address=e,this.moduleName=t,this.name=r,this.typeArgs=i}serialize(e){e.serialize(this.address),e.serialize(this.moduleName),e.serialize(this.name),e.serializeVector(this.typeArgs)}static deserialize(e){let t=u.deserialize(e),r=D.deserialize(e),i=D.deserialize(e),o=e.deserializeVector(E);return new n(t,r,i,o)}};function Vd(){return new Oe(u.ONE,new D("aptos_coin"),new D("AptosCoin"),[])}function x(){return new Oe(u.ONE,new D("string"),new D("String"),[])}function Hd(n){return new Oe(u.ONE,new D("option"),new D("Option"),[n])}function ye(n){return new Oe(u.ONE,new D("object"),new D("Object"),[n])}function Ha(n){let e=n.deserializeUleb128AsU32();switch(e){case 0:return Pe.deserialize(n);case 1:return he.deserialize(n);case 2:return Dt.deserialize(n);case 3:return u.deserialize(n);case 4:return P.deserialize(n,Pe);case 5:return $.deserialize(n);case 6:return Ft.deserialize(n);case 7:return zt.deserialize(n);case 8:return Nt.deserialize(n);case 9:return Fi.deserialize(n);default:throw new Error(`Unknown variant index for ScriptTransactionArgument: ${e}`)}}var st=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Qt.load(e);case 2:return Jt.load(e);case 3:return Zt.load(e);case 4:return rr.deserialize(e);default:throw new Error(`Unknown variant index for TransactionPayload: ${t}`)}}},Qt=class n extends st{constructor(e){super(),this.script=e}serialize(e){e.serializeU32AsUleb128(0),this.script.serialize(e)}static load(e){let t=Yt.deserialize(e);return new n(t)}},Jt=class n extends st{constructor(e){super(),this.entryFunction=e}serialize(e){e.serializeU32AsUleb128(2),this.entryFunction.serialize(e)}static load(e){let t=Ze.deserialize(e);return new n(t)}},Zt=class n extends st{constructor(e){super(),this.multiSig=e}serialize(e){e.serializeU32AsUleb128(3),this.multiSig.serialize(e)}static load(e){let t=bn.deserialize(e);return new n(t)}},Ze=class n{constructor(e,t,r,i){this.module_name=e,this.function_name=t,this.type_args=r,this.args=i}static build(e,t,r,i){return new n(hn.fromStr(e),new D(t),r,i)}serialize(e){this.module_name.serialize(e),this.function_name.serialize(e),e.serializeVector(this.type_args),e.serializeU32AsUleb128(this.args.length),this.args.forEach(t=>{t.serializeForEntryFunction(e)})}static deserialize(e){let t=hn.deserialize(e),r=D.deserialize(e),i=e.deserializeVector(E),o=e.deserializeUleb128AsU32(),s=new Array;for(let a=0;a<o;a+=1){let c=e.deserializeUleb128AsU32(),d=Ui.deserialize(e,c);s.push(d)}return new n(t,r,i,s)}},Yt=class n{constructor(e,t,r){this.bytecode=e,this.type_args=t,this.args=r}serialize(e){e.serializeBytes(this.bytecode),e.serializeVector(this.type_args),e.serializeU32AsUleb128(this.args.length),this.args.forEach(t=>{t.serializeForScriptFunction(e)})}static deserialize(e){let t=e.deserializeBytes(),r=e.deserializeVector(E),i=e.deserializeUleb128AsU32(),o=new Array;for(let s=0;s<i;s+=1){let a=Ha(e);o.push(a)}return new n(t,r,o)}},bn=class n{constructor(e,t){this.multisig_address=e,this.transaction_payload=t}serialize(e){this.multisig_address.serialize(e),this.transaction_payload===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.transaction_payload.serialize(e))}static deserialize(e){let t=u.deserialize(e),r=e.deserializeBool(),i;return r&&(i=wn.deserialize(e)),new n(t,i)}},wn=class n extends w{constructor(e){super(),this.transaction_payload=e}serialize(e){e.serializeU32AsUleb128(0),this.transaction_payload.serialize(e)}static deserialize(e){return e.deserializeUleb128AsU32(),new n(Ze.deserialize(e))}},rr=class extends st{static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return St.load(e);throw new Error(`Unknown variant index for TransactionInnerPayload: ${t}`)}},St=class n extends rr{constructor(e,t){super(),this.executable=e,this.extra_config=t}serialize(e){e.serializeU32AsUleb128(4),e.serializeU32AsUleb128(0),this.executable.serialize(e),this.extra_config.serialize(e)}static load(e){let t=Xt.deserialize(e),r=ir.deserialize(e);return new n(t,r)}},Xt=class{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Tn.load(e);case 1:return en.load(e);case 2:return Sn.load(e);default:throw new Error(`Unknown variant index for TransactionExecutable: ${t}`)}}},Tn=class n extends Xt{constructor(e){super(),this.script=e}serialize(e){e.serializeU32AsUleb128(0),this.script.serialize(e)}static load(e){let t=Yt.deserialize(e);return new n(t)}},en=class n extends Xt{constructor(e){super(),this.entryFunction=e}serialize(e){e.serializeU32AsUleb128(1),this.entryFunction.serialize(e)}static load(e){let t=Ze.deserialize(e);return new n(t)}},Sn=class n extends Xt{serialize(e){e.serializeU32AsUleb128(2)}static load(e){return new n}},ir=class{static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return vt.load(e);throw new Error(`Unknown variant index for TransactionExtraConfig: ${t}`)}},vt=class n extends ir{constructor(e,t){super(),this.multisigAddress=e,this.replayProtectionNonce=t!==void 0?BigInt(t):void 0}serialize(e){e.serializeU32AsUleb128(0),e.serializeOption(this.multisigAddress),e.serializeOption(this.replayProtectionNonce!==void 0?new he(this.replayProtectionNonce):void 0)}static load(e){let t=e.deserializeOption(u),r=e.deserializeOption(he);return new n(t,r?.value)}};var we=class n extends w{constructor(e,t,r,i,o,s,a){super(),this.sender=e,this.sequence_number=t,this.payload=r,this.max_gas_amount=i,this.gas_unit_price=o,this.expiration_timestamp_secs=s,this.chain_id=a}serialize(e){this.sender.serialize(e),e.serializeU64(this.sequence_number),this.payload.serialize(e),e.serializeU64(this.max_gas_amount),e.serializeU64(this.gas_unit_price),e.serializeU64(this.expiration_timestamp_secs),this.chain_id.serialize(e)}static deserialize(e){let t=u.deserialize(e),r=e.deserializeU64(),i=st.deserialize(e),o=e.deserializeU64(),s=e.deserializeU64(),a=e.deserializeU64(),c=qn.deserialize(e);return new n(t,r,i,o,s,a,c)}},or=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return Pt.load(e);case 1:return Kt.load(e);default:throw new Error(`Unknown variant index for RawTransactionWithData: ${t}`)}}},Pt=class n extends or{constructor(e,t){super(),this.raw_txn=e,this.secondary_signer_addresses=t}serialize(e){e.serializeU32AsUleb128(0),this.raw_txn.serialize(e),e.serializeVector(this.secondary_signer_addresses)}static load(e){let t=we.deserialize(e),r=e.deserializeVector(u);return new n(t,r)}},Kt=class n extends or{constructor(e,t,r){super(),this.raw_txn=e,this.secondary_signer_addresses=t,this.fee_payer_address=r}serialize(e){e.serializeU32AsUleb128(1),this.raw_txn.serialize(e),e.serializeVector(this.secondary_signer_addresses),this.fee_payer_address.serialize(e)}static load(e){let t=we.deserialize(e),r=e.deserializeVector(u),i=u.deserialize(e);return new n(t,r,i)}};var sr=class n extends w{constructor(e,t,r){super(),this.rawTransaction=e,this.feePayerAddress=r,this.secondarySignerAddresses=t}serialize(e){this.rawTransaction.serialize(e),e.serializeVector(this.secondarySignerAddresses),this.feePayerAddress===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.feePayerAddress.serialize(e))}static deserialize(e){let t=we.deserialize(e),r=e.deserializeVector(u),i=e.deserializeBool(),o;return i&&(o=u.deserialize(e)),new n(t,r,o)}};var Ye=class extends w{static deserialize(e){let t=e.deserializeUleb128AsU32();switch(t){case 0:return xt.load(e);case 1:return tn.load(e);case 2:return It.load(e);case 3:return Ct.load(e);case 4:return at.load(e);default:throw new Error(`Unknown variant index for TransactionAuthenticator: ${t}`)}}isEd25519(){return this instanceof xt}isMultiEd25519(){return this instanceof tn}isMultiAgent(){return this instanceof It}isFeePayer(){return this instanceof Ct}isSingleSender(){return this instanceof at}},xt=class n extends Ye{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(0),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=b.deserialize(e),r=C.deserialize(e);return new n(t,r)}},tn=class n extends Ye{constructor(e,t){super(),this.public_key=e,this.signature=t}serialize(e){e.serializeU32AsUleb128(1),this.public_key.serialize(e),this.signature.serialize(e)}static load(e){let t=ee.deserialize(e),r=xe.deserialize(e);return new n(t,r)}},It=class n extends Ye{constructor(e,t,r){super(),this.sender=e,this.secondary_signer_addresses=t,this.secondary_signers=r}serialize(e){e.serializeU32AsUleb128(2),this.sender.serialize(e),e.serializeVector(this.secondary_signer_addresses),e.serializeVector(this.secondary_signers)}static load(e){let t=Q.deserialize(e),r=e.deserializeVector(u),i=e.deserializeVector(Q);return new n(t,r,i)}},Ct=class n extends Ye{constructor(e,t,r,i){super(),this.sender=e,this.secondary_signer_addresses=t,this.secondary_signers=r,this.fee_payer=i}serialize(e){e.serializeU32AsUleb128(3),this.sender.serialize(e),e.serializeVector(this.secondary_signer_addresses),e.serializeVector(this.secondary_signers),this.fee_payer.address.serialize(e),this.fee_payer.authenticator.serialize(e)}static load(e){let t=Q.deserialize(e),r=e.deserializeVector(u),i=e.deserializeVector(Q),o=u.deserialize(e),s=Q.deserialize(e),a={address:o,authenticator:s};return new n(t,r,i,a)}},at=class n extends Ye{constructor(e){super(),this.sender=e}serialize(e){e.serializeU32AsUleb128(4),this.sender.serialize(e)}static load(e){let t=Q.deserialize(e);return new n(t)}};var Xe=class n extends w{constructor(e,t){super(),this.raw_txn=e,this.authenticator=t}serialize(e){this.raw_txn.serialize(e),this.authenticator.serialize(e)}static deserialize(e){let t=we.deserialize(e),r=Ye.deserialize(e);return new n(t,r)}};var ar=class n extends w{constructor(e,t){super(),this.rawTransaction=e,this.feePayerAddress=t}serialize(e){this.rawTransaction.serialize(e),this.feePayerAddress===void 0?e.serializeBool(!1):(e.serializeBool(!0),this.feePayerAddress.serialize(e))}static deserialize(e){let t=we.deserialize(e),r=e.deserializeBool(),i;return r&&(i=u.deserialize(e)),new n(t,i)}};function cr(n){return n.feePayerAddress?new Kt(n.rawTransaction,n.secondarySignerAddresses??[],n.feePayerAddress):n.secondarySignerAddresses?new Pt(n.rawTransaction,n.secondarySignerAddresses):n.rawTransaction}function Re(n,e){let t=La.create();if(!e.startsWith("APTOS::"))throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${e}`);t.update(e);let r=t.digest(),i=n,o=new Uint8Array(r.length+i.length);return o.set(r),o.set(i,r.length),o}function nl(n){return Re(n.bcsToBytes(),`APTOS::${n.constructor.name}`)}function _e(n){let e=cr(n);return n.feePayerAddress?Re(e.bcsToBytes(),zr):n.secondarySignerAddresses?Re(e.bcsToBytes(),zr):Re(e.bcsToBytes(),Li)}var te=class n{constructor(e){this.signingScheme=0;let{privateKey:t,address:r}=e;this.privateKey=t,this.publicKey=t.publicKey(),this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress()}static generate(){let e=q.generate();return new n({privateKey:e})}static fromDerivationPath(e){let{path:t,mnemonic:r}=e,i=q.fromDerivationPath(t,r);return new n({privateKey:i})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync({...e,signature:e.signature})}signWithAuthenticator(e){return new Ee(this.publicKey,this.privateKey.sign(e))}signTransactionWithAuthenticator(e){return new Ee(this.publicKey,this.signTransaction(e))}sign(e){return this.privateKey.sign(e)}signTransaction(e){return this.sign(_e(e))}};function jr(n){return typeof n=="object"&&n!==null&&"getAnyPublicKey"in n&&typeof n.getAnyPublicKey=="function"}var ce=class n{constructor(e){this.signingScheme=2;let{privateKey:t,address:r}=e;this.privateKey=t,this.publicKey=new K(t.publicKey()),this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress()}getAnyPublicKey(){return this.publicKey}static generate(e={}){let{scheme:t=0}=e,r;switch(t){case 0:r=q.generate();break;case 2:r=$e.generate();break;default:throw new Error(`Unsupported signature scheme ${t}`)}return new n({privateKey:r})}static fromDerivationPath(e){let{scheme:t=0,path:r,mnemonic:i}=e,o;switch(t){case 0:o=q.fromDerivationPath(r,i);break;case 2:o=$e.fromDerivationPath(r,i);break;default:throw new Error(`Unsupported signature scheme ${t}`)}return new n({privateKey:o})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync({...e,signature:e.signature})}signWithAuthenticator(e){return new se(this.publicKey,this.sign(e))}signTransactionWithAuthenticator(e){return new se(this.publicKey,this.signTransaction(e))}sign(e){return new O(this.privateKey.sign(e))}signTransaction(e){return this.sign(_e(e))}static fromEd25519Account(e){return new n({privateKey:e.privateKey,address:e.accountAddress})}};var et=class{static generate(e={}){let{scheme:t=0,legacy:r=!0}=e;return t===0&&r?te.generate():ce.generate({scheme:t})}static fromPrivateKey(e){let{privateKey:t,address:r,legacy:i=!0}=e;return t instanceof q&&i?new te({privateKey:t,address:r}):new ce({privateKey:t,address:r})}static fromPrivateKeyAndAddress(e){return this.fromPrivateKey(e)}static fromDerivationPath(e){let{scheme:t=0,mnemonic:r,path:i,legacy:o=!0}=e;return t===0&&o?te.fromDerivationPath({mnemonic:r,path:i}):ce.fromDerivationPath({scheme:t,mnemonic:r,path:i})}static authKey(e){let{publicKey:t}=e;return t.authKey()}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync(e)}};import{randomBytes as Wa}from"@noble/hashes/utils";var ja=1209600,nn=class nn extends w{constructor(e){super();let{privateKey:t,expiryDateSecs:r,blinder:i}=e;this.privateKey=t,this.publicKey=new ct(t.publicKey()),this.expiryDateSecs=r||ji(He()+ja),this.blinder=i!==void 0?y.fromHexInput(i).toUint8Array():Qa();let o=$n(this.publicKey.bcsToBytes(),93);o.push(BigInt(this.expiryDateSecs)),o.push(Vt(this.blinder));let s=Ht(o);this.nonce=s.toString()}getPublicKey(){return this.publicKey}isExpired(){return Math.floor(Date.now()/1e3)>this.expiryDateSecs}serialize(e){e.serializeU32AsUleb128(this.publicKey.variant),e.serializeBytes(this.privateKey.toUint8Array()),e.serializeU64(this.expiryDateSecs),e.serializeFixedBytes(this.blinder)}static deserialize(e){let t=e.deserializeUleb128AsU32(),r;if(t===0)r=q.deserialize(e);else throw new Error(`Unknown variant index for EphemeralPublicKey: ${t}`);let i=e.deserializeU64(),o=e.deserializeFixedBytes(31);return new nn({privateKey:r,expiryDateSecs:Number(i),blinder:o})}static fromBytes(e){return nn.deserialize(new F(e))}static generate(e){let t;switch(e?.scheme){case 0:default:t=q.generate()}return new nn({privateKey:t,expiryDateSecs:e?.expiryDateSecs})}sign(e){if(this.isExpired())throw new Error("EphemeralKeyPair has expired");return new Ge(this.privateKey.sign(e))}};nn.BLINDER_LENGTH=31;var Et=nn;function Qa(){return Wa(Et.BLINDER_LENGTH)}import Za from"eventemitter3";import{jwtDecode as Ya}from"jwt-decode";function dr(n){return n!=null&&typeof n.checkKeylessAccountValidity=="function"}var rn=class rn extends w{constructor(t){super();this.signingScheme=2;let{address:r,ephemeralKeyPair:i,publicKey:o,uidKey:s,uidVal:a,aud:c,pepper:d,proof:l,proofFetchCallback:p,jwt:m,verificationKeyHash:g}=t;if(this.ephemeralKeyPair=i,this.publicKey=o,this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress(),this.uidKey=s,this.uidVal=a,this.aud=c,this.jwt=m,this.emitter=new Za,this.proofOrPromise=l,l instanceof fe)this.proof=l;else{if(p===void 0)throw new Error("Must provide callback for async proof fetch");this.emitter.on("proofFetchFinish",async U=>{await p(U),this.emitter.removeAllListeners()}),this.init(l)}let h=y.fromHexInput(d).toUint8Array();if(h.length!==rn.PEPPER_LENGTH)throw new Error(`Pepper length in bytes should be ${rn.PEPPER_LENGTH}`);if(this.pepper=h,g!==void 0){if(y.hexInputToUint8Array(g).length!==32)throw new Error("verificationKeyHash must be 32 bytes");this.verificationKeyHash=y.hexInputToUint8Array(g)}}getAnyPublicKey(){return new K(this.publicKey)}async init(t){try{this.proof=await t,this.emitter.emit("proofFetchFinish",{status:"Success"})}catch(r){r instanceof Error?this.emitter.emit("proofFetchFinish",{status:"Failed",error:r.toString()}):this.emitter.emit("proofFetchFinish",{status:"Failed",error:"Unknown"})}}serialize(t){if(this.accountAddress.serialize(t),t.serializeStr(this.jwt),t.serializeStr(this.uidKey),t.serializeFixedBytes(this.pepper),this.ephemeralKeyPair.serialize(t),this.proof===void 0)throw new Error("Cannot serialize - proof undefined");this.proof.serialize(t),t.serializeOption(this.verificationKeyHash,32)}static partialDeserialize(t){let r=u.deserialize(t),i=t.deserializeStr(),o=t.deserializeStr(),s=t.deserializeFixedBytes(31),a=Et.deserialize(t),c=fe.deserialize(t),d=t.deserializeOption("fixedBytes",32);return{address:r,jwt:i,uidKey:o,pepper:s,ephemeralKeyPair:a,proof:c,verificationKeyHash:d}}isExpired(){return this.ephemeralKeyPair.isExpired()}signWithAuthenticator(t){let r=new O(this.sign(t)),i=new K(this.publicKey);return new se(i,r)}signTransactionWithAuthenticator(t){let r=new O(this.signTransaction(t)),i=new K(this.publicKey);return new se(i,r)}async waitForProofFetch(){this.proofOrPromise instanceof Promise&&await this.proofOrPromise}async checkKeylessAccountValidity(t){if(this.isExpired())throw S.fromErrorType({type:0});if(await this.waitForProofFetch(),this.proof===void 0)throw S.fromErrorType({type:2});let r=Ya(this.jwt,{header:!0});if(r.kid===void 0)throw S.fromErrorType({type:12,details:"checkKeylessAccountValidity failed. JWT is missing 'kid' in header. This should never happen."});if(this.verificationKeyHash!==void 0){let{verificationKey:i}=await sn({movementConfig:t});if(y.hexInputToString(i.hash())!==y.hexInputToString(this.verificationKeyHash))throw S.fromErrorType({type:4})}else console.warn("[Movement SDK] The verification key hash was not set. Proof may be invalid if the verification key has rotated.");await rn.fetchJWK({movementConfig:t,publicKey:this.publicKey,kid:r.kid})}sign(t){let{expiryDateSecs:r}=this.ephemeralKeyPair;if(this.isExpired())throw S.fromErrorType({type:0});if(this.proof===void 0)throw S.fromErrorType({type:1,details:"Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing."});let i=this.ephemeralKeyPair.getPublicKey(),o=this.ephemeralKeyPair.sign(t);return new oe({jwtHeader:Qi(this.jwt.split(".")[0]),ephemeralCertificate:new on(this.proof,0),expiryDateSecs:r,ephemeralPublicKey:i,ephemeralSignature:o})}signTransaction(t){if(this.proof===void 0)throw S.fromErrorType({type:1,details:"Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing."});let r=cr(t),o=new ur(r,this.proof.proof).hash();return this.sign(o)}getSigningMessage(t){if(this.proof===void 0)throw S.fromErrorType({type:1,details:"Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing."});let r=cr(t);return new ur(r,this.proof.proof).hash()}verifySignature(t){return this.publicKey.verifySignature(t)}async verifySignatureAsync(t){return this.publicKey.verifySignatureAsync({...t})}static async fetchJWK(t){return Qr(t)}};rn.PEPPER_LENGTH=31;var Ae=rn,ur=class extends w{constructor(t,r){super();this.domainSeparator="APTOS::TransactionAndProof";this.transaction=t,this.proof=r}serialize(t){t.serializeFixedBytes(this.transaction.bcsToBytes()),t.serializeOption(this.proof)}hash(){return Re(this.bcsToBytes(),this.domainSeparator)}};var Te=class n extends Ae{constructor(e){let t=I.create(e);super({publicKey:t,...e}),this.publicKey=t}serialize(e){super.serialize(e)}static deserialize(e){let{address:t,proof:r,ephemeralKeyPair:i,jwt:o,uidKey:s,pepper:a,verificationKeyHash:c}=Ae.partialDeserialize(e),{iss:d,aud:l,uidVal:p}=tt({jwt:o,uidKey:s});return new n({address:t,proof:r,ephemeralKeyPair:i,iss:d,uidKey:s,uidVal:p,aud:l,pepper:a,jwt:o,verificationKeyHash:c})}static fromBytes(e){return n.deserialize(new F(y.hexInputToUint8Array(e)))}static create(e){let{address:t,proof:r,jwt:i,ephemeralKeyPair:o,pepper:s,uidKey:a="sub",proofFetchCallback:c,verificationKey:d,verificationKeyHash:l}=e;if(l&&d)throw new Error("Cannot provide both verificationKey and verificationKeyHash");let{iss:p,aud:m,uidVal:g}=tt({jwt:i,uidKey:a});return new n({address:t,proof:r,ephemeralKeyPair:o,iss:p,uidKey:a,uidVal:g,aud:m,pepper:s,jwt:i,proofFetchCallback:c,verificationKeyHash:l??(d?d.hash():void 0)})}};var Me=class n extends Ae{constructor(e){let t=V.create(e);super({publicKey:t,...e}),this.publicKey=t,this.audless=e.audless??!1}serialize(e){super.serialize(e),this.publicKey.jwkAddress.serialize(e)}static deserialize(e){let{address:t,proof:r,ephemeralKeyPair:i,jwt:o,uidKey:s,pepper:a,verificationKeyHash:c}=Ae.partialDeserialize(e),d=u.deserialize(e),{iss:l,aud:p,uidVal:m}=tt({jwt:o,uidKey:s});return new n({address:t,proof:r,ephemeralKeyPair:i,iss:l,uidKey:s,uidVal:m,aud:p,pepper:a,jwt:o,verificationKeyHash:c,jwkAddress:d})}static fromBytes(e){return n.deserialize(F.fromHex(e))}static create(e){let{address:t,proof:r,jwt:i,ephemeralKeyPair:o,pepper:s,jwkAddress:a,uidKey:c="sub",proofFetchCallback:d,verificationKey:l,verificationKeyHash:p}=e;if(p&&l)throw new Error("Cannot provide both verificationKey and verificationKeyHash");let{iss:m,aud:g,uidVal:h}=tt({jwt:i,uidKey:c});return new n({address:t,proof:r,ephemeralKeyPair:o,iss:m,uidKey:c,uidVal:h,aud:g,pepper:s,jwkAddress:u.from(a),jwt:i,proofFetchCallback:d,verificationKeyHash:p??(l?l.hash():void 0)})}};var nt=class n{constructor(e){this.signingScheme=3;let{multiKey:t,address:r}=e,i=e.signers.map(a=>a instanceof te?ce.fromEd25519Account(a):a);if(t.signaturesRequired>i.length)throw new Error(`Not enough signers provided to satisfy the required signatures. Need ${t.signaturesRequired} signers, but only ${i.length} provided`);if(t.signaturesRequired<i.length)throw new Error(`More signers provided than required. Need ${t.signaturesRequired} signers, but ${i.length} provided`);this.publicKey=t,this.accountAddress=r?u.from(r):this.publicKey.authKey().derivedAddress();let o=[];for(let a of i)o.push(this.publicKey.getIndex(a.getAnyPublicKey()));let s=i.map((a,c)=>[a,o[c]]);s.sort((a,c)=>a[1]-c[1]),this.signers=s.map(a=>a[0]),this.signerIndicies=s.map(a=>a[1]),this.signaturesBitmap=this.publicKey.createBitmap({bits:o})}static fromPublicKeysAndSigners(e){let{address:t,publicKeys:r,signaturesRequired:i,signers:o}=e,s=new H({publicKeys:r,signaturesRequired:i});return new n({multiKey:s,signers:o,address:t})}static isMultiKeySigner(e){return e instanceof n}signWithAuthenticator(e){return new Ne(this.publicKey,this.sign(e))}signTransactionWithAuthenticator(e){return new Ne(this.publicKey,this.signTransaction(e))}async waitForProofFetch(){let t=this.signers.filter(r=>r instanceof Ae).map(async r=>r.waitForProofFetch());await Promise.all(t)}async checkKeylessAccountValidity(e){let r=this.signers.filter(i=>i instanceof Ae).map(i=>i.checkKeylessAccountValidity(e));await Promise.all(r)}sign(e){let t=[];for(let r of this.signers)t.push(r.sign(e));return new be({signatures:t,bitmap:this.signaturesBitmap})}signTransaction(e){let t=[];for(let r of this.signers)t.push(r.signTransaction(e));return new be({signatures:t,bitmap:this.signaturesBitmap})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return await this.publicKey.verifySignatureAsync(e)}};var vn=class{constructor(e){this.signingScheme=1;let{signers:t,publicKey:r,address:i}=e;if(this.publicKey=r,this.accountAddress=i?u.from(i):this.publicKey.authKey().derivedAddress(),r.threshold>t.length)throw new Error(`Not enough signers provided to satisfy the required signatures. Need ${r.threshold} signers, but only ${t.length} provided`);if(r.threshold<t.length)throw new Error(`More signers provided than required. Need ${r.threshold} signers, but ${t.length} provided`);let o=[];for(let a of t)o.push(this.publicKey.getIndex(a.publicKey()));let s=t.map((a,c)=>[a,o[c]]);s.sort((a,c)=>a[1]-c[1]),this.signers=s.map(a=>a[0]),this.signerIndices=s.map(a=>a[1]),this.signaturesBitmap=this.publicKey.createBitmap({bits:o})}verifySignature(e){return this.publicKey.verifySignature(e)}async verifySignatureAsync(e){return this.publicKey.verifySignatureAsync({...e,signature:e.signature})}signWithAuthenticator(e){return new qe(this.publicKey,this.sign(e))}signTransactionWithAuthenticator(e){return new qe(this.publicKey,this.signTransaction(e))}sign(e){let t=[];for(let r of this.signers)t.push(r.sign(e));return new xe({signatures:t,bitmap:this.signaturesBitmap})}signTransaction(e){return this.sign(_e(e))}};function Ro(n){let e=n.deserializeUleb128AsU32();if(!Object.values(Z).includes(e))throw new Error(`Deserialization of Account failed: SigningScheme variant ${e} is invalid`);return{address:u.deserialize(n),signingScheme:e}}function Go(n,e){if(e.serializeStr(n.jwt),e.serializeStr(n.uidKey),e.serializeFixedBytes(n.pepper),n.ephemeralKeyPair.serialize(e),n.proof===void 0)throw new Error("Cannot serialize - proof undefined");n.proof.serialize(e),e.serializeOption(n.verificationKeyHash,32)}function Bo(n){let e=n.deserializeStr(),t=n.deserializeStr(),r=n.deserializeFixedBytes(31),i=Et.deserialize(n),o=fe.deserialize(n),s=n.deserializeOption("fixedBytes",32);return{jwt:e,uidKey:t,pepper:r,ephemeralKeyPair:i,proof:o,verificationKeyHash:s}}var Vo;(p=>{function n(m){let g=new ne;switch(g.serializeU32AsUleb128(m.signingScheme),m.accountAddress.serialize(g),m.signingScheme){case 0:return m.privateKey.serialize(g),g.toUint8Array();case 2:{if(!jr(m))throw new Error("Account is not a SingleKeySigner");let h=m.getAnyPublicKey();switch(g.serializeU32AsUleb128(h.variant),h.variant){case 3:return Go(m,g),g.toUint8Array();case 4:{let U=m;return Go(U,g),U.publicKey.jwkAddress.serialize(g),g.serializeBool(U.audless),g.toUint8Array()}case 1:case 0:return m.privateKey.serialize(g),g.toUint8Array();default:throw new Error(`Invalid public key variant: ${h.variant}`)}}case 3:{let h=m;return h.publicKey.serialize(g),g.serializeU32AsUleb128(h.signers.length),h.signers.forEach(U=>{g.serializeFixedBytes(n(U))}),g.toUint8Array()}default:throw new Error(`Deserialization of Account failed: invalid signingScheme value ${m.signingScheme}`)}}p.toBytes=n;function e(m){return y.hexInputToStringWithoutPrefix(n(m))}p.toHexStringWithoutPrefix=e;function t(m){return y.hexInputToString(n(m))}p.toHexString=t;function r(m){let{address:g,signingScheme:h}=Ro(m);switch(h){case 0:{let U=q.deserialize(m);return new te({privateKey:U,address:g})}case 2:{let U=m.deserializeUleb128AsU32();switch(U){case 0:{let j=q.deserialize(m);return new ce({privateKey:j,address:g})}case 1:{let j=$e.deserialize(m);return new ce({privateKey:j,address:g})}case 3:{let j=Bo(m),de=tt(j);return new Te({...j,...de})}case 4:{let j=Bo(m),de=u.deserialize(m),lt=m.deserializeBool(),pt=tt(j);return new Me({...j,...pt,jwkAddress:de,audless:lt})}default:throw new Error(`Unsupported public key variant ${U}`)}}case 3:{let U=H.deserialize(m),j=m.deserializeUleb128AsU32(),de=new Array;for(let lt=0;lt<j;lt+=1){let pt=r(m);if(!jr(pt)&&!(pt instanceof te))throw new Error("Deserialization of MultiKeyAccount failed. Signer is not a SingleKeySigner or Ed25519Account");de.push(pt)}return new nt({multiKey:U,signers:de,address:g})}default:throw new Error(`Deserialization of Account failed: invalid signingScheme value ${h}`)}}p.deserialize=r;function i(m){let g=d(m);if(!(g instanceof Te))throw new Error("Deserialization of KeylessAccount failed");return g}p.keylessAccountFromHex=i;function o(m){let g=d(m);if(!(g instanceof Me))throw new Error("Deserialization of FederatedKeylessAccount failed");return g}p.federatedKeylessAccountFromHex=o;function s(m){let g=d(m);if(!(g instanceof nt))throw new Error("Deserialization of MultiKeyAccount failed");return g}p.multiKeyAccountFromHex=s;function a(m){let g=d(m);if(!(g instanceof ce))throw new Error("Deserialization of SingleKeyAccount failed");return g}p.singleKeyAccountFromHex=a;function c(m){let g=d(m);if(!(g instanceof te))throw new Error("Deserialization of Ed25519Account failed");return g}p.ed25519AccountFromHex=c;function d(m){return r(F.fromHex(m))}p.fromHex=d;function l(m){return d(m)}p.fromBytes=l})(Vo||(Vo={}));import{sha3_256 as Ho}from"@noble/hashes/sha3";var mr=class n extends et{constructor({signer:t,accountAddress:r,authenticationFunction:i}){super();this.signingScheme=2;if(!Rt(i))throw new Error(`Invalid authentication function ${i} passed into AbstractedAccount`);this.authenticationFunction=i,this.accountAddress=r,this.publicKey=new zi(this.accountAddress),this.sign=o=>new Fr(t(o))}static fromPermissionedSigner({signer:t,accountAddress:r}){return new n({signer:i=>{let o=new ne;return t.publicKey.serialize(o),t.sign(i).serialize(o),o.toUint8Array()},accountAddress:r??t.accountAddress,authenticationFunction:"0x1::permissioned_delegation::authenticate"})}static generateAccountAbstractionMessage(t,r){let i=new tr(t,r);return Re(i.bcsToBytes(),$i)}signWithAuthenticator(t){return new gt(this.authenticationFunction,Ho(t),this.sign(Ho(t)).toUint8Array())}signTransactionWithAuthenticator(t){let r=n.generateAccountAbstractionMessage(_e(t),this.authenticationFunction);return this.signWithAuthenticator(r)}signTransaction(t){return this.sign(_e(t))}setSigner(t){this.sign=r=>new Fr(t(r))}};import{sha3_256 as Jr}from"@noble/hashes/sha3";var Pn=class Pn extends mr{constructor({signer:e,authenticationFunction:t,abstractPublicKey:r}){let i=new u(Pn.computeAccountAddress(t,r));super({accountAddress:i,signer:e,authenticationFunction:t}),this.abstractPublicKey=r}static computeAccountAddress(e,t){if(!Rt(e))throw new Error(`Invalid authentication function ${e} passed into DerivableAbstractedAccount`);let[r,i,o]=e.split("::"),s=Jr.create(),a=new ne;u.fromString(r).serialize(a),a.serializeStr(i),a.serializeStr(o),s.update(a.toUint8Array());let c=new ne;return c.serializeBytes(t),s.update(c.toUint8Array()),s.update(new Uint8Array([Pn.ADDRESS_DOMAIN_SEPERATOR])),s.digest()}signWithAuthenticator(e){return new gt(this.authenticationFunction,Jr(e),this.sign(Jr(e)).value,this.abstractPublicKey)}};Pn.ADDRESS_DOMAIN_SEPERATOR=5;var Lo=Pn;function $o(n){return typeof n=="boolean"}function rt(n){return typeof n=="string"}function Xa(n){return typeof n=="number"}function lr(n){if(Xa(n))return n;if(rt(n)&&n!=="")return Number.parseInt(n,10)}function pr(n){return typeof n=="number"||typeof n=="bigint"||typeof n=="string"}function qo(n){return n==null}function Wo(n){return Zr(n)||Xr(n)||ei(n)||ti(n)||ni(n)||ri(n)||ii(n)||gr(n)||Yr(n)||ec(n)||n instanceof P||n instanceof ie}function Zr(n){return n instanceof $}function gr(n){return n instanceof u}function Yr(n){return n instanceof z}function ec(n){return n instanceof Ut}function Xr(n){return n instanceof Pe}function ei(n){return n instanceof Ft}function ti(n){return n instanceof zt}function ni(n){return n instanceof he}function ri(n){return n instanceof Dt}function ii(n){return n instanceof Nt}function jo(n){return"bytecode"in n}function M(n,e){throw new Error(`Type mismatch for argument ${e}, expected '${n}'`)}function Qo(n){let e=n.params.findIndex(t=>t!=="signer"&&t!=="&signer");return e<0?n.params.length:e}function Jo(n){return!!n.match(/^[_a-zA-Z0-9]+$/)}function Zo(n){return!!n.match(/\s/)}function tc(n){return!!n.match(/^T[0-9]+$/)}function nc(n){return!!n.match(/^&.+$/)}function rc(n){switch(n){case"signer":case"address":case"bool":case"u8":case"u16":case"u32":case"u64":case"u128":case"u256":case"i8":case"i16":case"i32":case"i64":case"i128":case"i256":return!0;default:return!1}}function ic(n,e){let t=e;for(;t<n.length;t+=1){let r=n[t];if(!Zo(r))break}return t}var oc=(h=>(h.InvalidTypeTag="unknown type",h.UnexpectedGenericType="unexpected generic type",h.UnexpectedTypeArgumentClose="unexpected '>'",h.UnexpectedWhitespaceCharacter="unexpected whitespace character",h.UnexpectedComma="unexpected ','",h.TypeArgumentCountMismatch="type argument count doesn't match expected amount",h.MissingTypeArgumentClose="no matching '>' for '<'",h.MissingTypeArgument="no type argument before ','",h.UnexpectedPrimitiveTypeArguments="primitive types not expected to have type arguments",h.UnexpectedVectorTypeArgumentCount="vector type expected to have exactly one type argument",h.UnexpectedStructFormat="unexpected struct format, must be of the form 0xaddress::module_name::struct_name",h.InvalidModuleNameCharacter="module name must only contain alphanumeric or '_' characters",h.InvalidStructNameCharacter="struct name must only contain alphanumeric or '_' characters",h.InvalidAddress="struct address must be valid",h))(oc||{}),W=class extends Error{constructor(e,t){super(`Failed to parse typeTag '${e}', ${t}`)}};function ke(n,e){let t=e?.allowGenerics??!1,r=[],i=[],o=[],s=0,a="",c=1;for(;s<n.length;){let d=n[s];if(d==="<")r.push({savedExpectedTypes:c,savedStr:a,savedTypes:o}),a="",o=[],c=1;else if(d===">"){if(a!==""){let h=Kn(a,i,t);o.push(h)}let l=r.pop();if(l===void 0)throw new W(n,"unexpected '>'");if(c!==o.length)throw new W(n,"type argument count doesn't match expected amount");let{savedStr:p,savedTypes:m,savedExpectedTypes:g}=l;i=o,o=m,a=p,c=g}else if(d===","){if(r.length===0)throw new W(n,"unexpected ','");if(a.length===0)throw new W(n,"no type argument before ','");let l=Kn(a,i,t);i=[],o.push(l),a="",c+=1}else if(Zo(d)){let l=!1;if(a.length!==0){let m=Kn(a,i,t);i=[],o.push(m),a="",l=!0}s=ic(n,s);let p=n[s];if(s<n.length&&l&&p!==","&&p!==">")throw new W(n,"unexpected whitespace character");continue}else a+=d;s+=1}if(r.length>0)throw new W(n,"no matching '>' for '<'");switch(o.length){case 0:return Kn(a,i,t);case 1:if(a==="")return o[0];throw new W(n,"unexpected ','");default:throw new W(n,"unexpected whitespace character")}}function Kn(n,e,t){let r=n.trim(),i=r.toLowerCase();if(rc(i)&&e.length>0)throw new W(n,"primitive types not expected to have type arguments");switch(r.toLowerCase()){case"signer":return new Tt;case"bool":return new L;case"address":return new R;case"u8":return new ae;case"u16":return new We;case"u32":return new je;case"u64":return new J;case"u128":return new Qe;case"u256":return new Je;case"i8":return new yt;case"i16":return new ft;case"i32":return new At;case"i64":return new ht;case"i128":return new bt;case"i256":return new wt;case"vector":if(e.length!==1)throw new W(n,"vector type expected to have exactly one type argument");return new _(e[0]);default:if(nc(r)){let a=r.substring(1);return new nr(Kn(a,e,t))}if(tc(r)){if(t)return new G(Number(r.split("T")[1]));throw new W(n,"unexpected generic type")}if(!r.match(/:/))throw new W(n,"unknown type");let o=r.split("::");if(o.length!==3)throw new W(n,"unexpected struct format, must be of the form 0xaddress::module_name::struct_name");let s;try{s=u.fromString(o[0])}catch{throw new W(n,"struct address must be valid")}if(!Jo(o[1]))throw new W(n,"module name must only contain alphanumeric or '_' characters");if(!Jo(o[2]))throw new W(n,"struct name must only contain alphanumeric or '_' characters");return new f(new Oe(s,new D(o[1]),new D(o[2]),e))}}var sc=new TextEncoder;function yr(n){return n?.map(e=>rt(e)?ke(e):e)??[]}async function ac(n,e,t){return(await fr({movementConfig:t,accountAddress:n,moduleName:e})).abi}async function si(n,e,t,r){let i=await ac(n,e,r);if(!i)throw new Error(`Could not find module ABI for '${n}::${e}'`);return i.exposed_functions.find(o=>o.name===t)}async function ly(n,e,t,r){let i=await si(n,e,t,r);if(!i)throw new Error(`Could not find function ABI for '${n}::${e}::${t}'`);let o=[];for(let s=0;s<i.params.length;s+=1)o.push(ke(i.params[s],{allowGenerics:!0}));return{typeParameters:i.generic_type_params,parameters:o}}async function Yo(n,e,t,r){let i=await si(n,e,t,r);if(!i)throw new Error(`Could not find entry function ABI for '${n}::${e}::${t}'`);if(!i.is_entry)throw new Error(`'${n}::${e}::${t}' is not an entry function`);let o=Qo(i),s=[];for(let a=o;a<i.params.length;a+=1)s.push(ke(i.params[a],{allowGenerics:!0}));return{signers:o,typeParameters:i.generic_type_params,parameters:s}}async function Xo(n,e,t,r){let i=await si(n,e,t,r);if(!i)throw new Error(`Could not find view function ABI for '${n}::${e}::${t}'`);if(!i.is_view)throw new Error(`'${n}::${e}::${t}' is not an view function`);let o=[];for(let a=0;a<i.params.length;a+=1)o.push(ke(i.params[a],{allowGenerics:!0}));let s=[];for(let a=0;a<i.return.length;a+=1)s.push(ke(i.return[a],{allowGenerics:!0}));return{typeParameters:i.generic_type_params,parameters:o,returnTypes:s}}function ai(n,e,t,r,i,o){let s;if("exposed_functions"in e){let a=e.exposed_functions.find(c=>c.name===n);if(!a)throw new Error(`Could not find function ABI for '${e.address}::${e.name}::${n}'`);if(r>=a.params.length)throw new Error(`Too many arguments for '${n}', expected ${a.params.length}`);s=ke(a.params[r],{allowGenerics:!0})}else{if(r>=e.parameters.length)throw new Error(`Too many arguments for '${n}', expected ${e.parameters.length}`);s=e.parameters[r]}return _t(t,s,r,i,"exposed_functions"in e?e:void 0,o)}function _t(n,e,t,r,i,o){return Wo(n)?(oi(e,n,t),n):cc(n,e,t,r,i,o)}function cc(n,e,t,r,i,o){if(e.isBool()){if($o(n))return new $(n);if(rt(n)){if(n==="true")return new $(!0);if(n==="false")return new $(!1)}M("boolean",t)}if(e.isAddress()){if(rt(n))return u.fromString(n);if(n&&typeof n=="object"&&"data"in n&&n.data instanceof Uint8Array)return new u(n.data);M("string | AccountAddress",t)}if(e.isU8()){let s=lr(n);if(s!==void 0)return new Pe(s);M("number | string",t)}if(e.isU16()){let s=lr(n);if(s!==void 0)return new Ft(s);M("number | string",t)}if(e.isU32()){let s=lr(n);if(s!==void 0)return new zt(s);M("number | string",t)}if(e.isU64()){if(pr(n))return new he(BigInt(n));M("bigint | number | string",t)}if(e.isU128()){if(pr(n))return new Dt(BigInt(n));M("bigint | number | string",t)}if(e.isU256()){if(pr(n))return new Nt(BigInt(n));M("bigint | number | string",t)}if(e.isGeneric()){let s=e.value;if(s<0||s>=r.length)throw new Error(`Generic argument ${e.toString()} is invalid for argument ${t}`);return _t(n,r[s],t,r,i)}if(e.isVector()){if(e.value.isU8()){if(rt(n))return P.U8(sc.encode(n));if(n instanceof Uint8Array)return P.U8(n);if(n instanceof ArrayBuffer)return P.U8(new Uint8Array(n))}if(rt(n)&&n.startsWith("["))return _t(JSON.parse(n),e,t,r);if(Array.isArray(n))return new P(n.map(s=>_t(s,e.value,t,r,i)));throw new Error(`Type mismatch for argument ${t}, type '${e.toString()}'`)}if(e.isStruct()){if(e.isString()){if(rt(n))return new z(n);M("string",t)}if(e.isObject()){if(rt(n))return u.fromString(n);if(n&&typeof n=="object"&&"data"in n&&n.data instanceof Uint8Array)return new u(n.data);M("string | AccountAddress",t)}if(e.isDelegationKey()||e.isRateLimiter()){if(n instanceof Uint8Array)return new Ut(n);M("Uint8Array",t)}if(e.isOption()){if(qo(n)){let a=e.value.typeArgs[0];return a instanceof L?new ie(null):a instanceof R?new ie(null):a instanceof ae?new ie(null):a instanceof We?new ie(null):a instanceof je?new ie(null):a instanceof J?new ie(null):a instanceof Qe?new ie(null):a instanceof Je?new ie(null):new ie(null)}return new ie(_t(n,e.value.typeArgs[0],t,r,i))}if(i?.structs.find(a=>a.name===e.value.name.identifier)?.fields.length===0&&n instanceof Uint8Array)return new Ut(n);if(n instanceof Uint8Array&&o?.allowUnknownStructs)return console.warn(`Unsupported struct input type for argument ${t}. Continuing since 'allowUnknownStructs' is enabled.`),new Ut(n);throw new Error(`Unsupported struct input type for argument ${t}, type '${e.toString()}'`)}throw new Error(`Type mismatch for argument ${t}, type '${e.toString()}'`)}function oi(n,e,t){if(n.isBool()){if(Zr(e))return;M("Bool",t)}if(n.isAddress()){if(gr(e))return;M("AccountAddress",t)}if(n.isU8()){if(Xr(e))return;M("U8",t)}if(n.isU16()){if(ei(e))return;M("U16",t)}if(n.isU32()){if(ti(e))return;M("U32",t)}if(n.isU64()){if(ni(e))return;M("U64",t)}if(n.isU128()){if(ri(e))return;M("U128",t)}if(n.isU256()){if(ii(e))return;M("U256",t)}if(n.isVector()){if(e instanceof P){e.values.length>0&&oi(n.value,e.values[0],t);return}M("MoveVector",t)}if(n instanceof f){if(n.isString()){if(Yr(e))return;M("MoveString",t)}if(n.isObject()){if(gr(e))return;M("AccountAddress",t)}if(n.isOption()){if(e instanceof ie){e.value!==void 0&&oi(n.value.typeArgs[0],e.value,t);return}M("MoveOption",t)}}throw new Error(`Type mismatch for argument ${t}, expected '${n.toString()}'`)}import{sha3_256 as uc}from"@noble/hashes/sha3";async function Ar(n){if(jo(n))return lc(n);let{moduleAddress:e,moduleName:t,functionName:r}=me(n.function),i=await rs({key:"entry-function",moduleAddress:e,moduleName:t,functionName:r,movementConfig:n.movementConfig,abi:n.abi,fetch:Yo});return dc({...n,abi:i})}function dc(n){let e=n.abi,{moduleAddress:t,moduleName:r,functionName:i}=me(n.function),o=yr(n.typeArguments);if(o.length!==e.typeParameters.length)throw new Error(`Type argument count mismatch, expected ${e.typeParameters.length}, received ${o.length}`);let s=n.functionArguments.map((c,d)=>ai(n.function,e,c,d,o));if(s.length!==e.parameters.length)throw new Error(`Too few arguments for '${t}::${r}::${i}', expected ${e.parameters.length} but got ${s.length}`);let a=Ze.build(`${t}::${r}`,i,o,s);if("multisigAddress"in n){let c=u.from(n.multisigAddress);return new Zt(new bn(c,new wn(a)))}return new Jt(a)}async function es(n){let{moduleAddress:e,moduleName:t,functionName:r}=me(n.function),i=await rs({key:"view-function",moduleAddress:e,moduleName:t,functionName:r,movementConfig:n.movementConfig,abi:n.abi,fetch:Xo});return mc({abi:i,...n})}function mc(n){let e=n.abi,{moduleAddress:t,moduleName:r,functionName:i}=me(n.function),o=yr(n.typeArguments);if(o.length!==e.typeParameters.length)throw new Error(`Type argument count mismatch, expected ${e.typeParameters.length}, received ${o.length}`);let s=n?.functionArguments?.map((a,c)=>ai(n.function,e,a,c,o))??[];if(s.length!==e.parameters.length)throw new Error(`Too few arguments for '${t}::${r}::${i}', expected ${e.parameters.length} but got ${s.length}`);return Ze.build(`${t}::${r}`,i,o,s)}function lc(n){return new Qt(new Yt(y.fromHexInput(n.bytecode).toUint8Array(),yr(n.typeArguments),n.functionArguments))}async function pc(n){let{movementConfig:e,sender:t,payload:r,options:i,feePayerAddress:o}=n;if(i?.replayProtectionNonce!==void 0&&i?.accountSequenceNumber!==void 0)throw new Error("Cannot specify both replayProtectionNonce and accountSequenceNumber in options.");let s=async()=>Dr[e.network]?{chainId:Dr[e.network]}:{chainId:(await jn({movementConfig:e})).chain_id},a=async()=>i?.gasUnitPrice?{gasEstimate:i.gasUnitPrice}:{gasEstimate:(await Qn({movementConfig:e})).gas_estimate},c=async()=>{let de=async()=>i?.accountSequenceNumber!==void 0?i.accountSequenceNumber:i?.replayProtectionNonce!==void 0?0xdeadbeefn:(await Jn({movementConfig:e,accountAddress:t})).sequence_number;if(o&&u.from(o).equals(u.ZERO))try{return await de()}catch{return 0}else return de()},[{chainId:d},{gasEstimate:l},p]=await Promise.all([s(),a(),c()]),{maxGasAmount:m,gasUnitPrice:g,expireTimestamp:h,replayProtectionNonce:U}={maxGasAmount:i?.maxGasAmount?BigInt(i.maxGasAmount):BigInt(e.getDefaultMaxGasAmount()),gasUnitPrice:i?.gasUnitPrice??BigInt(l),expireTimestamp:i?.expireTimestamp??BigInt(Math.floor(Date.now()/1e3)+e.getDefaultTxnExpirySecFromNow()),replayProtectionNonce:i?.replayProtectionNonce?BigInt(i.replayProtectionNonce):void 0},j=r;return U!==void 0&&(j=gc(r,U)),new we(u.from(t),BigInt(p),j,BigInt(m),BigInt(g),BigInt(h),new qn(d))}function gc(n,e){if(n instanceof Qt)return new St(new Tn(n.script),new vt(void 0,e));if(n instanceof Jt)return new St(new en(n.entryFunction),new vt(void 0,e));if(n instanceof Zt){let t=n.multiSig.transaction_payload,r;if(t===void 0||t?.transaction_payload===void 0)r=new Sn;else if(t.transaction_payload instanceof Ze)r=new en(t.transaction_payload);else throw new Error("Scripts are not supported in multi-sig transactions.");return new St(r,new vt(n.multiSig.multisig_address,e))}else throw new Error(`Unsupported payload type: ${n}`)}async function ci(n){let{movementConfig:e,sender:t,payload:r,options:i,feePayerAddress:o}=n,s=await pc({movementConfig:e,sender:t,payload:r,options:i,feePayerAddress:o});if("secondarySignerAddresses"in n){let a=n.secondarySignerAddresses?.map(c=>u.from(c))??[];return new sr(s,a,n.feePayerAddress?u.from(n.feePayerAddress):void 0)}return new ar(s,n.feePayerAddress?u.from(n.feePayerAddress):void 0)}function ts(n){let{signerPublicKey:e,transaction:t,secondarySignersPublicKeys:r,feePayerPublicKey:i}=n,o=an(e);if(t.feePayerAddress){let a=new Kt(t.rawTransaction,t.secondarySignerAddresses??[],t.feePayerAddress),c=[];t.secondarySignerAddresses&&(r?c=r.map(p=>an(p)):c=Array.from({length:t.secondarySignerAddresses.length},()=>an(void 0)));let d=an(i),l=new Ct(o,t.secondarySignerAddresses??[],c,{address:t.feePayerAddress,authenticator:d});return new Xe(a.raw_txn,l).bcsToBytes()}if(t.secondarySignerAddresses){let a=new Pt(t.rawTransaction,t.secondarySignerAddresses),c=[];r?c=r.map(l=>an(l)):c=Array.from({length:t.secondarySignerAddresses.length},()=>an(void 0));let d=new It(o,t.secondarySignerAddresses,c);return new Xe(a.raw_txn,d).bcsToBytes()}let s;if(o instanceof Ee)s=new xt(o.public_key,o.signature);else if(o instanceof se||o instanceof Ne)s=new at(o);else if(o instanceof jt)s=new at(o);else throw new Error("Invalid public key");return new Xe(t.rawTransaction,s).bcsToBytes()}function an(n){if(!n)return new jt;let t=I.isInstance(n)||V.isInstance(n)||Ke.isInstance(n)?new K(n):n,r=new C(new Uint8Array(64));if(b.isInstance(t))return new Ee(t,r);if(K.isInstance(t))return I.isInstance(t.publicKey)?new se(t,new O(oe.getSimulationSignature())):new se(t,new O(r));if(H.isInstance(t))return new Ne(t,new be({signatures:t.publicKeys.map(i=>I.isInstance(i.publicKey)||V.isInstance(i.publicKey)?new O(oe.getSimulationSignature()):new O(r)),bitmap:t.createBitmap({bits:Array(t.publicKeys.length).fill(0).map((i,o)=>o)})}));throw new Error("Unsupported PublicKey used for simulations")}function ui(n){let{transaction:e,feePayerAuthenticator:t,additionalSignersAuthenticators:r}=n,i=eo(Q,n.senderAuthenticator),o;if(e.feePayerAddress){if(!t)throw new Error("Must provide a feePayerAuthenticator argument to generate a signed fee payer transaction");o=new Ct(i,e.secondarySignerAddresses??[],r??[],{address:e.feePayerAddress,authenticator:t})}else if(e.secondarySignerAddresses){if(!r)throw new Error("Must provide a additionalSignersAuthenticators argument to generate a signed multi agent transaction");o=new It(i,e.secondarySignerAddresses,r)}else i instanceof Ee?o=new xt(i.public_key,i.signature):i instanceof qe?o=new tn(i.public_key,i.signature):o=new at(i);return new Xe(e.rawTransaction,o).bcsToBytes()}function ns(n){let e=uc.create();for(let t of n)e.update(t);return e.digest()}var yc=ns(["APTOS::Transaction"]);function Ry(n){let e=ui(n);return new y(ns([yc,new Uint8Array([0]),e])).toString()}async function rs({key:n,moduleAddress:e,moduleName:t,functionName:r,movementConfig:i,abi:o,fetch:s}){return o!==void 0?o:Bt(async()=>s(e,t,r,i),`${n}-${i.network}-${e}-${t}-${r}`,1e3*60*5)()}async function A(n){let e=await Ac(n);return hc(n,e)}async function Ac(n){let{movementConfig:e,data:t}=n,r,i;return"bytecode"in t?i=await Ar(t):"multisigAddress"in t?(r={movementConfig:e,multisigAddress:t.multisigAddress,function:t.function,functionArguments:t.functionArguments,typeArguments:t.typeArguments,abi:t.abi},i=await Ar(r)):(r={movementConfig:e,function:t.function,functionArguments:t.functionArguments,typeArguments:t.typeArguments,abi:t.abi},i=await Ar(r)),i}async function hc(n,e){let{movementConfig:t,sender:r,options:i}=n,o;if(bc(n)&&(o=u.ZERO.toString()),wc(n)){let{secondarySignerAddresses:s}=n;return ci({movementConfig:t,sender:r,payload:e,options:i,secondarySignerAddresses:s,feePayerAddress:o})}return ci({movementConfig:t,sender:r,payload:e,options:i,feePayerAddress:o})}function bc(n){return n.withFeePayer===!0}function wc(n){return"secondarySignerAddresses"in n}function is(n){let{transaction:e}=n;return _e(e)}function hr(n){let{signer:e,transaction:t}=n;return e.signTransactionWithAuthenticator(t)}function br(n){let{signer:e,transaction:t}=n;if(!t.feePayerAddress)throw new Error(`Transaction ${t} is not a Fee Payer transaction`);return t.feePayerAddress=e.accountAddress,hr({signer:e,transaction:t})}async function di(n){let{movementConfig:e,transaction:t,signerPublicKey:r,secondarySignersPublicKeys:i,feePayerPublicKey:o,options:s}=n,a=ts({transaction:t,signerPublicKey:r,secondarySignersPublicKeys:i,feePayerPublicKey:o,options:s}),{data:c}=await Gt({movementConfig:e,body:a,path:"transactions/simulate",params:{estimate_gas_unit_price:n.options?.estimateGasUnitPrice??!1,estimate_max_gas_amount:n.options?.estimateMaxGasAmount??!1,estimate_prioritized_gas_unit_price:n.options?.estimatePrioritizedGasUnitPrice??!1},originMethod:"simulateTransaction",contentType:"application/x.aptos.signed_transaction+bcs"});return c}async function xn(n){let{movementConfig:e,transactionSubmitter:t}=n,r=t===void 0?e.getTransactionSubmitter():t;if(r)return r.submitTransaction(n);let i=ui({...n});try{let{data:o}=await Gt({movementConfig:e,body:i,path:"transactions",originMethod:"submitTransaction",contentType:"application/x.aptos.signed_transaction+bcs"});return o}catch(o){let s=Xe.deserialize(new F(i));throw s.authenticator.isSingleSender()&&s.authenticator.sender.isSingleKey()&&(s.authenticator.sender.public_key.publicKey instanceof I||s.authenticator.sender.public_key.publicKey instanceof V)&&await Ae.fetchJWK({movementConfig:e,publicKey:s.authenticator.sender.public_key.publicKey,kid:s.authenticator.sender.signature.signature.getJwkKid()}),o}}async function wr(n){let{movementConfig:e,signer:t,feePayer:r,transaction:i,...o}=n;dr(t)&&await t.checkKeylessAccountValidity(e),dr(r)&&await r.checkKeylessAccountValidity(e);let s=n.feePayerAuthenticator||r&&br({signer:r,transaction:i}),a=hr({signer:t,transaction:i});return xn({movementConfig:e,transaction:i,senderAuthenticator:a,feePayerAuthenticator:s,...o})}async function os(n){let{movementConfig:e,senderAuthenticator:t,feePayer:r,transaction:i,...o}=n;dr(r)&&await r.checkKeylessAccountValidity(e);let s=br({signer:r,transaction:i});return xn({movementConfig:e,transaction:i,senderAuthenticator:t,feePayerAuthenticator:s,...o})}var Tc={typeParameters:[],parameters:[_.u8(),new _(_.u8())]};async function ss(n){let{movementConfig:e,account:t,metadataBytes:r,moduleBytecode:i,options:o}=n,s=i.map(a=>P.U8(a));return A({movementConfig:e,sender:u.from(t),data:{function:"0x1::code::publish_package_txn",functionArguments:[P.U8(r),new P(s)],abi:Tc},options:o})}async function cn(n){return Jn(n)}async function cs(n){let{movementConfig:e,accountAddress:t,options:r}=n;return Nr({movementConfig:e,originMethod:"getModules",path:`accounts/${u.from(t).toString()}/modules`,params:{ledger_version:r?.ledgerVersion,limit:r?.limit??1e3}})}async function us(n){let{movementConfig:e,accountAddress:t,options:r}=n,{response:i,cursor:o}=await Or({movementConfig:e,originMethod:"getModulesPage",path:`accounts/${u.from(t).toString()}/modules`,params:{ledger_version:r?.ledgerVersion,cursor:r?.cursor,limit:r?.limit??100}});return{modules:i.data,cursor:o}}async function fr(n){return Fo(n)}async function pi(n){let{movementConfig:e,accountAddress:t,options:r}=n;return to({movementConfig:e,originMethod:"getTransactions",path:`accounts/${u.from(t).toString()}/transactions`,params:{start:r?.offset,limit:r?.limit}})}async function gi(n){let{movementConfig:e,accountAddress:t,options:r}=n;return Nr({movementConfig:e,originMethod:"getResources",path:`accounts/${u.from(t).toString()}/resources`,params:{ledger_version:r?.ledgerVersion,limit:r?.limit??999}})}async function ds(n){let{movementConfig:e,accountAddress:t,options:r}=n,{response:i,cursor:o}=await Or({movementConfig:e,originMethod:"getResourcesPage",path:`accounts/${u.from(t).toString()}/resources`,params:{ledger_version:r?.ledgerVersion,cursor:r?.cursor,limit:r?.limit??100}});return{resources:i.data,cursor:o}}async function yi(n){let{movementConfig:e,accountAddress:t,resourceType:r,options:i}=n,{data:o}=await ot({movementConfig:e,originMethod:"getResource",path:`accounts/${u.from(t).toString()}/resource/${r}`,params:{ledger_version:i?.ledgerVersion}});return o.data}async function un(n){let{movementConfig:e,authenticationKey:t,options:r}=n,i=await yi({movementConfig:e,accountAddress:"0x1",resourceType:"0x1::account::OriginatingAddress",options:r}),{address_map:{handle:o}}=i,s=u.from(t);try{let a=await zo({movementConfig:e,handle:o,data:{key:s.toString(),key_type:"address",value_type:"address"},options:r});return u.from(a)}catch(a){if(a instanceof Xi&&a.data.error_code==="table_item_not_found")return s;throw a}}async function ms(n){let{movementConfig:e,accountAddress:t}=n,i={owner_address:{_eq:u.from(t).toStringLong()},amount:{_gt:0}},s=await v({movementConfig:e,query:{query:go,variables:{where_condition:i}},originMethod:"getAccountTokensCount"});return s.current_token_ownerships_v2_aggregate.aggregate?s.current_token_ownerships_v2_aggregate.aggregate.count:0}async function ls(n){let{movementConfig:e,accountAddress:t,options:r}=n,o={owner_address:{_eq:u.from(t).toStringLong()},amount:{_gt:0}};r?.tokenStandard&&(o.token_standard={_eq:r?.tokenStandard});let s={query:lo,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountOwnedTokens"})).current_token_ownerships_v2}async function ps(n){let{movementConfig:e,accountAddress:t,collectionAddress:r,options:i}=n,o=u.from(t).toStringLong(),s=u.from(r).toStringLong(),a={owner_address:{_eq:o},current_token_data:{collection_id:{_eq:s}},amount:{_gt:0}};i?.tokenStandard&&(a.token_standard={_eq:i?.tokenStandard});let c={query:po,variables:{where_condition:a,offset:i?.offset,limit:i?.limit,order_by:i?.orderBy}};return(await v({movementConfig:e,query:c,originMethod:"getAccountOwnedTokensFromCollectionAddress"})).current_token_ownerships_v2}async function gs(n){let{movementConfig:e,accountAddress:t,options:r}=n,o={owner_address:{_eq:u.from(t).toStringLong()}};r?.tokenStandard&&(o.current_collection={token_standard:{_eq:r?.tokenStandard}});let s={query:mo,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountCollectionsWithOwnedTokens"})).current_collection_ownership_v2_view}async function ys(n){let{movementConfig:e,accountAddress:t}=n,r=u.from(t).toStringLong(),o=await v({movementConfig:e,query:{query:yo,variables:{address:r}},originMethod:"getAccountTransactionsCount"});return o.account_transactions_aggregate.aggregate?o.account_transactions_aggregate.aggregate.count:0}async function eA(n){let{movementConfig:e,accountAddress:t,coinType:r,faMetadataAddress:i}=n,o=r,s;if(r!==void 0&&i!==void 0)s=u.from(i).toStringLong();else if(r!==void 0&&i===void 0)r===Ve?s=u.A.toStringLong():s=Hn(u.A,r).toStringLong();else if(r===void 0&&i!==void 0){let l=u.from(i);s=l.toStringLong(),l===u.A&&(o=Ve)}else throw new Error("Either coinType, fungibleAssetAddress, or both must be provided");let a=u.from(t).toStringLong(),c={asset_type:{_eq:s}};o!==void 0&&(c={asset_type:{_in:[o,s]}});let d=await fi({movementConfig:e,accountAddress:a,options:{where:c}});return d[0]?d[0].amount:0}async function fi(n){let{movementConfig:e,accountAddress:t,options:r}=n,i=u.from(t).toStringLong(),o={...r?.where,owner_address:{_eq:i}},s={query:uo,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountCoinsData"})).current_fungible_asset_balances}async function fs(n){let{movementConfig:e,accountAddress:t}=n,r=u.from(t).toStringLong(),o=await v({movementConfig:e,query:{query:co,variables:{address:r}},originMethod:"getAccountCoinsCount"});if(!o.current_fungible_asset_balances_aggregate.aggregate)throw Error("Failed to get the count of account coins");return o.current_fungible_asset_balances_aggregate.aggregate.count}async function As(n){let{movementConfig:e,accountAddress:t,asset:r}=n,i=await ot({movementConfig:e,originMethod:"getBalance",path:`accounts/${t}/balance/${r}`,params:{accountAddress:t.toString(),asset:r instanceof Uint8Array?u.from(r).toString():r.toString()}});return parseInt(i.data.toString(),10)}async function Ai(n){let{movementConfig:e,accountAddress:t,options:r}=n,o={owner_address:{_eq:u.from(t).toStringLong()}},s={query:Wn,variables:{where_condition:o,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:s,originMethod:"getAccountOwnedObjects"})).current_objects}async function hs(n){let{movementConfig:e,privateKey:t,options:r}=n,i=r?.throwIfNoAccountFound??!1,o=await Tr({movementConfig:e,privateKey:t});if(o.length===0){if(i)throw new Error("No existing account found for private key.");return et.fromPrivateKey({privateKey:t})}return o[0]}async function tA(n){let{movementConfig:e,authKey:t}=n,r=await un({movementConfig:e,authenticationKey:t.derivedAddress()});return bs({movementConfig:e,accountAddress:r})}async function bs(n){let{movementConfig:e,accountAddress:t,options:r}=n;try{let[i,o]=await Promise.all([gi({movementConfig:e,accountAddress:t}),Ai({movementConfig:e,accountAddress:t,options:{limit:1}})]),s=i.find(c=>c.type==="0x1::account::Account");if(!s&&o.length===0)return!1;if(!r?.withAuthKey)return!0;let a;return s?a=s.data.authentication_key:a=t.toStringLong(),a===r.withAuthKey.toString()}catch(i){throw new Error(`Error while checking if account exists at ${t.toString()}: ${i}`)}}var Sc={typeParameters:[],parameters:[new ae,_.u8(),new ae,_.u8(),_.u8(),_.u8()]};async function ws(n){let{movementConfig:e,fromAccount:t,options:r}=n;if("toNewPrivateKey"in n)return mi({movementConfig:e,fromAccount:t,toNewPrivateKey:n.toNewPrivateKey,options:r});if("toAccount"in n)return n.toAccount instanceof te?mi({movementConfig:e,fromAccount:t,toNewPrivateKey:n.toAccount.privateKey,options:r}):mi({movementConfig:e,fromAccount:t,toAccount:n.toAccount,options:r});throw new Error("Invalid arguments")}async function mi(n){let{movementConfig:e,fromAccount:t,options:r}=n,i=await cn({movementConfig:e,accountAddress:t.accountAddress}),o;"toNewPrivateKey"in n?o=et.fromPrivateKey({privateKey:n.toNewPrivateKey,legacy:!0}):o=n.toAccount;let a=new so({sequenceNumber:BigInt(i.sequence_number),originator:t.accountAddress,currentAuthKey:u.from(i.authentication_key),newPublicKey:o.publicKey}).bcsToBytes(),c=t.sign(a),d=o.sign(a);return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::account::rotate_authentication_key",functionArguments:[new Pe(t.signingScheme),P.U8(t.publicKey.toUint8Array()),new Pe(o.signingScheme),P.U8(o.publicKey.toUint8Array()),P.U8(c.toUint8Array()),P.U8(d.toUint8Array())],abi:Sc},options:r})}var vc={typeParameters:[],parameters:[new ae,_.u8()]};async function Ts(n){let{movementConfig:e,fromAccount:t,toNewPublicKey:r,options:i}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::account::rotate_authentication_key_from_public_key",functionArguments:[new Pe(as(r)),P.U8(li(r).toUint8Array())],abi:vc},options:i})}async function Sr(n){let{movementConfig:e,publicKey:t,options:r}=n,i=r?.noMultiKey??!1;if(i&&t instanceof Ce)throw new Error("Multi-key accounts are not supported when noMultiKey is true.");let o=[t];t instanceof K&&t.publicKey instanceof b?o.push(t.publicKey):t instanceof b&&o.push(new K(t));let[s,a]=await Promise.all([Promise.all(o.map(async p=>{let m=await Cc({movementConfig:e,publicKey:p});if(m)return{...m,publicKey:p}})),!(t instanceof Ce)&&!i?Kc({movementConfig:e,publicKey:t,options:r}):Promise.resolve([])]),c=[];for(let p of s)p&&c.push(p);o.push(...a);let d=new Map(o.map(p=>[p.authKey().toString(),p])),l=await xc({movementConfig:e,authKeys:o.map(p=>p.authKey()),options:r});for(let p of l){if(c.find(g=>g.accountAddress===p.accountAddress))continue;let m=d.get(p.authKey.toString());if(!m)throw new Error(`No publicKey found for authentication key ${p.authKey}. This should never happen.`);c.push({accountAddress:p.accountAddress,publicKey:m,lastTransactionVersion:p.lastTransactionVersion})}return c.sort((p,m)=>m.lastTransactionVersion-p.lastTransactionVersion)}async function hi(n){let{movementConfig:e,signer:t,options:r}=n;if(t instanceof q||t instanceof $e)return Tr({movementConfig:e,privateKey:t,options:r});if(t instanceof te||t instanceof ce)return Tr({movementConfig:e,privateKey:t.privateKey,options:r});if(t instanceof Te||t instanceof Me)return Pc({movementConfig:e,keylessAccount:t,options:r});if(t instanceof nt&&t.signers.length===1)return hi({movementConfig:e,signer:t.signers[0],options:r});if(t instanceof vn&&t.signers.length===1)return Tr({movementConfig:e,privateKey:t.signers[0],options:r});throw new Error("Unknown signer type")}async function Pc(n){let{movementConfig:e,keylessAccount:t,options:r}=n,i=await Sr({movementConfig:e,publicKey:t.getAnyPublicKey(),options:r}),o={proof:t.proofOrPromise,jwt:t.jwt,ephemeralKeyPair:t.ephemeralKeyPair,pepper:t.pepper,verificationKeyHash:t.verificationKeyHash},s=[];for(let{accountAddress:a,publicKey:c}of i)if(c instanceof Ce){if(c.getSignaturesRequired()>1)continue;if(c instanceof ee)throw new Error("Keyless authentication cannot be used for multi-ed25519 accounts. This should never happen.");c instanceof H&&s.push(new nt({multiKey:c,signers:[t],address:a}))}else t instanceof Me?s.push(Me.create({...o,address:a,jwkAddress:t.publicKey.jwkAddress})):s.push(Te.create({...o,address:a}));return s}async function Tr(n){let{movementConfig:e,privateKey:t,options:r}=n,i=et.fromPrivateKey({privateKey:t,legacy:!1}),o=await Sr({movementConfig:e,publicKey:new K(t.publicKey()),options:r}),s=[];for(let{accountAddress:a,publicKey:c}of o)if(c instanceof Ce){if(c.getSignaturesRequired()>1)continue;c instanceof ee?s.push(new vn({publicKey:c,signers:[t],address:a})):c instanceof H&&s.push(new nt({multiKey:c,signers:[i],address:a}))}else{let d=c instanceof b;s.push(et.fromPrivateKey({privateKey:t,address:a,legacy:d}))}return s}async function Kc(n){let{movementConfig:e,publicKey:t,options:r}=n;if(t instanceof Ce)throw new Error("Public key is a multi-key.");let i=r?.includeUnverified??!1,o=t instanceof K?t:new K(t),s=o.publicKey,a=ki(o.variant),c={public_key:{_eq:s.toString()},public_key_type:{_eq:a},...i?{}:{is_public_key_used:{_eq:!0}}},d={query:fo,variables:{where_condition:c}},{public_key_auth_keys:l}=await v({movementConfig:e,query:d,originMethod:"getMultiKeysForPublicKey"});return l.map(m=>{switch(m.signature_type){case"multi_ed25519_signature":return ee.deserializeWithoutLength(F.fromHex(m.account_public_key));case"multi_key_signature":return H.deserialize(F.fromHex(m.account_public_key));default:throw new Error(`Unknown multi-signature type: ${m.signature_type}`)}})}async function xc(n){let{movementConfig:e,authKeys:t,options:r}=n,i=r?.includeUnverified??!1;if(t.length===0)throw new Error("No authentication keys provided");let o={auth_key:{_in:t.map(c=>c.toString())},...i?{}:{is_auth_key_used:{_eq:!0}}},s={query:ao,variables:{where_condition:o,order_by:[{last_transaction_version:"desc"}]}},{auth_key_account_addresses:a}=await v({movementConfig:e,query:s,originMethod:"getAccountAddressesForAuthKeys"});return a.map(c=>({authKey:new re({data:c.auth_key}),accountAddress:new u(y.hexInputToUint8Array(c.account_address)),lastTransactionVersion:Number(c.last_transaction_version)}))}async function Ic(n){let{movementConfig:e,accountAddress:t}=n,r=await pi({movementConfig:e,accountAddress:t,options:{limit:1}});return r.length===0?0:Number(r[0].version)}async function Cc(n){let{movementConfig:e,publicKey:t}=n,r=t.authKey().derivedAddress(),[i,o]=await Promise.all([Ic({movementConfig:e,accountAddress:r}),bs({movementConfig:e,accountAddress:r,options:{withAuthKey:t.authKey()}})]);if(o)return{accountAddress:r,lastTransactionVersion:i}}async function k(n){let{movementConfig:e,payload:t,options:r}=n,i=await es({...t,movementConfig:e}),o=new ne;i.serialize(o);let s=o.toUint8Array(),{data:a}=await Gt({movementConfig:e,path:"view",originMethod:"view",contentType:"application/x.aptos.view_function+bcs",params:{ledger_version:r?.ledgerVersion},body:s});return a}async function Ss(n){let{movementConfig:e,payload:t,options:r}=n,{data:i}=await Gt({movementConfig:e,originMethod:"viewJson",path:"view",params:{ledger_version:r?.ledgerVersion},body:{function:t.function,type_arguments:t.typeArguments??[],arguments:t.functionArguments??[]}});return i}async function vs(n){let{movementConfig:e,sender:t,authenticationFunction:r,options:i}=n,{moduleAddress:o,moduleName:s,functionName:a}=me(r);return A({movementConfig:e,sender:t,data:{function:"0x1::account_abstraction::add_authentication_function",typeArguments:[],functionArguments:[o,s,a],abi:{typeParameters:[],parameters:[new R,new f(x()),new f(x())]}},options:i})}async function Ps(n){let{movementConfig:e,sender:t,authenticationFunction:r,options:i}=n,{moduleAddress:o,moduleName:s,functionName:a}=me(r);return A({movementConfig:e,sender:t,data:{function:"0x1::account_abstraction::remove_authentication_function",typeArguments:[],functionArguments:[o,s,a],abi:{typeParameters:[],parameters:[new R,new f(x()),new f(x())]}},options:i})}async function Ks(n){let{movementConfig:e,sender:t,options:r}=n;return A({movementConfig:e,sender:t,data:{function:"0x1::account_abstraction::remove_authenticator",typeArguments:[],functionArguments:[],abi:{typeParameters:[],parameters:[]}},options:r})}var Mt=class{constructor(e){this.config=e;this.isAccountAbstractionEnabled=async e=>{let t=await this.getAuthenticationFunction(e),{moduleAddress:r,moduleName:i,functionName:o}=me(e.authenticationFunction);return t?.some(s=>u.fromString(r).equals(s.moduleAddress)&&i===s.moduleName&&o===s.functionName)??!1};this.enableAccountAbstractionTransaction=this.addAuthenticationFunctionTransaction;this.disableAccountAbstractionTransaction=async e=>{let{accountAddress:t,authenticationFunction:r,options:i}=e;return r?this.removeAuthenticationFunctionTransaction({accountAddress:t,authenticationFunction:r,options:i}):this.removeDispatchableAuthenticatorTransaction({accountAddress:t,options:i})}}async addAuthenticationFunctionTransaction(e){let{accountAddress:t,authenticationFunction:r,options:i}=e;return vs({movementConfig:this.config,authenticationFunction:r,sender:t,options:i})}async removeAuthenticationFunctionTransaction(e){let{accountAddress:t,authenticationFunction:r,options:i}=e;return Ps({movementConfig:this.config,sender:t,authenticationFunction:r,options:i})}async removeDispatchableAuthenticatorTransaction(e){let{accountAddress:t,options:r}=e;return Ks({movementConfig:this.config,sender:t,options:r})}async getAuthenticationFunction(e){let{accountAddress:t}=e,[{vec:r}]=await k({movementConfig:this.config,payload:{function:"0x1::account_abstraction::dispatchable_authenticator",functionArguments:[u.from(t)],abi:{typeParameters:[],parameters:[new R],returnTypes:[]}}});if(r.length!==0)return r[0].map(i=>({moduleAddress:u.fromString(i.module_address),moduleName:i.module_name,functionName:i.function_name}))}};var In=class{constructor(e){this.config=e;this.abstraction=new Mt(e)}async getAccountInfo(e){return cn({movementConfig:this.config,...e})}async getAccountModules(e){return cs({movementConfig:this.config,...e})}async getAccountModulesPage(e){return us({movementConfig:this.config,...e})}async getAccountModule(e){return fr({movementConfig:this.config,...e})}async getAccountTransactions(e){return pi({movementConfig:this.config,...e})}async getAccountResources(e){return gi({movementConfig:this.config,...e})}async getAccountResourcesPage(e){return ds({movementConfig:this.config,...e})}async getAccountResource(e){return yi({movementConfig:this.config,...e})}async lookupOriginalAccountAddress(e){return un({movementConfig:this.config,...e})}async getAccountTokensCount(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_transactions_processor"}),ms({movementConfig:this.config,...e})}async getAccountOwnedTokens(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ls({movementConfig:this.config,...e})}async getAccountOwnedTokensFromCollectionAddress(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ps({movementConfig:this.config,...e})}async getAccountCollectionsWithOwnedTokens(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),gs({movementConfig:this.config,...e})}async getAccountTransactionsCount(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_transactions_processor"}),ys({movementConfig:this.config,...e})}async getAccountCoinsData(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"fungible_asset_processor"}),fi({movementConfig:this.config,...e})}async getAccountCoinsCount(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"fungible_asset_processor"}),fs({movementConfig:this.config,...e})}async getAccountMOVEAmount(e){return this.getAccountCoinAmount({coinType:Ve,faMetadataAddress:Hi,...e})}async getAccountCoinAmount(e){let{accountAddress:t,coinType:r,faMetadataAddress:i}=e,o=r;r===void 0&&i!==void 0&&(o=await Bt(async()=>{try{let c=(await k({movementConfig:this.config,payload:{function:"0x1::coin::paired_coin",functionArguments:[i]}}))[0];if(c.vec.length>0&&Yi(c.vec[0]))return Zi(c.vec[0])}catch{}},`coin-mapping-${i.toString()}`,1e3*60*5)());let s;if(r!==void 0&&i!==void 0)s=u.from(i).toStringLong();else if(r!==void 0&&i===void 0)r===Ve?s=u.A.toStringLong():s=Hn(u.A,r).toStringLong();else if(r===void 0&&i!==void 0){let c=u.from(i);s=c.toStringLong(),c===u.A&&(o=Ve)}else throw new Error("Either coinType, faMetadataAddress, or both must be provided");if(o!==void 0){let[c]=await k({movementConfig:this.config,payload:{function:"0x1::coin::balance",typeArguments:[o],functionArguments:[t]}});return parseInt(c,10)}let[a]=await k({movementConfig:this.config,payload:{function:"0x1::primary_fungible_store::balance",typeArguments:["0x1::object::ObjectCore"],functionArguments:[t,s]}});return parseInt(a,10)}async getBalance(e){return As({movementConfig:this.config,...e})}async getAccountOwnedObjects(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"default_processor"}),Ai({movementConfig:this.config,...e})}async deriveAccountFromPrivateKey(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_restoration_processor"}),await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),hs({movementConfig:this.config,...e})}async deriveOwnedAccountsFromSigner(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_restoration_processor"}),await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),hi({movementConfig:this.config,...e})}async getAccountsForPublicKey(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"account_restoration_processor"}),await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),Sr({movementConfig:this.config,...e})}};var dn=["A name must be between 3 and 63 characters long,","and can only contain lowercase a-z, 0-9, and hyphens.","A name may not start or end with a hyphen."].join(" ");function mn(n){return!(!n||n.length<3||n.length>63||!/^[a-z\d][a-z\d-]{1,61}[a-z\d]$/.test(n))}function B(n){let[e,t,...r]=n.replace(/\.move$/,"").split(".");if(r.length>0)throw new Error(`${n} is invalid. A name can only have two parts, a domain and a subdomain separated by a "."`);if(!mn(e))throw new Error(`${e} is not valid. ${dn}`);if(t&&!mn(t))throw new Error(`${t} is not valid. ${dn}`);return{domainName:t||e,subdomainName:t?e:void 0}}var Ec=(t=>(t[t.Independent=0]="Independent",t[t.FollowsDomain=1]="FollowsDomain",t))(Ec||{});function xs(n){if(!n)return!1;let e=new Date(n.domain_expiration_timestamp).getTime()<Date.now(),t=new Date(n.expiration_timestamp).getTime()<Date.now();return n.subdomain&&e?!1:n.subdomain&&n.subdomain_expiration_policy===1?!0:!t}var jA=process.env.MNS_TEST_ACCOUNT_PRIVATE_KEY??"ed25519-priv-0x37368b46ce665362562c6d1d4ec01a08c8644c488690df5a17e13ba163e20221",_c=process.env.MNS_TEST_ACCOUNT_ADDRESS??"0x585fc9f0f0c54183b039ffc770ca282ebd87307916c215a3e692f2f8e4305e82",Mc={testnet:"0x67bf15b3eed0fc62deea9630bbbd1d48842550655140f913699a1ca7e6f727d8",mainnet:"0x96a1ecd1b80abaa097864d9f037a0cb16728a968b5d43d739be34ded8b80db39",local:_c,custom:null,devnet:null,shelbynet:null,netna:null};function N(n){let e=Mc[n.network];if(!e)throw new Error(`The MNS contract is not deployed to ${n.network}`);return e}var vr=n=>{if(n&&typeof n=="object"&&"vec"in n&&Array.isArray(n.vec))return n.vec[0]};async function Is(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t),s=await k({movementConfig:e,payload:{function:`${r}::router::get_owner_addr`,functionArguments:[i,o]}}),a=vr(s[0]);return a?u.from(a):void 0}async function Cs(n){let{movementConfig:e,expiration:t,name:r,sender:i,targetAddress:o,toAddress:s,options:a,transferable:c}=n,d=N(e),{domainName:l,subdomainName:p}=B(r),m=t.policy==="subdomain:independent"||t.policy==="subdomain:follow-domain";if(p&&!m)throw new Error("Subdomains must have an expiration policy of either 'subdomain:independent' or 'subdomain:follow-domain'");if(m&&!p)throw new Error(`Policy is set to ${t.policy} but no subdomain was provided`);if(t.policy==="domain"){let g=t.years??1;if(g!==1)throw new Error("For now, names can only be registered for 1 year at a time");let U=g*31536e3;return await A({movementConfig:e,sender:i.accountAddress.toString(),data:{function:`${d}::router::register_domain`,functionArguments:[l,U,o,s]},options:a})}throw p?new Error("Subdomain registration is not currently supported on Movement. Movement's MNS contract uses a key staking mechanism for subdomains. See the router module's stake_key_for_subdomain and buy_and_stake_key_for_subdomain functions."):new Error(`${t.policy} requires a subdomain to be provided.`)}async function Es(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t);try{let s=await k({movementConfig:e,payload:{function:`${r}::router::get_expiration`,functionArguments:[i,o]}});return Number(s[0])*1e3}catch{return}}async function _s(n){let{movementConfig:e,address:t}=n,r=N(e),i=await k({movementConfig:e,payload:{function:`${r}::router::get_primary_name`,functionArguments:[u.from(t).toString()]}}),o=vr(i[1]),s=vr(i[0]);if(o)return[s,o].filter(Boolean).join(".")}async function Ms(n){let{movementConfig:e,sender:t,name:r,options:i}=n,o=N(e);if(!r)return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${o}::router::clear_primary_name`,functionArguments:[]},options:i});let{domainName:s,subdomainName:a}=B(r);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${o}::router::set_primary_name`,functionArguments:[s,a]},options:i})}async function ks(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t),s=await k({movementConfig:e,payload:{function:`${r}::router::get_target_addr`,functionArguments:[i,o]}}),a=vr(s[0]);return a?u.from(a):void 0}async function Us(n){let{movementConfig:e,sender:t,name:r,address:i,options:o}=n,s=N(e),{domainName:a,subdomainName:c}=B(r);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${s}::router::set_target_addr`,functionArguments:[a,c,i]},options:o})}async function Fs(n){let{movementConfig:e,name:t}=n,{domainName:r,subdomainName:i=""}=B(t),a=(await v({movementConfig:e,query:{query:Lt,variables:{where_condition:{domain:{_eq:r},subdomain:{_eq:i}},limit:1}},originMethod:"getName"})).current_aptos_names[0];return a&&(a=En(a)),xs(a)?a:void 0}async function zs(n){let{movementConfig:e,options:t,accountAddress:r}=n,i=await bi({movementConfig:e});return(await v({movementConfig:e,originMethod:"getAccountNames",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},owner_address:{_eq:r.toString()},expiration_timestamp:{_gte:i}}}}})).current_aptos_names.map(En)}async function Ds(n){let{movementConfig:e,options:t,accountAddress:r}=n,i=await bi({movementConfig:e});return(await v({movementConfig:e,originMethod:"getAccountDomains",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},owner_address:{_eq:r.toString()},expiration_timestamp:{_gte:i},subdomain:{_eq:""}}}}})).current_aptos_names.map(En)}async function Ns(n){let{movementConfig:e,options:t,accountAddress:r}=n,i=await bi({movementConfig:e});return(await v({movementConfig:e,originMethod:"getAccountSubdomains",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},owner_address:{_eq:r.toString()},expiration_timestamp:{_gte:i},subdomain:{_neq:""}}}}})).current_aptos_names.map(En)}async function Os(n){let{movementConfig:e,options:t,domain:r}=n;return(await v({movementConfig:e,originMethod:"getDomainSubdomains",query:{query:Lt,variables:{limit:t?.limit,offset:t?.offset,order_by:t?.orderBy,where_condition:{...n.options?.where??{},domain:{_eq:r},subdomain:{_neq:""}}}}})).current_aptos_names.map(En).filter(xs)}async function bi(n){let{movementConfig:e}=n,t=N(e),[r]=await k({movementConfig:e,payload:{function:`${t}::config::reregistration_grace_sec`,functionArguments:[]}}),i=r/60/60/24,o=()=>new Date;return new Date(o().setDate(o().getDate()-i)).toISOString()}async function Rs(n){let{movementConfig:e,sender:t,name:r,years:i=1,options:o}=n,s=N(e),a=i*31536e3,{domainName:c,subdomainName:d}=B(r);if(d)throw new Error("Subdomains cannot be renewed");if(i!==1)throw new Error("Currently, only 1 year renewals are supported");return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${s}::router::renew_domain`,functionArguments:[c,a]},options:o})}function En(n){return{...n,expiration_timestamp:new Date(n.expiration_timestamp).getTime()}}async function Gs(n){let{movementConfig:e,domainName:t,amount:r=1}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);if(s)throw new Error("Can only get key price for domains, not subdomains");let d=(await k({movementConfig:e,payload:{function:`${i}::key_manager::get_key_info_by_domain_name`,functionArguments:[o]}}))[0]?.vec?.[0]?.metadata?.inner;if(!d)throw new Error(`No key found for domain ${o}. Keys are created when the first subdomain is registered.`);let l=await k({movementConfig:e,payload:{function:`${i}::key_manager::get_buy_price_after_fee`,functionArguments:[d,r]}});return BigInt(l[0])}async function Bs(n){let{movementConfig:e,domainName:t,amount:r=1}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);if(s)throw new Error("Can only get key price for domains, not subdomains");let d=(await k({movementConfig:e,payload:{function:`${i}::key_manager::get_key_info_by_domain_name`,functionArguments:[o]}}))[0]?.vec?.[0]?.metadata?.inner;if(!d)throw new Error(`No key found for domain ${o}. Keys are created when the first subdomain is registered.`);let l=await k({movementConfig:e,payload:{function:`${i}::key_manager::get_sell_price_after_fee`,functionArguments:[d,r]}});return BigInt(l[0])}async function Vs(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,targetAddress:o,toAddress:s,referrer:a,options:c}=n,d=N(e),{domainName:l}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);let p=o?u.from(o).toString():null,m=s?u.from(s).toString():null,g=a?u.from(a).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${d}::router::buy_and_stake_key_for_subdomain`,functionArguments:[l,i,p,m,g]},options:c})}async function Hs(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,targetAddress:o,toAddress:s,options:a}=n,c=N(e),{domainName:d}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);let l=o?u.from(o).toString():null,p=s?u.from(s).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${c}::router::stake_key_for_subdomain`,functionArguments:[d,i,l,p]},options:a})}async function Ls(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,options:o}=n,s=N(e),{domainName:a}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${s}::router::unstake_key_for_subdomain`,functionArguments:[a,i]},options:o})}async function $s(n){let{movementConfig:e,sender:t,domainName:r,subdomainName:i,referrer:o,options:s}=n,a=N(e),{domainName:c}=B(r);if(!mn(i))throw new Error(`Invalid subdomain name: ${i}. ${dn}`);let d=o?u.from(o).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${a}::router::unstake_and_sell_key_for_subdomain`,functionArguments:[c,i,d]},options:s})}async function qs(n){let{movementConfig:e,name:t,account:r}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);return(await k({movementConfig:e,payload:{function:`${i}::router::can_register`,functionArguments:[u.from(r).toString(),o,s??null]}}))[0]}async function Ws(n){let{movementConfig:e,name:t,account:r}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);return(await k({movementConfig:e,payload:{function:`${i}::router::is_name_owner`,functionArguments:[u.from(r).toString(),o,s??null]}}))[0]}async function js(n){let{movementConfig:e,name:t}=n,r=N(e),{domainName:i,subdomainName:o}=B(t);try{let a=(await k({movementConfig:e,payload:{function:`${r}::router::get_token_addr`,functionArguments:[i,o??null]}}))[0];return a?u.from(a):void 0}catch{return}}async function Qs(n){let{movementConfig:e,sender:t,name:r,options:i}=n,o=N(e),{domainName:s,subdomainName:a}=B(r);return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${o}::router::clear_target_addr`,functionArguments:[s,a??null]},options:i})}async function Js(n){let{movementConfig:e,sender:t,domainName:r,amount:i,referrer:o,options:s}=n,a=N(e),{domainName:c,subdomainName:d}=B(r);if(d)throw new Error("Can only buy keys for domains, not subdomains");let m=(await k({movementConfig:e,payload:{function:`${a}::key_manager::get_key_info_by_domain_name`,functionArguments:[c]}}))[0]?.vec?.[0]?.metadata?.inner;if(!m)throw new Error(`No key found for domain ${c}. Keys are created when the first subdomain is registered.`);let g=o?u.from(o).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${a}::router::buy_keys`,functionArguments:[m,i,g]},options:s})}async function Zs(n){let{movementConfig:e,sender:t,domainName:r,amount:i,referrer:o,options:s}=n,a=N(e),{domainName:c,subdomainName:d}=B(r);if(d)throw new Error("Can only sell keys for domains, not subdomains");let m=(await k({movementConfig:e,payload:{function:`${a}::key_manager::get_key_info_by_domain_name`,functionArguments:[c]}}))[0]?.vec?.[0]?.metadata?.inner;if(!m)throw new Error(`No key found for domain ${c}.`);let g=o?u.from(o).toString():null;return await A({movementConfig:e,sender:t.accountAddress.toString(),data:{function:`${a}::router::sell_keys`,functionArguments:[m,i,g]},options:s})}async function Ys(n){let{movementConfig:e,name:t,years:r=1}=n,i=N(e),{domainName:o,subdomainName:s}=B(t);if(s)throw new Error("Can only get price for domains, not subdomains. Subdomains use key staking.");let c=r*31536e3,d=await k({movementConfig:e,payload:{function:`${i}::price_model_v2::price_for_domain`,functionArguments:[o,c]}});return BigInt(d[0])}var _n=class{constructor(e){this.config=e}async getOwnerAddress(e){return Is({movementConfig:this.config,...e})}async getExpiration(e){return Es({movementConfig:this.config,...e})}async getTargetAddress(e){return ks({movementConfig:this.config,...e})}async setTargetAddress(e){return Us({movementConfig:this.config,...e})}async getPrimaryName(e){return _s({movementConfig:this.config,...e})}async setPrimaryName(e){return Ms({movementConfig:this.config,...e})}async registerName(e){return Cs({movementConfig:this.config,...e})}async renewDomain(e){return Rs({movementConfig:this.config,...e})}async getName(e){return Fs({movementConfig:this.config,...e})}async getAccountNames(e){return zs({movementConfig:this.config,...e})}async getAccountDomains(e){return Ds({movementConfig:this.config,...e})}async getAccountSubdomains(e){return Ns({movementConfig:this.config,...e})}async getDomainSubdomains(e){return Os({movementConfig:this.config,...e})}async getKeyBuyPrice(e){return Gs({movementConfig:this.config,...e})}async getKeySellPrice(e){return Bs({movementConfig:this.config,...e})}async buyAndStakeKeyForSubdomain(e){return Vs({movementConfig:this.config,...e})}async stakeKeyForSubdomain(e){return Hs({movementConfig:this.config,...e})}async unstakeKeyForSubdomain(e){return Ls({movementConfig:this.config,...e})}async unstakeAndSellKeyForSubdomain(e){return $s({movementConfig:this.config,...e})}async canRegister(e){return qs({movementConfig:this.config,...e})}async isNameOwner(e){return Ws({movementConfig:this.config,...e})}async getTokenAddress(e){return js({movementConfig:this.config,...e})}async clearTargetAddress(e){return Qs({movementConfig:this.config,...e})}async buyKeys(e){return Js({movementConfig:this.config,...e})}async sellKeys(e){return Zs({movementConfig:this.config,...e})}async getDomainPrice(e){return Ys({movementConfig:this.config,...e})}};var kc={typeParameters:[{constraints:[]}],parameters:[new R,new J]};async function Xs(n){let{movementConfig:e,sender:t,recipient:r,amount:i,coinType:o,options:s}=n;return A({movementConfig:e,sender:t,data:{function:"0x1::aptos_account::transfer_coins",typeArguments:[o??Ve],functionArguments:[r,i],abi:kc},options:s})}var Mn=class{constructor(e){this.config=e}async transferCoinTransaction(e){return Xs({movementConfig:this.config,...e})}};var ut={BOOLEAN:"bool",U8:"u8",U16:"u16",U32:"u32",U64:"u64",U128:"u128",U256:"u256",ADDRESS:"address",STRING:"0x1::string::String",ARRAY:"vector<u8>"},Se="0x4::token::Token";async function ea(n){let{movementConfig:e,digitalAssetAddress:t}=n,r={token_data_id:{_eq:u.from(t).toStringLong()}};return(await v({movementConfig:e,query:{query:vo,variables:{where_condition:r}},originMethod:"getDigitalAssetData"})).current_token_datas_v2[0]}async function ta(n){let{movementConfig:e,digitalAssetAddress:t}=n,r={token_data_id:{_eq:u.from(t).toStringLong()},amount:{_gt:0}};return(await v({movementConfig:e,query:{query:Hr,variables:{where_condition:r}},originMethod:"getCurrentDigitalAssetOwnership"})).current_token_ownerships_v2[0]}async function na(n){let{movementConfig:e,ownerAddress:t,options:r}=n,i={owner_address:{_eq:u.from(t).toStringLong()},amount:{_gt:0}},o={query:Hr,variables:{where_condition:i,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:o,originMethod:"getOwnedDigitalAssets"})).current_token_ownerships_v2}async function ra(n){let{movementConfig:e,digitalAssetAddress:t,options:r}=n,i={token_data_id:{_eq:u.from(t).toStringLong()}},o={query:So,variables:{where_condition:i,offset:r?.offset,limit:r?.limit,order_by:r?.orderBy}};return(await v({movementConfig:e,query:o,originMethod:"getDigitalAssetActivity"})).token_activities_v2}var Uc={typeParameters:[],parameters:[new f(x()),new J,new f(x()),new f(x()),new L,new L,new L,new L,new L,new L,new L,new L,new L,new J,new J]};async function ia(n){let{movementConfig:e,options:t,creator:r}=n;return A({movementConfig:e,sender:r.accountAddress,data:{function:"0x4::aptos_token::create_collection",functionArguments:[new z(n.description),new he(n.maxSupply??Mi),new z(n.name),new z(n.uri),new $(n.mutableDescription??!0),new $(n.mutableRoyalty??!0),new $(n.mutableURI??!0),new $(n.mutableTokenDescription??!0),new $(n.mutableTokenName??!0),new $(n.mutableTokenProperties??!0),new $(n.mutableTokenURI??!0),new $(n.tokensBurnableByCreator??!0),new $(n.tokensFreezableByCreator??!0),new he(n.royaltyNumerator??0),new he(n.royaltyDenominator??1)],abi:Uc},options:t})}async function ln(n){let{movementConfig:e,options:t}=n,r=t?.where;t?.tokenStandard&&(r.token_standard={_eq:t?.tokenStandard??"v2"});let i={query:Ao,variables:{where_condition:r,offset:t?.offset,limit:t?.limit}};return(await v({movementConfig:e,query:i,originMethod:"getCollectionData"})).current_collections_v2[0]}async function oa(n){let{movementConfig:e,creatorAddress:t,collectionName:r,options:i}=n,o=u.from(t),s={collection_name:{_eq:r},creator_address:{_eq:o.toStringLong()}};return i?.tokenStandard&&(s.token_standard={_eq:i?.tokenStandard??"v2"}),ln({movementConfig:e,options:{...i,where:s}})}async function sa(n){let{movementConfig:e,creatorAddress:t,options:r}=n,o={creator_address:{_eq:u.from(t).toStringLong()}};return r?.tokenStandard&&(o.token_standard={_eq:r?.tokenStandard??"v2"}),ln({movementConfig:e,options:{...r,where:o}})}async function aa(n){let{movementConfig:e,collectionId:t,options:r}=n,o={collection_id:{_eq:u.from(t).toStringLong()}};return r?.tokenStandard&&(o.token_standard={_eq:r?.tokenStandard??"v2"}),ln({movementConfig:e,options:{...r,where:o}})}async function ca(n){let{creatorAddress:e,collectionName:t,options:r,movementConfig:i}=n,o=u.from(e),s={collection_name:{_eq:t},creator_address:{_eq:o.toStringLong()}};return r?.tokenStandard&&(s.token_standard={_eq:r?.tokenStandard??"v2"}),(await ln({movementConfig:i,options:{where:s}})).collection_id}var Fc={typeParameters:[],parameters:[new f(x()),new f(x()),new f(x()),new f(x()),new _(new f(x())),new _(new f(x())),new _(_.u8())]};async function ua(n){let{movementConfig:e,options:t,creator:r,collection:i,description:o,name:s,uri:a,propertyKeys:c,propertyTypes:d,propertyValues:l}=n,p=d?.map(m=>ut[m]);return A({movementConfig:e,sender:r.accountAddress,data:{function:"0x4::aptos_token::mint",functionArguments:[new z(i),new z(o),new z(s),new z(a),P.MoveString(c??[]),P.MoveString(p??[]),va(l??[],p??[])],abi:Fc},options:t})}var zc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new R]};async function da(n){let{movementConfig:e,sender:t,digitalAssetAddress:r,recipient:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::object::transfer",typeArguments:[o??Se],functionArguments:[u.from(r),u.from(i)],abi:zc},options:s})}var Dc={typeParameters:[],parameters:[new f(x()),new f(x()),new f(x()),new f(x()),new _(new f(x())),new _(new f(x())),new _(_.u8()),new R]};async function ma(n){let{movementConfig:e,account:t,collection:r,description:i,name:o,uri:s,recipient:a,propertyKeys:c,propertyTypes:d,propertyValues:l,options:p}=n;if(c?.length!==l?.length)throw new Error("Property keys and property values counts do not match");if(d?.length!==l?.length)throw new Error("Property types and property values counts do not match");let m=d?.map(g=>ut[g]);return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::mint_soul_bound",functionArguments:[r,i,o,s,P.MoveString(c??[]),P.MoveString(m??[]),va(l??[],m??[]),a],abi:Dc},options:p})}var Nc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0)))]};async function la(n){let{movementConfig:e,creator:t,digitalAssetAddress:r,digitalAssetType:i,options:o}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::burn",typeArguments:[i??Se],functionArguments:[u.from(r)],abi:Nc},options:o})}var Oc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0)))]};async function pa(n){let{movementConfig:e,creator:t,digitalAssetAddress:r,digitalAssetType:i,options:o}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::freeze_transfer",typeArguments:[i??Se],functionArguments:[r],abi:Oc},options:o})}var Rc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0)))]};async function ga(n){let{movementConfig:e,creator:t,digitalAssetAddress:r,digitalAssetType:i,options:o}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::unfreeze_transfer",typeArguments:[i??Se],functionArguments:[r],abi:Rc},options:o})}var Gc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function ya(n){let{movementConfig:e,creator:t,description:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::set_description",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Gc},options:s})}var Bc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function fa(n){let{movementConfig:e,creator:t,name:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::set_name",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Bc},options:s})}var Vc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function Aa(n){let{movementConfig:e,creator:t,uri:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::set_uri",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Vc},options:s})}var Hc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x()),new f(x()),_.u8()]};async function ha(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::add_property",typeArguments:[a??Se],functionArguments:[u.from(s),new z(r),new z(ut[i]),P.U8(wi(o,ut[i]))],abi:Hc},options:c})}var Lc={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x())]};async function ba(n){let{movementConfig:e,creator:t,propertyKey:r,digitalAssetAddress:i,digitalAssetType:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::remove_property",typeArguments:[o??Se],functionArguments:[u.from(i),new z(r)],abi:Lc},options:s})}var $c={typeParameters:[{constraints:["key"]}],parameters:[new f(ye(new G(0))),new f(x()),new f(x()),_.u8()]};async function wa(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::update_property",typeArguments:[a??Se],functionArguments:[u.from(s),new z(r),new z(ut[i]),wi(o,ut[i])],abi:$c},options:c})}var qc={typeParameters:[{constraints:["key"]},{constraints:[]}],parameters:[new f(ye(new G(0))),new f(x()),new G(1)]};async function Ta(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::add_typed_property",typeArguments:[a??Se,ut[i]],functionArguments:[u.from(s),new z(r),o],abi:qc},options:c})}var Wc={typeParameters:[{constraints:["key"]},{constraints:[]}],parameters:[new f(ye(new G(0))),new f(x()),new G(1)]};async function Sa(n){let{movementConfig:e,creator:t,propertyKey:r,propertyType:i,propertyValue:o,digitalAssetAddress:s,digitalAssetType:a,options:c}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x4::aptos_token::update_typed_property",typeArguments:[a??Se,ut[i]],functionArguments:[u.from(s),new z(r),o],abi:Wc},options:c})}function va(n,e){let t=new Array;return e.forEach((r,i)=>{t.push(wi(n[i],r))}),t}function wi(n,e){let t=ke(e);return _t(n,t,0,[]).bcsToBytes()}var kn=class{constructor(e){this.config=e}async getCollectionData(e){await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"});let{creatorAddress:t,collectionName:r,options:i}=e,o=u.from(t),s={collection_name:{_eq:r},creator_address:{_eq:o.toStringLong()}};return i?.tokenStandard&&(s.token_standard={_eq:i?.tokenStandard??"v2"}),ln({movementConfig:this.config,options:{where:s}})}async getCollectionDataByCreatorAddressAndCollectionName(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),oa({movementConfig:this.config,...e})}async getCollectionDataByCreatorAddress(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),sa({movementConfig:this.config,...e})}async getCollectionDataByCollectionId(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),aa({movementConfig:this.config,...e})}async getCollectionId(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ca({movementConfig:this.config,...e})}async getDigitalAssetData(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ea({movementConfig:this.config,...e})}async getCurrentDigitalAssetOwnership(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ta({movementConfig:this.config,...e})}async getOwnedDigitalAssets(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),na({movementConfig:this.config,...e})}async getDigitalAssetActivity(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"token_v2_processor"}),ra({movementConfig:this.config,...e})}async createCollectionTransaction(e){return ia({movementConfig:this.config,...e})}async mintDigitalAssetTransaction(e){return ua({movementConfig:this.config,...e})}async transferDigitalAssetTransaction(e){return da({movementConfig:this.config,...e})}async mintSoulBoundTransaction(e){return ma({movementConfig:this.config,...e})}async burnDigitalAssetTransaction(e){return la({movementConfig:this.config,...e})}async freezeDigitalAssetTransaferTransaction(e){return pa({movementConfig:this.config,...e})}async unfreezeDigitalAssetTransaferTransaction(e){return ga({movementConfig:this.config,...e})}async setDigitalAssetDescriptionTransaction(e){return ya({movementConfig:this.config,...e})}async setDigitalAssetNameTransaction(e){return fa({movementConfig:this.config,...e})}async setDigitalAssetURITransaction(e){return Aa({movementConfig:this.config,...e})}async addDigitalAssetPropertyTransaction(e){return ha({movementConfig:this.config,...e})}async removeDigitalAssetPropertyTransaction(e){return ba({movementConfig:this.config,...e})}async updateDigitalAssetPropertyTransaction(e){return wa({movementConfig:this.config,...e})}async addDigitalAssetTypedPropertyTransaction(e){return Ta({movementConfig:this.config,...e})}async updateDigitalAssetTypedPropertyTransaction(e){return Sa({movementConfig:this.config,...e})}};async function Pa(n){let{movementConfig:e,accountAddress:t,amount:r,options:i}=n,o=i?.timeoutSecs||20,{data:s}=await no({movementConfig:e,path:"mint",params:{address:u.from(t).toString(),amount:r},originMethod:"fundAccount"}),a=s[0],c=await $t({movementConfig:e,transactionHash:a,options:{timeoutSecs:o,checkSuccess:i?.checkSuccess}});if(c.type==="user_transaction")return c;throw new Error(`Unexpected transaction received for fund account: ${c.type}`)}var Un=class{constructor(e){this.config=e}async fundAccount(e){let t=await Pa({movementConfig:this.config,...e});return(e.options?.waitForIndexer===void 0||e.options?.waitForIndexer)&&await Mo({movementConfig:this.config,minimumLedgerVersion:BigInt(t.version),processorType:"fungible_asset_processor"}),t}};async function Pr(n){let{movementConfig:e,options:t}=n,r={query:To,variables:{where_condition:t?.where,limit:t?.limit,offset:t?.offset}};return(await v({movementConfig:e,query:r,originMethod:"getFungibleAssetMetadata"})).fungible_asset_metadata}async function Ka(n){let{movementConfig:e,options:t}=n,r={query:wo,variables:{where_condition:t?.where,limit:t?.limit,offset:t?.offset}};return(await v({movementConfig:e,query:r,originMethod:"getFungibleAssetActivities"})).fungible_asset_activities}async function xa(n){let{movementConfig:e,options:t}=n,r={query:ho,variables:{where_condition:t?.where,limit:t?.limit,offset:t?.offset}};return(await v({movementConfig:e,query:r,originMethod:"getCurrentFungibleAssetBalances"})).current_fungible_asset_balances}var Ia={typeParameters:[{constraints:[]}],parameters:[ke("0x1::object::Object"),new R,new J]};async function Ca(n){let{movementConfig:e,sender:t,fungibleAssetMetadataAddress:r,recipient:i,amount:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::primary_fungible_store::transfer",typeArguments:["0x1::fungible_asset::Metadata"],functionArguments:[r,i,o],abi:Ia},options:s})}async function Ea(n){let{movementConfig:e,sender:t,fromStore:r,toStore:i,amount:o,options:s}=n;return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::dispatchable_fungible_asset::transfer",typeArguments:["0x1::fungible_asset::FungibleStore"],functionArguments:[r,i,o],abi:Ia},options:s})}var Fn=class{constructor(e){this.config=e}async getFungibleAssetMetadata(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),Pr({movementConfig:this.config,...e})}async getFungibleAssetMetadataByAssetType(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),(await Pr({movementConfig:this.config,options:{where:{asset_type:{_eq:e.assetType}}}}))[0]}async getFungibleAssetMetadataByCreatorAddress(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),await Pr({movementConfig:this.config,options:{where:{creator_address:{_eq:u.from(e.creatorAddress).toStringLong()}}}})}async getFungibleAssetActivities(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),Ka({movementConfig:this.config,...e})}async getCurrentFungibleAssetBalances(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"fungible_asset_processor"}),xa({movementConfig:this.config,...e})}async transferFungibleAsset(e){return Ca({movementConfig:this.config,...e})}async transferFungibleAssetBetweenStores(e){return Ea({movementConfig:this.config,...e})}};var zn=class{constructor(e){this.config=e}async getLedgerInfo(){return jn({movementConfig:this.config})}async getChainId(){return(await this.getLedgerInfo()).chain_id}async getBlockByVersion(e){return ko({movementConfig:this.config,...e})}async getBlockByHeight(e){return Uo({movementConfig:this.config,...e})}async view(e){return k({movementConfig:this.config,...e})}async viewJson(e){return Ss({movementConfig:this.config,...e})}async getChainTopUserTransactions(e){return Po({movementConfig:this.config,...e})}async queryIndexer(e){return v({movementConfig:this.config,...e})}async getIndexerLastSuccessVersion(){return Ko({movementConfig:this.config})}async getProcessorStatus(e){return xo({movementConfig:this.config,processorType:e})}};import{jwtDecode as Qc}from"jwt-decode";async function Kr(n){let{movementConfig:e,jwt:t,ephemeralKeyPair:r,uidKey:i="sub",derivationPath:o}=n,s={jwt_b64:t,epk:r.getPublicKey().bcsToHex().toStringWithoutPrefix(),exp_date_secs:r.expiryDateSecs,epk_blinder:y.fromHexInput(r.blinder).toStringWithoutPrefix(),uid_key:i,derivation_path:o},{data:a}=await ro({movementConfig:e,path:"fetch",body:s,originMethod:"getPepper",overrides:{WITH_CREDENTIALS:!1}});return y.fromHexInput(a.pepper).toUint8Array()}async function Ti(n){let{movementConfig:e,jwt:t,ephemeralKeyPair:r,pepper:i=await Kr(n),uidKey:o="sub",maxExpHorizonSecs:s=(await sn({movementConfig:e})).maxExpHorizonSecs}=n;if(y.fromHexInput(i).toUint8Array().length!==Te.PEPPER_LENGTH)throw new Error(`Pepper needs to be ${Te.PEPPER_LENGTH} bytes`);let a=Qc(t);if(typeof a.iat!="number")throw new Error("iat was not found");if(s<r.expiryDateSecs-a.iat)throw Error(`The EphemeralKeyPair is too long lived. It's lifespan must be less than ${s}`);let c={jwt_b64:t,epk:r.getPublicKey().bcsToHex().toStringWithoutPrefix(),epk_blinder:y.fromHexInput(r.blinder).toStringWithoutPrefix(),exp_date_secs:r.expiryDateSecs,exp_horizon_secs:s,pepper:y.fromHexInput(i).toStringWithoutPrefix(),uid_key:o},{data:d}=await io({movementConfig:e,path:"prove",body:c,originMethod:"getProof",overrides:{WITH_CREDENTIALS:!1}}),l=d.proof,p=new dt({a:l.a,b:l.b,c:l.c});return new fe({proof:new pn(p,0),trainingWheelsSignature:Ge.fromHex(d.training_wheels_signature),expHorizonSecs:s})}async function _a(n){let{movementConfig:e,jwt:t,jwkAddress:r,uidKey:i,proofFetchCallback:o,pepper:s=await Kr(n)}=n,{verificationKey:a,maxExpHorizonSecs:c}=await sn({movementConfig:e}),d=Ti({...n,pepper:s,maxExpHorizonSecs:c}),l=o?d:await d;if(r!==void 0){let g=V.fromJwtAndPepper({jwt:t,pepper:s,jwkAddress:r,uidKey:i}),h=await un({movementConfig:e,authenticationKey:g.authKey().derivedAddress()});return Me.create({...n,address:h,proof:l,pepper:s,proofFetchCallback:o,jwkAddress:r,verificationKey:a})}let p=I.fromJwtAndPepper({jwt:t,pepper:s,uidKey:i}),m=await un({movementConfig:e,authenticationKey:p.authKey().derivedAddress()});return Te.create({...n,address:m,proof:l,pepper:s,proofFetchCallback:o,verificationKey:a})}async function Ma(n){let{movementConfig:e,sender:t,iss:r,options:i}=n,{jwksUrl:o}=n;o===void 0&&(qi.test(r)?o="https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com":o=r.endsWith("/")?`${r}.well-known/jwks.json`:`${r}/.well-known/jwks.json`);let s;try{if(s=await fetch(o),!s.ok)throw new Error(`${s.status} ${s.statusText}`)}catch(c){let d;throw c instanceof Error?d=`${c.message}`:d=`error unknown - ${c}`,S.fromErrorType({type:14,details:`Failed to fetch JWKS at ${o}: ${d}`})}let a=await s.json();return A({movementConfig:e,sender:t.accountAddress,data:{function:"0x1::jwks::update_federated_jwk_set",functionArguments:[r,P.MoveString(a.keys.map(c=>c.kid)),P.MoveString(a.keys.map(c=>c.alg)),P.MoveString(a.keys.map(c=>c.e)),P.MoveString(a.keys.map(c=>c.n))]},options:i})}var Dn=class{constructor(e){this.config=e}async getPepper(e){return Kr({movementConfig:this.config,...e})}async getProof(e){return Ti({movementConfig:this.config,...e})}async deriveKeylessAccount(e){return _a({movementConfig:this.config,...e})}async updateFederatedKeylessJwkSetTransaction(e){return Ma({movementConfig:this.config,...e})}};async function Jc(n){let{movementConfig:e,options:t}=n,r={query:Wn,variables:{where_condition:t?.where,offset:t?.offset,limit:t?.limit,order_by:t?.orderBy}};return(await v({movementConfig:e,query:r,originMethod:"getObjectData"})).current_objects}async function ka(n){let{movementConfig:e,objectAddress:t,options:r}=n,o={object_address:{_eq:u.from(t).toStringLong()}};return(await Jc({movementConfig:e,options:{...r,where:o}}))[0]}var Nn=class{constructor(e){this.config=e}async getObjectDataByObjectAddress(e){return await T({config:this.config,minimumLedgerVersion:e.minimumLedgerVersion,processorType:"objects_processor"}),ka({movementConfig:this.config,...e})}};async function Ua(n){let{movementConfig:e,poolAddress:t}=n,r=u.from(t).toStringLong(),o=await v({movementConfig:e,query:{query:Vr,variables:{where_condition:{pool_address:{_eq:r}}}}});return o.num_active_delegator_per_pool[0]?o.num_active_delegator_per_pool[0].num_active_delegator:0}async function Fa(n){let{movementConfig:e,options:t}=n,r={query:Vr,variables:{order_by:t?.orderBy}};return(await v({movementConfig:e,query:r})).num_active_delegator_per_pool}async function za(n){let{movementConfig:e,delegatorAddress:t,poolAddress:r}=n,i={query:bo,variables:{delegatorAddress:u.from(t).toStringLong(),poolAddress:u.from(r).toStringLong()}};return(await v({movementConfig:e,query:i})).delegated_staking_activities}var On=class{constructor(e){this.config=e}async getNumberOfDelegators(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"stake_processor"}),Ua({movementConfig:this.config,...e})}async getNumberOfDelegatorsForAllPools(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"stake_processor"}),Fa({movementConfig:this.config,...e})}async getDelegatedStakingActivities(e){return await T({config:this.config,minimumLedgerVersion:e?.minimumLedgerVersion,processorType:"stake_processor"}),za({movementConfig:this.config,...e})}};var xr=class{constructor(e){this.config=e}async simple(e){return A({movementConfig:this.config,...e})}async multiAgent(e){return A({movementConfig:this.config,...e})}};import Yc from"eventemitter3";var Ir=class{constructor(e,t,r,i,o){this.lastUncommintedNumber=null;this.currentNumber=null;this.lock=!1;this.movementConfig=e,this.account=t,this.maxWaitTime=r,this.maximumInFlight=i,this.sleepTime=o}async nextSequenceNumber(){for(;this.lock;)await fn(this.sleepTime);this.lock=!0;let e=BigInt(0);try{if((this.lastUncommintedNumber===null||this.currentNumber===null)&&await this.initialize(),this.currentNumber-this.lastUncommintedNumber>=this.maximumInFlight){await this.update();let t=He();for(;this.currentNumber-this.lastUncommintedNumber>=this.maximumInFlight;)await fn(this.sleepTime),He()-t>this.maxWaitTime?(console.warn(`Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`),await this.initialize()):await this.update()}e=this.currentNumber,this.currentNumber+=BigInt(1)}catch(t){console.error("error in getting next sequence number for this account",t)}finally{this.lock=!1}return e}async initialize(){let{sequence_number:e}=await cn({movementConfig:this.movementConfig,accountAddress:this.account.accountAddress});this.currentNumber=BigInt(e),this.lastUncommintedNumber=BigInt(e)}async update(){let{sequence_number:e}=await cn({movementConfig:this.movementConfig,accountAddress:this.account.accountAddress});return this.lastUncommintedNumber=BigInt(e),this.lastUncommintedNumber}async synchronize(){if(this.lastUncommintedNumber!==this.currentNumber){for(;this.lock;)await fn(this.sleepTime);this.lock=!0;try{await this.update();let e=He();for(;this.lastUncommintedNumber!==this.currentNumber;)He()-e>this.maxWaitTime?(console.warn(`Waited over 30 seconds for a transaction to commit, re-syncing ${this.account.accountAddress.toString()}`),await this.initialize()):(await fn(this.sleepTime),await this.update())}catch(e){console.error("error in synchronizing this account sequence number with the one on chain",e)}finally{this.lock=!1}}}};import Zc from"eventemitter3";var Da="fulfilled",Na=(o=>(o.TransactionSent="transactionSent",o.TransactionSendFailed="transactionSendFailed",o.TransactionExecuted="transactionExecuted",o.TransactionExecutionFailed="transactionExecutionFailed",o.ExecutionFinish="executionFinish",o))(Na||{}),Cr=class extends Zc{constructor(t,r,i=30,o=100,s=10){super();this.taskQueue=new Zn;this.transactionsQueue=new Zn;this.outstandingTransactions=new Zn;this.sentTransactions=[];this.executedTransactions=[];this.movementConfig=t,this.account=r,this.started=!1,this.accountSequnceNumber=new Ir(t,r,i,o,s)}async submitNextTransaction(){try{for(;;){let t=await this.accountSequnceNumber.nextSequenceNumber();if(t===null)return;let r=await this.generateNextTransaction(this.account,t);if(!r)return;let i=wr({movementConfig:this.movementConfig,transaction:r,signer:this.account});await this.outstandingTransactions.enqueue([i,t])}}catch(t){if(t instanceof $r)return;throw new Error(`Submit transaction failed for ${this.account.accountAddress.toString()} with error ${t}`)}}async processTransactions(){try{for(;;){let t=[],r=[],[i,o]=await this.outstandingTransactions.dequeue();for(t.push(i),r.push(o);!this.outstandingTransactions.isEmpty();)[i,o]=await this.outstandingTransactions.dequeue(),t.push(i),r.push(o);let s=await Promise.allSettled(t);for(let a=0;a<s.length&&a<r.length;a+=1){let c=s[a];o=r[a],c.status===Da?(this.sentTransactions.push([c.value.hash,o,null]),this.emit("transactionSent",{message:`transaction hash ${c.value.hash} has been committed to chain`,transactionHash:c.value.hash}),await this.checkTransaction(c,o)):(this.sentTransactions.push([c.status,o,c.reason]),this.emit("transactionSendFailed",{message:`failed to commit transaction ${this.sentTransactions.length} with error ${c.reason}`,error:c.reason}))}this.emit("executionFinish",{message:`execute ${s.length} transactions finished`})}}catch(t){if(t instanceof $r)return;throw new Error(`Process execution failed for ${this.account.accountAddress.toString()} with error ${t}`)}}async checkTransaction(t,r){try{let i=[];i.push($t({movementConfig:this.movementConfig,transactionHash:t.value.hash}));let o=await Promise.allSettled(i);for(let s=0;s<o.length;s+=1){let a=o[s];a.status===Da?(this.executedTransactions.push([a.value.hash,r,null]),this.emit("transactionExecuted",{message:`transaction hash ${a.value.hash} has been executed on chain`,transactionHash:t.value.hash})):(this.executedTransactions.push([a.status,r,a.reason]),this.emit("transactionExecutionFailed",{message:`failed to execute transaction ${this.executedTransactions.length} with error ${a.reason}`,error:a.reason}))}}catch(i){throw new Error(`Check transaction failed for ${this.account.accountAddress.toString()} with error ${i}`)}}async push(t,r){this.transactionsQueue.enqueue([t,r])}async generateNextTransaction(t,r){if(this.transactionsQueue.isEmpty())return;let[i,o]=await this.transactionsQueue.dequeue();return A({movementConfig:this.movementConfig,sender:t.accountAddress,data:i,options:{...o,accountSequenceNumber:r,replayProtectionNonce:void 0}})}async run(){try{for(;!this.taskQueue.isCancelled();)await(await this.taskQueue.dequeue())()}catch(t){throw new Error(`Unable to start transaction batching: ${t}`)}}start(){if(this.started)throw new Error("worker has already started");this.started=!0,this.taskQueue.enqueue(()=>this.submitNextTransaction()),this.taskQueue.enqueue(()=>this.processTransactions()),this.run()}stop(){if(this.taskQueue.isCancelled())throw new Error("worker has already stopped");this.started=!1,this.taskQueue.cancel()}};var Er=class extends Yc{constructor(e){super(),this.config=e}start(e){let{sender:t}=e;this.account=t,this.transactionWorker=new Cr(this.config,t),this.transactionWorker.start(),this.registerToEvents()}push(e){let{data:t,options:r}=e;for(let i of t)this.transactionWorker.push(i,r)}registerToEvents(){this.transactionWorker.on("transactionSent",async e=>{this.emit("transactionSent",e)}),this.transactionWorker.on("transactionSendFailed",async e=>{this.emit("transactionSendFailed",e)}),this.transactionWorker.on("transactionExecuted",async e=>{this.emit("transactionExecuted",e)}),this.transactionWorker.on("transactionExecutionFailed",async e=>{this.emit("transactionExecutionFailed",e)}),this.transactionWorker.on("executionFinish",async e=>{this.emit("executionFinish",e)})}forSingleAccount(e){try{let{sender:t,data:r,options:i}=e;this.start({sender:t}),this.push({data:r,options:i})}catch(t){throw new Error(`failed to submit transactions with error: ${t}`)}}};var gn=class{constructor(e){this.config=e}async simple(e){return di({movementConfig:this.config,...e})}async multiAgent(e){return di({movementConfig:this.config,...e})}};Ur([Wr],gn.prototype,"simple",1),Ur([Wr],gn.prototype,"multiAgent",1);var _r=class{constructor(e){this.config=e}async simple(e){return qr(this.config,e),xn({movementConfig:this.config,...e})}async multiAgent(e){return qr(this.config,e),xn({movementConfig:this.config,...e})}};var Rn=class{constructor(e){this.config=e,this.build=new xr(this.config),this.simulate=new gn(this.config),this.submit=new _r(this.config),this.batch=new Er(this.config)}async getTransactions(e){return Io({movementConfig:this.config,...e})}async getTransactionByVersion(e){return Co({movementConfig:this.config,...e})}async getTransactionByHash(e){return Eo({movementConfig:this.config,...e})}async isPendingTransaction(e){return _o({movementConfig:this.config,...e})}async waitForTransaction(e){return $t({movementConfig:this.config,...e})}async getGasPriceEstimation(){return Qn({movementConfig:this.config})}getSigningMessage(e){return is(e)}async publishPackageTransaction(e){return ss({movementConfig:this.config,...e})}async rotateAuthKey(e){return ws({movementConfig:this.config,...e})}async rotateAuthKeyUnverified(e){return Ts({movementConfig:this.config,...e})}sign(e){return hr({...e})}signAsFeePayer(e){return br({...e})}async batchTransactionsForSingleAccount(e){try{let{sender:t,data:r,options:i}=e;this.batch.forSingleAccount({sender:t,data:r,options:i})}catch(t){throw new Error(`failed to submit transactions with error: ${t}`)}}async signAndSubmitTransaction(e){return wr({movementConfig:this.config,...e})}async signAndSubmitAsFeePayer(e){return os({movementConfig:this.config,...e})}};var X=class{constructor(e){this.config=e??new Do,this.account=new In(this.config),this.abstraction=new Mt(this.config),this.mns=new _n(this.config),this.coin=new Mn(this.config),this.digitalAsset=new kn(this.config),this.faucet=new Un(this.config),this.fungibleAsset=new Fn(this.config),this.general=new zn(this.config),this.staking=new On(this.config),this.transaction=new Rn(this.config),this.table=new Lr(this.config),this.keyless=new Dn(this.config),this.object=new Nn(this.config)}setIgnoreTransactionSubmitter(e){this.config.setIgnoreTransactionSubmitter(e)}};function ue(n,e,t){Object.getOwnPropertyNames(e.prototype).forEach(r=>{let i=Object.getOwnPropertyDescriptor(e.prototype,r);i&&Object.defineProperty(n.prototype,r,{value:function(...o){return this[t][r](...o)},writable:i.writable,configurable:i.configurable,enumerable:i.enumerable})})}ue(X,In,"account");ue(X,Mt,"abstraction");ue(X,_n,"mns");ue(X,Mn,"coin");ue(X,kn,"digitalAsset");ue(X,Event,"event");ue(X,Un,"faucet");ue(X,Fn,"fungibleAsset");ue(X,zn,"general");ue(X,On,"staking");ue(X,Rn,"transaction");ue(X,Lr,"table");ue(X,Dn,"keyless");ue(X,Nn,"object");var ct=class n extends Vn{constructor(e){super();let t=e.constructor.name;if(t===b.name)this.publicKey=e,this.variant=0;else throw new Error(`Unsupported key for EphemeralPublicKey - ${t}`)}verifySignature(e){let{message:t,signature:r}=e;return this.publicKey.verifySignature({message:t,signature:r.signature})}async verifySignatureAsync(e){return this.verifySignature(e)}serialize(e){if(this.publicKey instanceof b)e.serializeU32AsUleb128(0),this.publicKey.serialize(e);else throw new Error("Unknown public key type")}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(b.deserialize(e));throw new Error(`Unknown variant index for EphemeralPublicKey: ${t}`)}static isPublicKey(e){return e instanceof n}},Ge=class n extends Y{constructor(e){super();let t=e.constructor.name;if(t===C.name)this.signature=e;else throw new Error(`Unsupported signature for EphemeralSignature - ${t}`)}static fromHex(e){let t=y.fromHexInput(e),r=new F(t.toUint8Array());return n.deserialize(r)}serialize(e){if(this.signature instanceof C)e.serializeU32AsUleb128(0),this.signature.serialize(e);else throw new Error("Unknown signature type")}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(C.deserialize(e));throw new Error(`Unknown variant index for EphemeralSignature: ${t}`)}};var nu=1e7,Si=120,ru=30,iu=330,ou=120,su=350,au=300,cu=93,Be=class Be extends Fe{constructor(e,t){super();let r=y.fromHexInput(t).toUint8Array();if(r.length!==Be.ID_COMMITMENT_LENGTH)throw new Error(`Id Commitment length in bytes should be ${Be.ID_COMMITMENT_LENGTH}`);this.iss=e,this.idCommitment=r}authKey(){let e=new ne;return e.serializeU32AsUleb128(3),e.serializeFixedBytes(this.bcsToBytes()),re.fromSchemeAndBytes({scheme:2,input:e.toUint8Array()})}verifySignature(e){try{return Mr({...e,publicKey:this}),!0}catch(t){if(t instanceof S)return!1;throw t}}async verifySignatureAsync(e){return Ci({...e,publicKey:this})}serialize(e){e.serializeStr(this.iss),e.serializeBytes(this.idCommitment)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new Be(t,r)}static load(e){let t=e.deserializeStr(),r=e.deserializeBytes();return new Be(t,r)}static isPublicKey(e){return e instanceof Be}static create(e){return Oa(e),new Be(e.iss,Oa(e))}static fromJwtAndPepper(e){let{jwt:t,pepper:r,uidKey:i="sub"}=e,o=Ra(t);if(typeof o.iss!="string")throw new Error("iss was not found");if(typeof o.aud!="string")throw new Error("aud was not found or an array of values");let s=o[i];return Be.create({iss:o.iss,uidKey:i,uidVal:s,aud:o.aud,pepper:r})}static isInstance(e){return"iss"in e&&typeof e.iss=="string"&&"idCommitment"in e&&e.idCommitment instanceof Uint8Array}};Be.ID_COMMITMENT_LENGTH=32;var I=Be;async function Ci(n){let{movementConfig:e,publicKey:t,message:r,signature:i,jwk:o,keylessConfig:s=await sn({movementConfig:e}),options:a}=n;try{if(!(i instanceof oe))throw S.fromErrorType({type:26,details:"Not a keyless signature"});return Mr({message:r,publicKey:t,signature:i,jwk:o||await Qr({movementConfig:e,publicKey:t,kid:i.getJwkKid()}),keylessConfig:s}),!0}catch(c){if(a?.throwErrorWithReason)throw c;return!1}}function Mr(n){let{publicKey:e,message:t,signature:r,keylessConfig:i,jwk:o}=n,{verificationKey:s,maxExpHorizonSecs:a,trainingWheelsPubkey:c}=i;if(!(r instanceof oe))throw S.fromErrorType({type:26,details:"Not a keyless signature"});if(!(r.ephemeralCertificate.signature instanceof fe))throw S.fromErrorType({type:26,details:"Unsupported ephemeral certificate variant"});let d=r.ephemeralCertificate.signature;if(!(d.proof.proof instanceof dt))throw S.fromErrorType({type:26,details:"Unsupported proof variant for ZeroKnowledgeSig"});let l=d.proof.proof;if(r.expiryDateSecs<He())throw S.fromErrorType({type:27,details:"The expiryDateSecs is in the past"});if(d.expHorizonSecs>a)throw S.fromErrorType({type:28});if(!r.ephemeralPublicKey.verifySignature({message:t,signature:r.ephemeralSignature}))throw S.fromErrorType({type:29});let p=uu({publicKey:e,signature:r,jwk:o,keylessConfig:i});if(!s.verifyProof({publicInputsHash:p,groth16Proof:l}))throw S.fromErrorType({type:32});if(c){if(!d.trainingWheelsSignature)throw S.fromErrorType({type:30});let m=new Pi(l,p);if(!c.verifySignature({message:m.hash(),signature:d.trainingWheelsSignature}))throw S.fromErrorType({type:31})}}function uu(n){let{publicKey:e,signature:t,jwk:r,keylessConfig:i}=n,o=e instanceof I?e:e.keylessPublicKey;if(!(t.ephemeralCertificate.signature instanceof fe))throw new Error("Signature is not a ZeroKnowledgeSig");let s=t.ephemeralCertificate.signature,a=[];return a.push(...$n(t.ephemeralPublicKey.toUint8Array(),i.maxCommitedEpkBytes)),a.push(Vt(o.idCommitment)),a.push(t.expiryDateSecs),a.push(s.expHorizonSecs),a.push(ze(o.iss,i.maxIssValBytes)),s.extraField?(a.push(1n),a.push(ze(s.extraField,i.maxExtraFieldBytes))):(a.push(0n),a.push(ze(" ",i.maxExtraFieldBytes))),a.push(ze(tu(t.jwtHeader,!0)+".",i.maxJwtHeaderB64Bytes)),a.push(r.toScalar()),s.overrideAudVal?(a.push(ze(s.overrideAudVal,Si)),a.push(1n)):(a.push(ze("",Si)),a.push(0n)),Ht(a)}async function Qr(n){let{movementConfig:e,publicKey:t,kid:r}=n,i=t instanceof I?t:t.keylessPublicKey,{iss:o}=i,s,a=t instanceof V?t.jwkAddress:void 0;try{s=await lu({movementConfig:e,jwkAddr:a})}catch(l){throw S.fromErrorType({type:24,error:l,details:`Failed to fetch ${a?"Federated":"Patched"}JWKs ${a?`for address ${a}`:"0x1"}`})}let c=s.get(o);if(c===void 0)throw S.fromErrorType({type:7,details:`JWKs for issuer ${o} not found.`});let d=c.find(l=>l.kid===r);if(d===void 0)throw S.fromErrorType({type:6,details:`JWK with kid '${r}' for issuer '${o}' not found.`});return d}function Oa(n){let{uidKey:e,uidVal:t,aud:r,pepper:i}=n,o=[Vt(y.fromHexInput(i).toUint8Array()),ze(r,Si),ze(t,iu),ze(e,ru)];return Rr(Ht(o),I.ID_COMMITMENT_LENGTH)}var oe=class n extends Y{constructor(e){super();let{jwtHeader:t,ephemeralCertificate:r,expiryDateSecs:i,ephemeralPublicKey:o,ephemeralSignature:s}=e;this.jwtHeader=t,this.ephemeralCertificate=r,this.expiryDateSecs=i,this.ephemeralPublicKey=o,this.ephemeralSignature=s}getJwkKid(){return gu(this.jwtHeader).kid}serialize(e){this.ephemeralCertificate.serialize(e),e.serializeStr(this.jwtHeader),e.serializeU64(this.expiryDateSecs),this.ephemeralPublicKey.serialize(e),this.ephemeralSignature.serialize(e)}static deserialize(e){let t=on.deserialize(e),r=e.deserializeStr(),i=e.deserializeU64(),o=ct.deserialize(e),s=Ge.deserialize(e);return new n({jwtHeader:r,expiryDateSecs:Number(i),ephemeralCertificate:t,ephemeralPublicKey:o,ephemeralSignature:s})}static getSimulationSignature(){return new n({jwtHeader:"{}",ephemeralCertificate:new on(new fe({proof:new pn(new dt({a:new Uint8Array(32),b:new Uint8Array(64),c:new Uint8Array(32)}),0),expHorizonSecs:0}),0),expiryDateSecs:0,ephemeralPublicKey:new ct(new b(new Uint8Array(32))),ephemeralSignature:new Ge(new C(new Uint8Array(64)))})}static isSignature(e){return e instanceof n}},on=class n extends Y{constructor(e,t){super(),this.signature=e,this.variant=t}toUint8Array(){return this.signature.toUint8Array()}serialize(e){e.serializeU32AsUleb128(this.variant),this.signature.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(fe.deserialize(e),t);throw new Error(`Unknown variant index for EphemeralCertificate: ${t}`)}},Gn=class Gn extends w{constructor(e){if(super(),this.data=y.fromHexInput(e).toUint8Array(),this.data.length!==32)throw new Error("Input needs to be 32 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(32);return new Gn(t)}toArray(){let e=this.toProjectivePoint();return[e.x.toString(),e.y.toString(),e.pz.toString()]}toProjectivePoint(){let e=new Uint8Array(this.data);e.reverse();let t=(e[0]&128)>>7,{Fp:r}=Ue.fields,i=r.create(vi(e)),o=r.sqrt(r.add(r.pow(i,3n),Gn.B)),s=r.neg(o),a=o>s==(t===1)?o:s;return Ue.G1.ProjectivePoint.fromAffine({x:i,y:a})}};Gn.B=Ue.fields.Fp.create(3n);var it=Gn;function vi(n){if(n.length!==32)throw new Error("Input should be 32 bytes");let e=new Uint8Array(n);return e[0]=e[0]&63,Xc(e)}var Bn=class Bn extends w{constructor(e){if(super(),this.data=y.fromHexInput(e).toUint8Array(),this.data.length!==64)throw new Error("Input needs to be 64 bytes")}serialize(e){e.serializeFixedBytes(this.data)}static deserialize(e){let t=e.deserializeFixedBytes(64);return new Bn(t)}toArray(){let e=this.toProjectivePoint();return[[e.x.c0.toString(),e.x.c1.toString()],[e.y.c0.toString(),e.y.c1.toString()],[e.pz.c0.toString(),e.pz.c1.toString()]]}toProjectivePoint(){let e=new Uint8Array(this.data),t=e.slice(0,32).reverse(),r=e.slice(32,64).reverse(),i=(r[0]&128)>>7,{Fp2:o}=Ue.fields,s=o.fromBigTuple([vi(t),vi(r)]),a=o.sqrt(o.add(o.pow(s,3n),Bn.B)),c=o.neg(a),l=(a.c1>c.c1||a.c1===c.c1&&a.c0>c.c0)===(i===1)?a:c;return Ue.G2.ProjectivePoint.fromAffine({x:s,y:l})}};Bn.B=Ue.fields.Fp2.fromBigTuple([19485874751759354771024239261021720505790618469301721065564631296452457478373n,266929791119991161246907387137283842545076965332900288569378510910307636690n]);var kt=Bn,dt=class n extends oo{constructor(e){super();let{a:t,b:r,c:i}=e;this.a=new it(t),this.b=new kt(r),this.c=new it(i)}serialize(e){this.a.serialize(e),this.b.serialize(e),this.c.serialize(e)}static deserialize(e){let t=it.deserialize(e).bcsToBytes(),r=kt.deserialize(e).bcsToBytes(),i=it.deserialize(e).bcsToBytes();return new n({a:t,b:r,c:i})}toSnarkJsJson(){return{protocol:"groth16",curve:"bn128",pi_a:this.a.toArray(),pi_b:this.b.toArray(),pi_c:this.c.toArray()}}},Pi=class n extends w{constructor(t,r){super();this.domainSeparator="APTOS::Groth16ProofAndStatement";if(this.proof=t,this.publicInputsHash=typeof r=="bigint"?Rr(r,32):y.fromHexInput(r).toUint8Array(),this.publicInputsHash.length!==32)throw new Error("Invalid public inputs hash")}serialize(t){this.proof.serialize(t),t.serializeFixedBytes(this.publicInputsHash)}static deserialize(t){return new n(dt.deserialize(t),t.deserializeFixedBytes(32))}hash(){return Re(this.bcsToBytes(),this.domainSeparator)}},pn=class n extends w{constructor(e,t){super(),this.proof=e,this.variant=t}serialize(e){e.serializeU32AsUleb128(this.variant),this.proof.serialize(e)}static deserialize(e){let t=e.deserializeUleb128AsU32();if(t===0)return new n(dt.deserialize(e),t);throw new Error(`Unknown variant index for ZkProof: ${t}`)}},fe=class n extends Y{constructor(e){super();let{proof:t,expHorizonSecs:r,trainingWheelsSignature:i,extraField:o,overrideAudVal:s}=e;this.proof=t,this.expHorizonSecs=r,this.trainingWheelsSignature=i,this.extraField=o,this.overrideAudVal=s}static fromBytes(e){return n.deserialize(new F(e))}serialize(e){this.proof.serialize(e),e.serializeU64(this.expHorizonSecs),e.serializeOption(this.extraField),e.serializeOption(this.overrideAudVal),e.serializeOption(this.trainingWheelsSignature)}static deserialize(e){let t=pn.deserialize(e),r=Number(e.deserializeU64()),i=e.deserializeOption("string"),o=e.deserializeOption("string"),s=e.deserializeOption(Ge);return new n({proof:t,expHorizonSecs:r,trainingWheelsSignature:s,extraField:i,overrideAudVal:o})}},Ki=class n{constructor(e){let{verificationKey:t,trainingWheelsPubkey:r,maxExpHorizonSecs:i=nu,maxExtraFieldBytes:o=su,maxJwtHeaderB64Bytes:s=au,maxIssValBytes:a=ou,maxCommitedEpkBytes:c=cu}=e;this.verificationKey=t,this.maxExpHorizonSecs=i,r&&(this.trainingWheelsPubkey=new ct(new b(r))),this.maxExtraFieldBytes=o,this.maxJwtHeaderB64Bytes=s,this.maxIssValBytes=a,this.maxCommitedEpkBytes=c}static create(e,t){return new n({verificationKey:new xi({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2}),maxExpHorizonSecs:Number(t.max_exp_horizon_secs),trainingWheelsPubkey:t.training_wheels_pubkey.vec[0],maxExtraFieldBytes:t.max_extra_field_bytes,maxJwtHeaderB64Bytes:t.max_jwt_header_b64_bytes,maxIssValBytes:t.max_iss_val_bytes,maxCommitedEpkBytes:t.max_commited_epk_bytes})}},xi=class n{constructor(e){let{alphaG1:t,betaG2:r,deltaG2:i,gammaAbcG1:o,gammaG2:s}=e;this.alphaG1=new it(t),this.betaG2=new kt(r),this.deltaG2=new kt(i),this.gammaAbcG1=[new it(o[0]),new it(o[1])],this.gammaG2=new kt(s)}hash(){let e=new ne;return this.serialize(e),eu.create().update(e.toUint8Array()).digest()}serialize(e){this.alphaG1.serialize(e),this.betaG2.serialize(e),this.deltaG2.serialize(e),this.gammaAbcG1[0].serialize(e),this.gammaAbcG1[1].serialize(e),this.gammaG2.serialize(e)}static fromGroth16VerificationKeyResponse(e){return new n({alphaG1:e.alpha_g1,betaG2:e.beta_g2,deltaG2:e.delta_g2,gammaAbcG1:e.gamma_abc_g1,gammaG2:e.gamma_g2})}verifyProof(e){let{publicInputsHash:t,groth16Proof:r}=e;try{let i=r.a.toProjectivePoint(),o=r.b.toProjectivePoint(),s=r.c.toProjectivePoint(),a=this.alphaG1.toProjectivePoint(),c=this.betaG2.toProjectivePoint(),d=this.gammaG2.toProjectivePoint(),l=this.deltaG2.toProjectivePoint(),p=this.gammaAbcG1.map(pt=>pt.toProjectivePoint()),{Fp12:m}=Ue.fields,g=p[0].add(p[1].multiply(t)),h=Ue.pairing(g,d),U=Ue.pairing(i,o),j=Ue.pairing(a,c),de=Ue.pairing(s,l),lt=m.mul(j,m.mul(h,de));return m.eql(U,lt)}catch(i){throw S.fromErrorType({type:32,error:i,details:"Error encountered when checking zero knowledge relation"})}}toSnarkJsJson(){return{protocol:"groth16",curve:"bn128",nPublic:1,vk_alpha_1:this.alphaG1.toArray(),vk_beta_2:this.betaG2.toArray(),vk_gamma_2:this.gammaG2.toArray(),vk_delta_2:this.deltaG2.toArray(),IC:this.gammaAbcG1.map(e=>e.toArray())}}};async function sn(n){let{movementConfig:e}=n;try{return await Bt(async()=>{let[t,r]=await Promise.all([du(n),mu(n)]);return Ki.create(r,t)},`keyless-configuration-${e.network}`,1e3*60*5)()}catch(t){throw t instanceof S?t:S.fromErrorType({type:25,error:t})}}function tt(n){let{jwt:e,uidKey:t="sub"}=n,r;try{r=Ra(e)}catch(o){throw S.fromErrorType({type:12,details:`Failed to parse JWT - ${Wi(o)}`})}if(typeof r.iss!="string")throw S.fromErrorType({type:12,details:"JWT is missing 'iss' in the payload. This should never happen."});if(typeof r.aud!="string")throw S.fromErrorType({type:12,details:"JWT is missing 'aud' in the payload or 'aud' is an array of values."});let i=r[t];return{iss:r.iss,aud:r.aud,uidVal:i}}async function du(n){let{movementConfig:e,options:t}=n,r="0x1::keyless_account::Configuration";try{let{data:i}=await ot({movementConfig:e,originMethod:"getKeylessConfigurationResource",path:`accounts/${u.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return i.data}catch(i){throw S.fromErrorType({type:22,error:i})}}async function mu(n){let{movementConfig:e,options:t}=n,r="0x1::keyless_account::Groth16VerificationKey";try{let{data:i}=await ot({movementConfig:e,originMethod:"getGroth16VerificationKeyResource",path:`accounts/${u.from("0x1").toString()}/resource/${r}`,params:{ledger_version:t?.ledgerVersion}});return i.data}catch(i){throw S.fromErrorType({type:23,error:i})}}async function lu(n){let{movementConfig:e,jwkAddr:t,options:r}=n,i;if(t){let s="0x1::jwks::FederatedJWKs",{data:a}=await ot({movementConfig:e,originMethod:"getKeylessJWKs",path:`accounts/${u.from(t).toString()}/resource/${s}`,params:{ledger_version:r?.ledgerVersion}});i=a}else{let s="0x1::jwks::PatchedJWKs",{data:a}=await ot({movementConfig:e,originMethod:"getKeylessJWKs",path:`accounts/0x1/resource/${s}`,params:{ledger_version:r?.ledgerVersion}});i=a}let o=new Map;for(let s of i.data.jwks.entries){let a=[];for(let c of s.jwks){let{data:d}=c.variant,l=new F(y.fromHexInput(d).toUint8Array()),p=Ii.deserialize(l);a.push(p)}o.set(_i(s.issuer),a)}return o}var Ii=class n extends w{constructor(e){super();let{kid:t,kty:r,alg:i,e:o,n:s}=e;this.kid=t,this.kty=r,this.alg=i,this.e=o,this.n=s}serialize(e){e.serializeStr(this.kid),e.serializeStr(this.kty),e.serializeStr(this.alg),e.serializeStr(this.e),e.serializeStr(this.n)}static fromMoveStruct(e){let{data:t}=e.variant,r=new F(y.fromHexInput(t).toUint8Array());return n.deserialize(r)}toScalar(){if(this.alg!=="RS256")throw S.fromErrorType({type:32,details:"Failed to convert JWK to scalar when calculating the public inputs hash. Only RSA 256 is supported currently"});let e=Ji(this.n),r=pu(e.reverse()).map(i=>Vt(i));return r.push(256n),Ht(r)}static deserialize(e){let t=e.deserializeStr(),r=e.deserializeStr(),i=e.deserializeStr(),o=e.deserializeStr(),s=e.deserializeStr();return new n({kid:t,kty:r,alg:i,n:s,e:o})}};function pu(n){let e=[];for(let t=0;t<n.length;t+=24){let r=n.slice(t,Math.min(t+24,n.length));if(r.length<24){let i=new Uint8Array(24);i.set(r),e.push(i)}else e.push(r)}return e}function gu(n){try{let e=JSON.parse(n);if(e.kid===void 0)throw new Error("JWT header missing kid");return e}catch{throw new Error("Failed to parse JWT header.")}}var V=class n extends Fe{constructor(e,t){super(),this.jwkAddress=u.from(e),this.keylessPublicKey=t}authKey(){let e=new ne;return e.serializeU32AsUleb128(4),e.serializeFixedBytes(this.bcsToBytes()),re.fromSchemeAndBytes({scheme:2,input:e.toUint8Array()})}verifySignature(e){try{return Mr({...e,publicKey:this}),!0}catch{return!1}}serialize(e){this.jwkAddress.serialize(e),this.keylessPublicKey.serialize(e)}static deserialize(e){let t=u.deserialize(e),r=I.deserialize(e);return new n(t,r)}static isPublicKey(e){return e instanceof n}async verifySignatureAsync(e){return Ci({...e,publicKey:this})}static create(e){return new n(e.jwkAddress,I.create(e))}static fromJwtAndPepper(e){return new n(e.jwkAddress,I.fromJwtAndPepper(e))}static isInstance(e){return"jwkAddress"in e&&e.jwkAddress instanceof u&&"keylessPublicKey"in e&&e.keylessPublicKey instanceof I}};var Wt=n=>typeof n=="string"?y.isValid(n).valid?n:new TextEncoder().encode(n):n,li=n=>{if(n instanceof b||n instanceof K||n instanceof ee||n instanceof H)return n;if(n instanceof I||n instanceof V)return new K(n);throw new Error(`Unknown account public key: ${n}`)},as=n=>{let e=li(n);if(e instanceof b)return 0;if(e instanceof K)return 2;if(e instanceof ee)return 1;if(e instanceof H)return 3;throw new Error(`Unknown signing scheme: ${e}`)};var Ei=[237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16];function yu(n){let e=n.toUint8Array().slice(32);for(let t=Ei.length-1;t>=0;t-=1){if(e[t]<Ei[t])return!0;if(e[t]>Ei[t])return!1}return!1}var mt=class mt extends Fe{constructor(e){super();let t=y.fromHexInput(e);if(t.toUint8Array().length!==mt.LENGTH)throw new Error(`PublicKey length should be ${mt.LENGTH}`);this.key=t}verifySignature(e){let{message:t,signature:r}=e;if(!yu(r))return!1;let i=Wt(t),o=y.fromHexInput(i).toUint8Array(),s=r.toUint8Array(),a=this.key.toUint8Array();return kr.verify(s,o,a)}async verifySignatureAsync(e){return this.verifySignature(e)}authKey(){return re.fromSchemeAndBytes({scheme:0,input:this.toUint8Array()})}toUint8Array(){return this.key.toUint8Array()}serialize(e){e.serializeBytes(this.key.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new mt(t)}static isPublicKey(e){return e instanceof mt}static isInstance(e){return"key"in e&&e.key?.data?.length===mt.LENGTH}};mt.LENGTH=32;var b=mt,ve=class ve extends w{constructor(e,t){super();let r=Ot.parseHexInput(e,"ed25519",t);if(r.toUint8Array().length!==ve.LENGTH)throw new Error(`PrivateKey length should be ${ve.LENGTH}`);this.signingKey=r}static generate(){let e=kr.utils.randomPrivateKey();return new ve(e,!1)}static fromDerivationPath(e,t){if(!Oi(e))throw new Error(`Invalid derivation path ${e}`);return ve.fromDerivationPathInner(e,Ln(t))}static fromDerivationPathInner(e,t,r=Di){let{key:i,chainCode:o}=Ri(ve.SLIP_0010_SEED,t),s=Bi(e).map(c=>parseInt(c,10)),{key:a}=s.reduce((c,d)=>Gi(c,d+r),{key:i,chainCode:o});return new ve(a,!1)}publicKey(){let e=kr.getPublicKey(this.signingKey.toUint8Array());return new b(e)}sign(e){let t=Wt(e),r=y.fromHexInput(t).toUint8Array(),i=kr.sign(r,this.signingKey.toUint8Array());return new C(i)}toUint8Array(){return this.signingKey.toUint8Array()}toString(){return this.toAIP80String()}toHexString(){return this.signingKey.toString()}toAIP80String(){return Ot.formatPrivateKey(this.signingKey.toString(),"ed25519")}serialize(e){e.serializeBytes(this.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new ve(t,!1)}static isPrivateKey(e){return e instanceof ve}};ve.LENGTH=32,ve.SLIP_0010_SEED="ed25519 seed";var q=ve,yn=class yn extends Y{constructor(e){super();let t=y.fromHexInput(e);if(t.toUint8Array().length!==yn.LENGTH)throw new Error(`Signature length should be ${yn.LENGTH}`);this.data=t}toUint8Array(){return this.data.toUint8Array()}serialize(e){e.serializeBytes(this.data.toUint8Array())}static deserialize(e){let t=e.deserializeBytes();return new yn(t)}};yn.LENGTH=64;var C=yn;export{wu as a,Tu as b,ct as c,Ge as d,nu as e,Si as f,ru as g,iu as h,ou as i,su as j,au as k,cu as l,I as m,Ci as n,Mr as o,Qr as p,oe as q,on as r,dt as s,Pi as t,pn as u,fe as v,Ki as w,xi as x,sn as y,tt as z,lu as A,Ii as B,gu as C,V as D,Ke as E,$e as F,Le as G,K as H,O as I,Ce as J,H as K,be as L,ee as M,xe as N,Wt as O,li as P,as as Q,yu as R,b as S,q as T,C as U,Q as V,Ee as W,qe as X,se as Y,Ne as Z,jt as _,gt as $,tr as aa,hn as ba,E as ca,L as da,ae as ea,yt as fa,We as ga,ft as ha,je as ia,At as ja,J as ka,ht as la,Qe as ma,bt as na,Je as oa,wt as pa,R as qa,Tt as ra,nr as sa,G as ta,_ as ua,f as va,Oe as wa,Vd as xa,x as ya,Hd as za,ye as Aa,Ha as Ba,st as Ca,Qt as Da,Jt as Ea,Zt as Fa,Ze as Ga,Yt as Ha,bn as Ia,wn as Ja,rr as Ka,St as La,Xt as Ma,Tn as Na,en as Oa,Sn as Pa,ir as Qa,vt as Ra,we as Sa,or as Ta,Pt as Ua,Kt as Va,sr as Wa,Ye as Xa,xt as Ya,tn as Za,It as _a,Ct as $a,at as ab,Xe as bb,ar as cb,cr as db,Re as eb,nl as fb,_e as gb,te as hb,jr as ib,ce as jb,et as kb,Et as lb,dr as mb,Ae as nb,ur as ob,Te as pb,Me as qb,nt as rb,vn as sb,Ro as tb,Vo as ub,mr as vb,Lo as wb,$o as xb,rt as yb,Xa as zb,lr as Ab,pr as Bb,qo as Cb,Wo as Db,Zr as Eb,gr as Fb,Yr as Gb,ec as Hb,Xr as Ib,ei as Jb,ti as Kb,ni as Lb,ri as Mb,ii as Nb,jo as Ob,M as Pb,Qo as Qb,oc as Rb,W as Sb,ke as Tb,yr as Ub,ac as Vb,si as Wb,ly as Xb,Yo as Yb,Xo as Zb,ai as _b,_t as $b,Ar as ac,dc as bc,es as cc,mc as dc,pc as ec,gc as fc,ci as gc,ts as hc,an as ic,ui as jc,ns as kc,Ry as lc,A as mc,Ac as nc,hc as oc,is as pc,hr as qc,br as rc,di as sc,xn as tc,wr as uc,os as vc,ss as wc,cn as xc,cs as yc,us as zc,fr as Ac,pi as Bc,gi as Cc,ds as Dc,yi as Ec,un as Fc,ms as Gc,ls as Hc,ps as Ic,gs as Jc,ys as Kc,eA as Lc,fi as Mc,fs as Nc,As as Oc,Ai as Pc,hs as Qc,tA as Rc,ws as Sc,Ts as Tc,Sr as Uc,hi as Vc,k as Wc,Ss as Xc,vs as Yc,Ps as Zc,Ks as _c,Mt as $c,In as ad,dn as bd,mn as cd,B as dd,Ec as ed,xs as fd,jA as gd,_c as hd,Is as id,Cs as jd,Es as kd,_s as ld,Ms as md,ks as nd,Us as od,Fs as pd,zs as qd,Ds as rd,Ns as sd,Os as td,Rs as ud,Gs as vd,Bs as wd,Vs as xd,Hs as yd,Ls as zd,$s as Ad,qs as Bd,Ws as Cd,js as Dd,Qs as Ed,Js as Fd,Zs as Gd,Ys as Hd,_n as Id,Xs as Jd,Mn as Kd,ea as Ld,ta as Md,na as Nd,ra as Od,ia as Pd,ln as Qd,oa as Rd,sa as Sd,aa as Td,ca as Ud,ua as Vd,da as Wd,ma as Xd,la as Yd,pa as Zd,ga as _d,ya as $d,fa as ae,Aa as be,ha as ce,ba as de,wa as ee,Ta as fe,Sa as ge,kn as he,Pa as ie,Un as je,Pr as ke,Ka as le,xa as me,Ca as ne,Ea as oe,Fn as pe,zn as qe,Kr as re,Ti as se,_a as te,Ma as ue,Dn as ve,Jc as we,ka as xe,Nn as ye,Ua as ze,Fa as Ae,za as Be,On as Ce,xr as De,Ir as Ee,Da as Fe,Na as Ge,Cr as He,Er as Ie,gn as Je,_r as Ke,Rn as Le,X as Me};
4
+ //# sourceMappingURL=chunk-LVNME34X.mjs.map