@mysten-incubation/dev-wallet 0.0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +189 -0
  3. package/dist/_virtual/{_@oxc-project_runtime@0.107.0 → _@oxc-project_runtime@0.127.0}/helpers/decorate.mjs +2 -3
  4. package/dist/adapters/base-adapter.mjs +6 -7
  5. package/dist/adapters/base-adapter.mjs.map +1 -1
  6. package/dist/adapters/browser.d.mts +4 -1
  7. package/dist/adapters/browser.mjs +4 -2
  8. package/dist/adapters/build-managed-account.mjs +8 -10
  9. package/dist/adapters/build-managed-account.mjs.map +1 -1
  10. package/dist/adapters/devstack-adapter.d.mts +111 -0
  11. package/dist/adapters/devstack-adapter.d.mts.map +1 -0
  12. package/dist/adapters/devstack-adapter.mjs +224 -0
  13. package/dist/adapters/devstack-adapter.mjs.map +1 -0
  14. package/dist/adapters/devstack-paths.d.mts +12 -0
  15. package/dist/adapters/devstack-paths.d.mts.map +1 -0
  16. package/dist/adapters/devstack-paths.mjs +12 -0
  17. package/dist/adapters/devstack-paths.mjs.map +1 -0
  18. package/dist/adapters/fork-relay.d.mts +109 -0
  19. package/dist/adapters/fork-relay.d.mts.map +1 -0
  20. package/dist/adapters/fork-relay.mjs +208 -0
  21. package/dist/adapters/fork-relay.mjs.map +1 -0
  22. package/dist/adapters/idb-store.mjs +12 -16
  23. package/dist/adapters/idb-store.mjs.map +1 -1
  24. package/dist/adapters/in-memory-adapter.mjs +4 -10
  25. package/dist/adapters/in-memory-adapter.mjs.map +1 -1
  26. package/dist/adapters/passkey-adapter.mjs +4 -12
  27. package/dist/adapters/passkey-adapter.mjs.map +1 -1
  28. package/dist/adapters/remote-cli-adapter.mjs +37 -72
  29. package/dist/adapters/remote-cli-adapter.mjs.map +1 -1
  30. package/dist/adapters/webcrypto-adapter.mjs +2 -4
  31. package/dist/adapters/webcrypto-adapter.mjs.map +1 -1
  32. package/dist/bin/cli.mjs +9 -22
  33. package/dist/bin/cli.mjs.map +1 -1
  34. package/dist/client/dev-wallet-client.mjs +13 -28
  35. package/dist/client/dev-wallet-client.mjs.map +1 -1
  36. package/dist/client/index.mjs +1 -2
  37. package/dist/client/request-handler.mjs +36 -42
  38. package/dist/client/request-handler.mjs.map +1 -1
  39. package/dist/index.mjs +1 -2
  40. package/dist/react/components.d.mts +9 -9
  41. package/dist/react/components.d.mts.map +1 -1
  42. package/dist/react/components.mjs +2 -5
  43. package/dist/react/components.mjs.map +1 -1
  44. package/dist/react/context.d.mts +3 -3
  45. package/dist/react/context.d.mts.map +1 -1
  46. package/dist/react/context.mjs +3 -8
  47. package/dist/react/context.mjs.map +1 -1
  48. package/dist/react/index.mjs +1 -2
  49. package/dist/react/useDevWallet.d.mts +3 -0
  50. package/dist/react/useDevWallet.d.mts.map +1 -1
  51. package/dist/react/useDevWallet.mjs +9 -14
  52. package/dist/react/useDevWallet.mjs.map +1 -1
  53. package/dist/server/cli-signing-middleware.mjs +7 -20
  54. package/dist/server/cli-signing-middleware.mjs.map +1 -1
  55. package/dist/server/index.mjs +1 -2
  56. package/dist/standalone/assets/{in-memory-adapter-CBF4h2KD.js → in-memory-adapter-qRkNfj9O.js} +1 -1
  57. package/dist/standalone/assets/main-DDltQnzR.js +3954 -0
  58. package/dist/standalone/assets/{webcrypto-adapter-DysAubFb.js → webcrypto-adapter-FejcrL9x.js} +1 -1
  59. package/dist/standalone/index.html +11 -12
  60. package/dist/ui/copy-controller.mjs +3 -3
  61. package/dist/ui/copy-controller.mjs.map +1 -1
  62. package/dist/ui/dev-wallet-account-selector.d.mts +3 -4
  63. package/dist/ui/dev-wallet-account-selector.d.mts.map +1 -1
  64. package/dist/ui/dev-wallet-account-selector.mjs +48 -25
  65. package/dist/ui/dev-wallet-account-selector.mjs.map +1 -1
  66. package/dist/ui/dev-wallet-accounts.d.mts +9 -4
  67. package/dist/ui/dev-wallet-accounts.d.mts.map +1 -1
  68. package/dist/ui/dev-wallet-accounts.mjs +62 -140
  69. package/dist/ui/dev-wallet-accounts.mjs.map +1 -1
  70. package/dist/ui/dev-wallet-balances.d.mts +10 -3
  71. package/dist/ui/dev-wallet-balances.d.mts.map +1 -1
  72. package/dist/ui/dev-wallet-balances.mjs +241 -43
  73. package/dist/ui/dev-wallet-balances.mjs.map +1 -1
  74. package/dist/ui/dev-wallet-connect.d.mts +3 -3
  75. package/dist/ui/dev-wallet-connect.d.mts.map +1 -1
  76. package/dist/ui/dev-wallet-connect.mjs +24 -16
  77. package/dist/ui/dev-wallet-connect.mjs.map +1 -1
  78. package/dist/ui/dev-wallet-dropdown.d.mts +3 -3
  79. package/dist/ui/dev-wallet-dropdown.d.mts.map +1 -1
  80. package/dist/ui/dev-wallet-dropdown.mjs +37 -47
  81. package/dist/ui/dev-wallet-dropdown.mjs.map +1 -1
  82. package/dist/ui/dev-wallet-fork-panel.d.mts +43 -0
  83. package/dist/ui/dev-wallet-fork-panel.d.mts.map +1 -0
  84. package/dist/ui/dev-wallet-fork-panel.mjs +500 -0
  85. package/dist/ui/dev-wallet-fork-panel.mjs.map +1 -0
  86. package/dist/ui/dev-wallet-network-badge.d.mts +3 -4
  87. package/dist/ui/dev-wallet-network-badge.d.mts.map +1 -1
  88. package/dist/ui/dev-wallet-network-badge.mjs +52 -21
  89. package/dist/ui/dev-wallet-network-badge.mjs.map +1 -1
  90. package/dist/ui/dev-wallet-new-account.d.mts +3 -4
  91. package/dist/ui/dev-wallet-new-account.d.mts.map +1 -1
  92. package/dist/ui/dev-wallet-new-account.mjs +31 -105
  93. package/dist/ui/dev-wallet-new-account.mjs.map +1 -1
  94. package/dist/ui/dev-wallet-objects.d.mts +3 -3
  95. package/dist/ui/dev-wallet-objects.d.mts.map +1 -1
  96. package/dist/ui/dev-wallet-objects.mjs +76 -39
  97. package/dist/ui/dev-wallet-objects.mjs.map +1 -1
  98. package/dist/ui/dev-wallet-panel.d.mts +24 -4
  99. package/dist/ui/dev-wallet-panel.d.mts.map +1 -1
  100. package/dist/ui/dev-wallet-panel.mjs +247 -64
  101. package/dist/ui/dev-wallet-panel.mjs.map +1 -1
  102. package/dist/ui/dev-wallet-popup.d.mts +3 -5
  103. package/dist/ui/dev-wallet-popup.d.mts.map +1 -1
  104. package/dist/ui/dev-wallet-popup.mjs +19 -15
  105. package/dist/ui/dev-wallet-popup.mjs.map +1 -1
  106. package/dist/ui/dev-wallet-settings.d.mts +3 -4
  107. package/dist/ui/dev-wallet-settings.d.mts.map +1 -1
  108. package/dist/ui/dev-wallet-settings.mjs +149 -97
  109. package/dist/ui/dev-wallet-settings.mjs.map +1 -1
  110. package/dist/ui/dev-wallet-signing-modal.d.mts +11 -4
  111. package/dist/ui/dev-wallet-signing-modal.d.mts.map +1 -1
  112. package/dist/ui/dev-wallet-signing-modal.mjs +46 -18
  113. package/dist/ui/dev-wallet-signing-modal.mjs.map +1 -1
  114. package/dist/ui/dev-wallet-signing.d.mts +9 -3
  115. package/dist/ui/dev-wallet-signing.d.mts.map +1 -1
  116. package/dist/ui/dev-wallet-signing.mjs +119 -130
  117. package/dist/ui/dev-wallet-signing.mjs.map +1 -1
  118. package/dist/ui/dev-wallet-standalone.d.mts +8 -3
  119. package/dist/ui/dev-wallet-standalone.d.mts.map +1 -1
  120. package/dist/ui/dev-wallet-standalone.mjs +303 -38
  121. package/dist/ui/dev-wallet-standalone.mjs.map +1 -1
  122. package/dist/ui/dev-wallet-tab-bar.d.mts +13 -5
  123. package/dist/ui/dev-wallet-tab-bar.d.mts.map +1 -1
  124. package/dist/ui/dev-wallet-tab-bar.mjs +143 -82
  125. package/dist/ui/dev-wallet-tab-bar.mjs.map +1 -1
  126. package/dist/ui/index.d.mts +3 -2
  127. package/dist/ui/index.mjs +2 -2
  128. package/dist/ui/mount.d.mts +14 -1
  129. package/dist/ui/mount.d.mts.map +1 -1
  130. package/dist/ui/mount.mjs +5 -2
  131. package/dist/ui/mount.mjs.map +1 -1
  132. package/dist/ui/styles.mjs +428 -66
  133. package/dist/ui/styles.mjs.map +1 -1
  134. package/dist/ui/transaction-analyzer.mjs +19 -30
  135. package/dist/ui/transaction-analyzer.mjs.map +1 -1
  136. package/dist/ui/utils.d.mts +59 -0
  137. package/dist/ui/utils.d.mts.map +1 -0
  138. package/dist/ui/utils.mjs +42 -15
  139. package/dist/ui/utils.mjs.map +1 -1
  140. package/dist/ui/wallet-controller.mjs +89 -20
  141. package/dist/ui/wallet-controller.mjs.map +1 -1
  142. package/dist/wallet/constants.d.mts +9 -0
  143. package/dist/wallet/constants.d.mts.map +1 -0
  144. package/dist/wallet/constants.mjs +1 -1
  145. package/dist/wallet/dev-wallet.mjs +42 -99
  146. package/dist/wallet/dev-wallet.mjs.map +1 -1
  147. package/dist/wallet/initializer.d.mts +3 -0
  148. package/dist/wallet/initializer.d.mts.map +1 -1
  149. package/dist/wallet/initializer.mjs +9 -14
  150. package/dist/wallet/initializer.mjs.map +1 -1
  151. package/dist/wallet/signing.mjs +8 -21
  152. package/dist/wallet/signing.mjs.map +1 -1
  153. package/package.json +8 -6
  154. package/src/adapters/browser.ts +21 -0
  155. package/src/adapters/devstack-adapter.ts +342 -0
  156. package/src/adapters/devstack-paths.ts +16 -0
  157. package/src/adapters/fork-relay.ts +321 -0
  158. package/src/app/index.html +10 -11
  159. package/src/react/useDevWallet.ts +5 -1
  160. package/src/ui/dev-wallet-account-selector.ts +44 -17
  161. package/src/ui/dev-wallet-accounts.ts +87 -124
  162. package/src/ui/dev-wallet-balances.ts +248 -27
  163. package/src/ui/dev-wallet-connect.ts +19 -8
  164. package/src/ui/dev-wallet-dropdown.ts +7 -5
  165. package/src/ui/dev-wallet-fork-panel.ts +591 -0
  166. package/src/ui/dev-wallet-network-badge.ts +49 -10
  167. package/src/ui/dev-wallet-new-account.ts +21 -62
  168. package/src/ui/dev-wallet-objects.ts +59 -19
  169. package/src/ui/dev-wallet-panel.ts +261 -42
  170. package/src/ui/dev-wallet-popup.ts +12 -6
  171. package/src/ui/dev-wallet-settings.ts +159 -94
  172. package/src/ui/dev-wallet-signing-modal.ts +47 -7
  173. package/src/ui/dev-wallet-signing.ts +124 -97
  174. package/src/ui/dev-wallet-standalone.ts +310 -22
  175. package/src/ui/dev-wallet-tab-bar.ts +132 -70
  176. package/src/ui/index.ts +3 -0
  177. package/src/ui/mount.ts +23 -1
  178. package/src/ui/styles.ts +434 -58
  179. package/src/ui/utils.ts +66 -0
  180. package/src/ui/wallet-controller.ts +103 -5
  181. package/src/wallet/initializer.ts +7 -1
  182. package/dist/standalone/assets/main-VE4olb-Q.js +0 -2841
@@ -1,2841 +0,0 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();const rm="modulepreload",im=function(e){return"/"+e},jc={},ha=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(u=>Promise.resolve(u).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),o=a?.nonce||a?.getAttribute("nonce");r=c(n.map(l=>{if(l=im(l),l in jc)return;jc[l]=!0;const u=l.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const h=document.createElement("link");if(h.rel=u?"stylesheet":rm,u||(h.as="script"),h.crossOrigin="",h.href=l,o&&h.setAttribute("nonce",o),document.head.appendChild(h),u)return new Promise((f,m)=>{h.addEventListener("load",f),h.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(a){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a}return r.then(a=>{for(const o of a||[])o.status==="rejected"&&i(o.reason);return t().catch(i)})},am=/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i,om=/^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\.)+sui$/i,cm=235;function lm(e){return e.length>cm?!1:e.includes("@")?am.test(e):om.test(e)}function bi(e){let t=BigInt(e);const n=[];let s=0;if(t===0n)return[0];for(;t>0;)n[s]=Number(t&127n),t>>=7n,t>0n&&(n[s]|=128),s+=1;return n}function um(e){let t=0n,n=0n,s=0;for(;;){if(s>=e.length)throw new Error("ULEB decode error: buffer overflow");const r=e[s];if(s+=1,t+=BigInt(r&127)<<n,(r&128)===0)break;n+=7n}if(t>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("ULEB decode error: value exceeds MAX_SAFE_INTEGER");return{value:Number(t),length:s}}var dm=class{constructor(e){this.bytePosition=0,this.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength)}shift(e){return this.bytePosition+=e,this}read8(){const e=this.dataView.getUint8(this.bytePosition);return this.shift(1),e}read16(){const e=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),e}read32(){const e=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),e}read64(){const e=this.read32(),t=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+t).toString(10)}read128(){const e=BigInt(this.read64()),t=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+t).toString(10)}read256(){const e=BigInt(this.read128()),t=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+t).toString(10)}readBytes(e){const t=this.bytePosition+this.dataView.byteOffset,n=new Uint8Array(this.dataView.buffer,t,e);return this.shift(e),n}readULEB(){const e=this.bytePosition+this.dataView.byteOffset,{value:t,length:n}=um(new Uint8Array(this.dataView.buffer,e));return this.shift(n),t}readVec(e){const t=this.readULEB(),n=[];for(let s=0;s<t;s++)n.push(e(this,s,t));return n}};function Mo(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function yu(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function pm(e){if(typeof e!="function")throw new Error("function expected");return!0}function hr(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function qi(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function wi(e){if(!Array.isArray(e))throw new Error("array expected")}function Tu(e,t){if(!yu(!0,t))throw new Error(`${e}: array of strings expected`)}function Bo(e,t){if(!yu(!1,t))throw new Error(`${e}: array of numbers expected`)}function ku(...e){const t=i=>i,n=(i,a)=>o=>i(a(o)),s=e.map(i=>i.encode).reduceRight(n,t),r=e.map(i=>i.decode).reduce(n,t);return{encode:s,decode:r}}function _u(e){const t=typeof e=="string"?e.split(""):e,n=t.length;Tu("alphabet",t);const s=new Map(t.map((r,i)=>[r,i]));return{encode:r=>(wi(r),r.map(i=>{if(!Number.isSafeInteger(i)||i<0||i>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${e}`);return t[i]})),decode:r=>(wi(r),r.map(i=>{hr("alphabet.decode",i);const a=s.get(i);if(a===void 0)throw new Error(`Unknown letter: "${i}". Allowed: ${e}`);return a}))}}function Eu(e=""){return hr("join",e),{encode:t=>(Tu("join.decode",t),t.join(e)),decode:t=>(hr("join.decode",t),t.split(e))}}function Pc(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(wi(e),!e.length)return[];let s=0;const r=[],i=Array.from(e,o=>{if(qi(o),o<0||o>=t)throw new Error(`invalid integer: ${o}`);return o}),a=i.length;for(;;){let o=0,c=!0;for(let l=s;l<a;l++){const u=i[l],d=t*o,h=d+u;if(!Number.isSafeInteger(h)||d/t!==o||h-u!==d)throw new Error("convertRadix: carry overflow");const f=h/n;o=h%n;const m=Math.floor(f);if(i[l]=m,!Number.isSafeInteger(m)||m*n+o!==h)throw new Error("convertRadix: carry overflow");if(c)m?c=!1:s=l;else continue}if(r.push(o),c)break}for(let o=0;o<e.length-1&&e[o]===0;o++)r.push(0);return r.reverse()}const Su=(e,t)=>t===0?e:Su(t,e%t),yi=(e,t)=>e+(t-Su(e,t)),Kr=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Ya(e,t,n,s){if(wi(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(yi(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${yi(t,n)}`);let r=0,i=0;const a=Kr[t],o=Kr[n]-1,c=[];for(const l of e){if(qi(l),l>=a)throw new Error(`convertRadix2: invalid data word=${l} from=${t}`);if(r=r<<t|l,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)c.push((r>>i-n&o)>>>0);const u=Kr[i];if(u===void 0)throw new Error("invalid carry");r&=u-1}if(r=r<<n-i&o,!s&&i>=t)throw new Error("Excess padding");if(!s&&r>0)throw new Error(`Non-zero padding: ${r}`);return s&&i>0&&c.push(r>>>0),c}function hm(e){qi(e);const t=2**8;return{encode:n=>{if(!Mo(n))throw new Error("radix.encode input should be Uint8Array");return Pc(Array.from(n),t,e)},decode:n=>(Bo("radix.decode",n),Uint8Array.from(Pc(n,e,t)))}}function fm(e,t=!1){if(qi(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(yi(8,e)>32||yi(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Mo(n))throw new Error("radix2.encode input should be Uint8Array");return Ya(Array.from(n),8,e,!t)},decode:n=>(Bo("radix2.decode",n),Uint8Array.from(Ya(n,e,8,t)))}}function Lc(e){return pm(e),function(...t){try{return e.apply(null,t)}catch{}}}const mm=e=>ku(hm(58),_u(e),Eu("")),Iu=mm("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Ka=ku(_u("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Eu("")),Vc=[996825010,642813549,513874426,1027748829,705979059];function Fs(e){const t=e>>25;let n=(e&33554431)<<5;for(let s=0;s<Vc.length;s++)(t>>s&1)===1&&(n^=Vc[s]);return n}function Fc(e,t,n=1){const s=e.length;let r=1;for(let i=0;i<s;i++){const a=e.charCodeAt(i);if(a<33||a>126)throw new Error(`Invalid prefix (${e})`);r=Fs(r)^a>>5}r=Fs(r);for(let i=0;i<s;i++)r=Fs(r)^e.charCodeAt(i)&31;for(let i of t)r=Fs(r)^i;for(let i=0;i<6;i++)r=Fs(r);return r^=n,Ka.encode(Ya([r%Kr[30]],30,5,!1))}function gm(e){const t=e==="bech32"?1:734539939,n=fm(5),s=n.decode,r=n.encode,i=Lc(s);function a(d,h,f=90){hr("bech32.encode prefix",d),Mo(h)&&(h=Array.from(h)),Bo("bech32.encode",h);const m=d.length;if(m===0)throw new TypeError(`Invalid prefix length ${m}`);const v=m+7+h.length;if(f!==!1&&v>f)throw new TypeError(`Length ${v} exceeds limit ${f}`);const b=d.toLowerCase(),w=Fc(b,h,t);return`${b}1${Ka.encode(h)}${w}`}function o(d,h=90){hr("bech32.decode input",d);const f=d.length;if(f<8||h!==!1&&f>h)throw new TypeError(`invalid string length: ${f} (${d}). Expected (8..${h})`);const m=d.toLowerCase();if(d!==m&&d!==d.toUpperCase())throw new Error("String must be lowercase or uppercase");const v=m.lastIndexOf("1");if(v===0||v===-1)throw new Error('Letter "1" must be present between prefix and data only');const b=m.slice(0,v),w=m.slice(v+1);if(w.length<6)throw new Error("Data must be at least 6 characters long");const x=Ka.decode(w).slice(0,-6),I=Fc(b,x,t);if(!w.endsWith(I))throw new Error(`Invalid checksum in ${d}: expected "${I}"`);return{prefix:b,words:x}}const c=Lc(o);function l(d){const{prefix:h,words:f}=o(d,!1);return{prefix:h,words:f,bytes:s(f)}}function u(d,h){return a(d,r(h))}return{encode:a,decode:o,encodeFromBytes:u,decodeToBytes:l,decodeUnsafe:c,fromWords:s,fromWordsUnsafe:i,toWords:r}}const Ti=gm("bech32"),Hi=e=>Iu.encode(e),Xa=e=>Iu.decode(e);function Q(e){return Uint8Array.from(atob(e),t=>t.charCodeAt(0))}const fa=8192;function ee(e){if(e.length<fa)return btoa(String.fromCharCode(...e));let t="";for(var n=0;n<e.length;n+=fa){const s=e.slice(n,n+fa);t+=String.fromCharCode(...s)}return btoa(t)}function Au(e){const t=e.startsWith("0x")?e.slice(2):e,n=t.length%2===0?t:`0${t}`,s=n.match(/[0-9a-fA-F]{2}/g)?.map(r=>parseInt(r,16))??[];if(s.length!==n.length/2)throw new Error(`Invalid hex string ${e}`);return Uint8Array.from(s)}function Is(e){return e.reduce((t,n)=>t+n.toString(16).padStart(2,"0"),"")}function ki(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,s)=>e.slice(s*t,(s+1)*t))}var Wc=class{constructor(e,t){if(typeof e!="function")throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: ${e}.`);this._batchLoadFn=e,this._maxBatchSize=ym(t),this._batchScheduleFn=Tm(t),this._cacheKeyFn=km(t),this._cacheMap=_m(t),this._batch=null,this.name=Em(t)}load(e){if(e==null)throw new TypeError(`The loader.load() function must be called with a value, but got: ${String(e)}.`);const t=bm(this),n=this._cacheMap;let s;if(n){s=this._cacheKeyFn(e);const i=n.get(s);if(i){const a=t.cacheHits||(t.cacheHits=[]);return new Promise(o=>{a.push(()=>{o(i)})})}}t.keys.push(e);const r=new Promise((i,a)=>{t.callbacks.push({resolve:i,reject:a})});return n&&n.set(s,r),r}loadMany(e){if(!xu(e))throw new TypeError(`The loader.loadMany() function must be called with Array<key>, but got: ${e}.`);const t=[];for(let n=0;n<e.length;n++)t.push(this.load(e[n]).catch(s=>s));return Promise.all(t)}clear(e){const t=this._cacheMap;if(t){const n=this._cacheKeyFn(e);t.delete(n)}return this}clearAll(){const e=this._cacheMap;return e&&e.clear(),this}prime(e,t){const n=this._cacheMap;if(n){const s=this._cacheKeyFn(e);if(n.get(s)===void 0){let r;t instanceof Error?(r=Promise.reject(t),r.catch(()=>{})):r=Promise.resolve(t),n.set(s,r)}}return this}};const vm=typeof process=="object"&&typeof process.nextTick=="function"?function(e){ma||(ma=Promise.resolve()),ma.then(()=>{process.nextTick(e)})}:typeof setImmediate=="function"?function(e){setImmediate(e)}:function(e){setTimeout(e)};let ma;function bm(e){const t=e._batch;if(t!==null&&!t.hasDispatched&&t.keys.length<e._maxBatchSize)return t;const n={hasDispatched:!1,keys:[],callbacks:[]};return e._batch=n,e._batchScheduleFn(()=>{wm(e,n)}),n}function wm(e,t){if(t.hasDispatched=!0,t.keys.length===0){Qa(t);return}let n;try{n=e._batchLoadFn(t.keys)}catch(s){return ga(e,t,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ${String(s)}.`))}if(!n||typeof n.then!="function")return ga(e,t,new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: ${String(n)}.`));Promise.resolve(n).then(s=>{if(!xu(s))throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: ${String(s)}.`);if(s.length!==t.keys.length)throw new TypeError(`DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.
2
-
3
- Keys:
4
- ${String(t.keys)}
5
-
6
- Values:
7
- ${String(s)}`);Qa(t);for(let r=0;r<t.callbacks.length;r++){const i=s[r];i instanceof Error?t.callbacks[r].reject(i):t.callbacks[r].resolve(i)}}).catch(s=>{ga(e,t,s)})}function ga(e,t,n){Qa(t);for(let s=0;s<t.keys.length;s++)e.clear(t.keys[s]),t.callbacks[s].reject(n)}function Qa(e){if(e.cacheHits)for(let t=0;t<e.cacheHits.length;t++)e.cacheHits[t]()}function ym(e){if(!(!e||e.batch!==!1))return 1;const t=e&&e.maxBatchSize;if(t===void 0)return 1/0;if(typeof t!="number"||t<1)throw new TypeError(`maxBatchSize must be a positive number: ${t}`);return t}function Tm(e){const t=e&&e.batchScheduleFn;if(t===void 0)return vm;if(typeof t!="function")throw new TypeError(`batchScheduleFn must be a function: ${t}`);return t}function km(e){const t=e&&e.cacheKeyFn;if(t===void 0)return n=>n;if(typeof t!="function")throw new TypeError(`cacheKeyFn must be a function: ${t}`);return t}function _m(e){if(!(!e||e.cache!==!1))return null;const t=e&&e.cacheMap;if(t===void 0)return new Map;if(t!==null){const n=["get","set","delete","clear"].filter(s=>t&&typeof t[s]!="function");if(n.length!==0)throw new TypeError("Custom cacheMap missing methods: "+n.join(", "))}return t}function Em(e){return e&&e.name?e.name:null}function xu(e){return typeof e=="object"&&e!==null&&"length"in e&&typeof e.length=="number"&&(e.length===0||e.length>0&&Object.prototype.hasOwnProperty.call(e,e.length-1))}function Sm(e){return e=e||new Map,{all:e,on(t,n){const s=e.get(t);s?s.push(n):e.set(t,[n])},off(t,n){const s=e.get(t);s&&(n?s.splice(s.indexOf(n)>>>0,1):e.set(t,[]))},emit(t,n){let s=e.get(t);s&&s.slice().map(r=>{r(n)}),s=e.get("*"),s&&s.slice().map(r=>{r(t,n)})}}}function Im(e,t){switch(t){case"base58":return Hi(e);case"base64":return ee(e);case"hex":return Is(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function Ou(e,t=["<",">"]){const[n,s]=t,r=[];let i="",a=0;for(let o=0;o<e.length;o++){const c=e[o];if(c===n&&a++,c===s&&a--,a===0&&c===","){r.push(i.trim()),i="";continue}i+=c}return r.push(i.trim()),r}var Am=class{constructor({initialSize:e=1024,maxSize:t=1/0,allocateSize:n=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=t,this.allocateSize=n,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const t=this.bytePosition+e;if(t>this.size){const n=Math.min(this.maxSize,Math.max(this.size+t,this.size+this.allocateSize));if(t>n)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${t}`);this.size=n;const s=new ArrayBuffer(this.size);new Uint8Array(s).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(s)}}shift(e){return this.bytePosition+=e,this}write8(e){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(e)),this.shift(1)}writeBytes(e){this.ensureSizeOrGrow(e.length);for(let t=0;t<e.length;t++)this.dataView.setUint8(this.bytePosition+t,e[t]);return this.shift(e.length)}write16(e){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(e),!0),this.shift(2)}write32(e){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(e),!0),this.shift(4)}write64(e){return va(BigInt(e),8).forEach(t=>this.write8(t)),this}write128(e){return va(BigInt(e),16).forEach(t=>this.write8(t)),this}write256(e){return va(BigInt(e),32).forEach(t=>this.write8(t)),this}writeULEB(e){return bi(e).forEach(t=>this.write8(t)),this}writeVec(e,t){return this.writeULEB(e.length),Array.from(e).forEach((n,s)=>t(this,n,s,e.length)),this}*[Symbol.iterator](){for(let e=0;e<this.bytePosition;e++)yield this.dataView.getUint8(e);return this.toBytes()}toBytes(){return new Uint8Array(this.dataView.buffer.slice(0,this.bytePosition))}toString(e){return Im(this.toBytes(),e)}};function va(e,t){const n=new Uint8Array(t);let s=0;for(;e>0;)n[s]=Number(e%BigInt(256)),e=e/BigInt(256),s+=1;return n}var St=class Nu{#e;#t;constructor(t){this.name=t.name,this.read=t.read,this.serializedSize=t.serializedSize??(()=>null),this.#e=t.write,this.#t=t.serialize??((n,s)=>{const r=new Am({initialSize:this.serializedSize(n)??void 0,...s});return this.#e(n,r),r.toBytes()}),this.validate=t.validate??(()=>{})}write(t,n){this.validate(t),this.#e(t,n)}serialize(t,n){return this.validate(t),new xm(this,this.#t(t,n))}parse(t){const n=new dm(t);return this.read(n)}fromHex(t){return this.parse(Au(t))}fromBase58(t){return this.parse(Xa(t))}fromBase64(t){return this.parse(Q(t))}transform({name:t,input:n,output:s,validate:r}){return new Nu({name:t??this.name,read:i=>s?s(this.read(i)):this.read(i),write:(i,a)=>this.#e(n?n(i):i,a),serializedSize:i=>this.serializedSize(n?n(i):i),serialize:(i,a)=>this.#t(n?n(i):i,a),validate:i=>{r?.(i),this.validate(n?n(i):i)}})}};const Ru=Symbol.for("@mysten/serialized-bcs");function eo(e){return!!e&&typeof e=="object"&&e[Ru]===!0}var xm=class{#e;#t;get[Ru](){return!0}constructor(e,t){this.#e=e,this.#t=t}toBytes(){return this.#t}toHex(){return Is(this.#t)}toBase64(){return ee(this.#t)}toBase58(){return Hi(this.#t)}parse(){return this.#e.parse(this.#t)}};function _i({size:e,...t}){return new St({...t,serializedSize:()=>e})}function ba({readMethod:e,writeMethod:t,...n}){return _i({...n,read:s=>s[e](),write:(s,r)=>r[t](s),validate:s=>{if(s<0||s>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${s}. Expected value in range 0-${n.maxValue}`);n.validate?.(s)}})}function wa({readMethod:e,writeMethod:t,...n}){return _i({...n,read:s=>s[e](),write:(s,r)=>r[t](BigInt(s)),validate:s=>{const r=BigInt(s);if(r<0||r>n.maxValue)throw new TypeError(`Invalid ${n.name} value: ${r}. Expected value in range 0-${n.maxValue}`);n.validate?.(r)}})}function Om({serialize:e,...t}){const n=new St({...t,serialize:e,write:(s,r)=>{for(const i of n.serialize(s).toBytes())r.write8(i)}});return n}function Nm({toBytes:e,fromBytes:t,...n}){return new St({...n,read:s=>{const r=s.readULEB();return t(s.readBytes(r))},write:(s,r)=>{const i=e(s);r.writeULEB(i.length);for(let a=0;a<i.length;a++)r.write8(i[a])},serialize:s=>{const r=e(s),i=bi(r.length),a=new Uint8Array(i.length+r.length);return a.set(i,0),a.set(r,i.length),a},validate:s=>{if(typeof s!="string")throw new TypeError(`Invalid ${n.name} value: ${s}. Expected string`);n.validate?.(s)}})}function Rm(e){let t=null;function n(){return t||(t=e()),t}return new St({name:"lazy",read:s=>n().read(s),serializedSize:s=>n().serializedSize(s),write:(s,r)=>n().write(s,r),serialize:(s,r)=>n().serialize(s,r).toBytes()})}var Cm=class extends St{constructor({name:e,fields:t,...n}){const s=Object.entries(t);super({name:e,serializedSize:r=>{let i=0;for(const[a,o]of s){const c=o.serializedSize(r[a]);if(c==null)return null;i+=c}return i},read:r=>{const i={};for(const[a,o]of s)i[a]=o.read(r);return i},write:(r,i)=>{for(const[a,o]of s)o.write(r[a],i)},...n,validate:r=>{if(n?.validate?.(r),typeof r!="object"||r==null)throw new TypeError(`Expected object, found ${typeof r}`)}})}},Um=class extends St{constructor({fields:e,...t}){const n=Object.entries(e);super({read:s=>{const r=s.readULEB(),i=n[r];if(!i)throw new TypeError(`Unknown value ${r} for enum ${t.name}`);const[a,o]=i;return{[a]:o?.read(s)??!0,$kind:a}},write:(s,r)=>{const[i,a]=Object.entries(s).filter(([o])=>Object.hasOwn(e,o))[0];for(let o=0;o<n.length;o++){const[c,l]=n[o];if(c===i){r.writeULEB(o),l?.write(a,r);return}}},...t,validate:s=>{if(t?.validate?.(s),typeof s!="object"||s==null)throw new TypeError(`Expected object, found ${typeof s}`);const r=Object.keys(s).filter(a=>s[a]!==void 0&&Object.hasOwn(e,a));if(r.length!==1)throw new TypeError(`Expected object with one key, but found ${r.length} for type ${t.name}}`);const[i]=r;if(!Object.hasOwn(e,i))throw new TypeError(`Invalid enum variant ${i}`)}})}},$m=class extends St{constructor({fields:e,name:t,...n}){super({name:t??`(${e.map(s=>s.name).join(", ")})`,serializedSize:s=>{let r=0;for(let i=0;i<e.length;i++){const a=e[i].serializedSize(s[i]);if(a==null)return null;r+=a}return r},read:s=>{const r=[];for(const i of e)r.push(i.read(s));return r},write:(s,r)=>{for(let i=0;i<e.length;i++)e[i].write(s[i],r)},...n,validate:s=>{if(n?.validate?.(s),!Array.isArray(s))throw new TypeError(`Expected array, found ${typeof s}`);if(s.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${s.length}`)}})}};function Dm(e,t,n){return new St({read:s=>{const r=new Array(e);for(let i=0;i<e;i++)r[i]=t.read(s);return r},write:(s,r)=>{for(const i of s)t.write(i,r)},...n,name:n?.name??`${t.name}[${e}]`,validate:s=>{if(n?.validate?.(s),!s||typeof s!="object"||!("length"in s))throw new TypeError(`Expected array, found ${typeof s}`);if(s.length!==e)throw new TypeError(`Expected array of length ${e}, found ${s.length}`)}})}function Mm(e){return p.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:t=>t==null?{None:!0}:{Some:t},output:t=>t.$kind==="Some"?t.Some:null})}function Bm(e,t){return new St({read:n=>{const s=n.readULEB(),r=new Array(s);for(let i=0;i<s;i++)r[i]=e.read(n);return r},write:(n,s)=>{s.writeULEB(n.length);for(const r of n)e.write(r,s)},...t,name:t?.name??`vector<${e.name}>`,validate:n=>{if(t?.validate?.(n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`)}})}function jm(e,t){for(let n=0;n<Math.min(e.length,t.length);n++)if(e[n]!==t[n])return e[n]-t[n];return e.length-t.length}function Pm(e,t){return new St({name:`Map<${e.name}, ${t.name}>`,read:n=>{const s=n.readULEB(),r=new Map;for(let i=0;i<s;i++)r.set(e.read(n),t.read(n));return r},write:(n,s)=>{const r=[...n.entries()].map(([i,a])=>[e.serialize(i).toBytes(),a]);r.sort(([i],[a])=>jm(i,a)),s.writeULEB(r.length);for(const[i,a]of r)s.writeBytes(i),t.write(a,s)}})}const p={u8(e){return ba({readMethod:"read8",writeMethod:"write8",size:1,maxValue:2**8-1,...e,name:e?.name??"u8"})},u16(e){return ba({readMethod:"read16",writeMethod:"write16",size:2,maxValue:2**16-1,...e,name:e?.name??"u16"})},u32(e){return ba({readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e,name:e?.name??"u32"})},u64(e){return wa({readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e,name:e?.name??"u64"})},u128(e){return wa({readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e,name:e?.name??"u128"})},u256(e){return wa({readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e,name:e?.name??"u256"})},bool(e){return _i({size:1,read:t=>t.read8()===1,write:(t,n)=>n.write8(t?1:0),...e,name:e?.name??"bool",validate:t=>{if(e?.validate?.(t),typeof t!="boolean")throw new TypeError(`Expected boolean, found ${typeof t}`)}})},uleb128(e){return Om({read:t=>t.readULEB(),serialize:t=>Uint8Array.from(bi(t)),...e,name:e?.name??"uleb128"})},bytes(e,t){return _i({size:e,read:n=>n.readBytes(e),write:(n,s)=>{s.writeBytes(new Uint8Array(n))},...t,name:t?.name??`bytes[${e}]`,validate:n=>{if(t?.validate?.(n),!n||typeof n!="object"||!("length"in n))throw new TypeError(`Expected array, found ${typeof n}`);if(n.length!==e)throw new TypeError(`Expected array of length ${e}, found ${n.length}`)}})},byteVector(e){return new St({read:t=>{const n=t.readULEB();return t.readBytes(n)},write:(t,n)=>{const s=new Uint8Array(t);n.writeULEB(s.length),n.writeBytes(s)},...e,name:e?.name??"vector<u8>",serializedSize:t=>{const n="length"in t?t.length:null;return n==null?null:bi(n).length+n},validate:t=>{if(e?.validate?.(t),!t||typeof t!="object"||!("length"in t))throw new TypeError(`Expected array, found ${typeof t}`)}})},string(e){return Nm({toBytes:t=>new TextEncoder().encode(t),fromBytes:t=>new TextDecoder().decode(t),...e,name:e?.name??"string"})},fixedArray:Dm,option:Mm,vector:Bm,tuple(e,t){return new $m({fields:e,...t})},struct(e,t,n){return new Cm({name:e,fields:t,...n})},enum(e,t,n){return new Um({name:e,fields:t,...n})},map:Pm,lazy(e){return Rm(e)}},Ms=32;function fr(e){return Wm(e)&&Gm(e)===Ms}const Lm=/^[a-zA-Z][a-zA-Z0-9_]*$/;function Gc(e){return Lm.test(e)}const Vm=["bool","u8","u16","u32","u64","u128","u256","address","signer"],Fm=/^vector<(.+)>$/;function Cu(e){if(Vm.includes(e))return!0;const t=e.match(Fm);return t?Cu(t[1]):e.includes("::")?$u(e):!1}function Uu(e){return!fr(e.address)&&!Or(e.address)||!Gc(e.module)||!Gc(e.name)?!1:e.typeParams.every(t=>typeof t=="string"?Cu(t):Uu(t))}function $u(e){try{return Uu(Ye(e))}catch{return!1}}function Du(e){if(e.startsWith("vector<")){if(!e.endsWith(">"))throw new Error(`Invalid type tag: ${e}`);const t=e.slice(7,-1);if(!t)throw new Error(`Invalid type tag: ${e}`);const n=Du(t);return typeof n=="string"?`vector<${n}>`:`vector<${ut(n)}>`}return e.includes("::")?Ye(e):e}function Ye(e){const t=e.split("::");if(t.length<3)throw new Error(`Invalid struct tag: ${e}`);const[n,s]=t,r=Or(n),i=e.slice(n.length+s.length+4),a=i.includes("<")?i.slice(0,i.indexOf("<")):i,o=i.includes("<")?Ou(i.slice(i.indexOf("<")+1,i.lastIndexOf(">"))).map(c=>Du(c.trim())):[];return{address:r?n:re(n),module:s,name:a,typeParams:o}}function ut(e){const{address:t,module:n,name:s,typeParams:r}=typeof e=="string"?Ye(e):e;return`${t}::${n}::${s}${r?.length>0?`<${r.map(i=>typeof i=="string"?i:ut(i)).join(",")}>`:""}`}function re(e,t=!1){let n=e.toLowerCase();return!t&&n.startsWith("0x")&&(n=n.slice(2)),`0x${n.padStart(Ms*2,"0")}`}function to(e,t=!1){return re(e,t)}function Wm(e){return/^(0x|0X)?[a-fA-F0-9]+$/.test(e)&&e.length%2===0}function Gm(e){return/^(0x|0X)/.test(e)?(e.length-2)/2:e.length/2}const zm=/^([a-z0-9]+(?:-[a-z0-9]+)*)$/,qm=/^\d+$/,Hm=64,Mu="/",Or=e=>{const t=e.split(Mu);if(t.length<2||t.length>3)return!1;const[n,s,r]=t;return r!==void 0&&!qm.test(r)||!lm(n)?!1:zm.test(s)&&s.length<Hm},Jm=e=>{const t=e.split(/::|<|>|,/);for(const n of t)if(n.includes(Mu)&&!Or(n))return!1;return $u(e)},Zm=/^vector<(.+)>$/,Ym=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;var mr=class is{static parseFromStr(t,n=!1){if(t==="address")return{address:null};if(t==="bool")return{bool:null};if(t==="u8")return{u8:null};if(t==="u16")return{u16:null};if(t==="u32")return{u32:null};if(t==="u64")return{u64:null};if(t==="u128")return{u128:null};if(t==="u256")return{u256:null};if(t==="signer")return{signer:null};const s=t.match(Zm);if(s)return{vector:is.parseFromStr(s[1],n)};const r=t.match(Ym);if(r)return{struct:{address:n?re(r[1]):r[1],module:r[2],name:r[3],typeParams:r[5]===void 0?[]:is.parseStructTypeArgs(r[5],n)}};throw new Error(`Encountered unexpected token when parsing type args for ${t}`)}static parseStructTypeArgs(t,n=!1){return Ou(t).map(s=>is.parseFromStr(s,n))}static tagToString(t){if("bool"in t)return"bool";if("u8"in t)return"u8";if("u16"in t)return"u16";if("u32"in t)return"u32";if("u64"in t)return"u64";if("u128"in t)return"u128";if("u256"in t)return"u256";if("address"in t)return"address";if("signer"in t)return"signer";if("vector"in t)return`vector<${is.tagToString(t.vector)}>`;if("struct"in t){const n=t.struct,s=n.typeParams.map(is.tagToString).join(", ");return`${n.address}::${n.module}::${n.name}${s?`<${s}>`:""}`}throw new Error("Invalid TypeTag")}};function Km(e){return p.u64({name:"unsafe_u64",...e}).transform({input:t=>t,output:t=>Number(t)})}function Xm(e){return p.enum("Option",{None:null,Some:e})}const ie=p.bytes(Ms).transform({validate:e=>{const t=typeof e=="string"?e:Is(e);if(!t||!fr(re(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>typeof e=="string"?Au(re(e)):e,output:e=>re(Is(e))}),He=p.byteVector().transform({name:"ObjectDigest",input:e=>Xa(e),output:e=>Hi(new Uint8Array(e)),validate:e=>{if(Xa(e).length!==32)throw new Error("ObjectDigest must be 32 bytes")}}),ct=p.struct("SuiObjectRef",{objectId:ie,version:p.u64(),digest:He}),Bu=p.struct("SharedObjectRef",{objectId:ie,initialSharedVersion:p.u64(),mutable:p.bool()}),ju=p.enum("ObjectArg",{ImmOrOwnedObject:ct,SharedObject:Bu,Receiving:ct}),bn=p.enum("Owner",{AddressOwner:ie,ObjectOwner:ie,Shared:p.struct("Shared",{initialSharedVersion:p.u64()}),Immutable:null,ConsensusAddressOwner:p.struct("ConsensusAddressOwner",{startVersion:p.u64(),owner:ie})}),Qm=p.enum("Reservation",{MaxAmountU64:p.u64()}),eg=p.enum("WithdrawalType",{Balance:p.lazy(()=>Bs)}),tg=p.enum("WithdrawFrom",{Sender:null,Sponsor:null}),ng=p.struct("FundsWithdrawal",{reservation:Qm,typeArg:eg,withdrawFrom:tg}),Pu=p.enum("CallArg",{Pure:p.struct("Pure",{bytes:p.byteVector().transform({input:e=>typeof e=="string"?Q(e):e,output:e=>ee(new Uint8Array(e))})}),Object:ju,FundsWithdrawal:ng}),jo=p.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:p.lazy(()=>jo),struct:p.lazy(()=>Po),u16:null,u32:null,u256:null}),Bs=jo.transform({input:e=>typeof e=="string"?mr.parseFromStr(e,!0):e,output:e=>mr.tagToString(e)}),Nt=p.enum("Argument",{GasCoin:null,Input:p.u16(),Result:p.u16(),NestedResult:p.tuple([p.u16(),p.u16()])}),Lu=p.struct("ProgrammableMoveCall",{package:ie,module:p.string(),function:p.string(),typeArguments:p.vector(Bs),arguments:p.vector(Nt)}),Vu=p.enum("Command",{MoveCall:Lu,TransferObjects:p.struct("TransferObjects",{objects:p.vector(Nt),address:Nt}),SplitCoins:p.struct("SplitCoins",{coin:Nt,amounts:p.vector(Nt)}),MergeCoins:p.struct("MergeCoins",{destination:Nt,sources:p.vector(Nt)}),Publish:p.struct("Publish",{modules:p.vector(p.byteVector().transform({input:e=>typeof e=="string"?Q(e):e,output:e=>ee(new Uint8Array(e))})),dependencies:p.vector(ie)}),MakeMoveVec:p.struct("MakeMoveVec",{type:Xm(Bs).transform({input:e=>e===null?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:p.vector(Nt)}),Upgrade:p.struct("Upgrade",{modules:p.vector(p.byteVector().transform({input:e=>typeof e=="string"?Q(e):e,output:e=>ee(new Uint8Array(e))})),dependencies:p.vector(ie),package:ie,ticket:Nt})}),Fu=p.struct("ProgrammableTransaction",{inputs:p.vector(Pu),commands:p.vector(Vu)}),Wu=p.enum("TransactionKind",{ProgrammableTransaction:Fu,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),sg=p.struct("ValidDuring",{minEpoch:p.option(p.u64()),maxEpoch:p.option(p.u64()),minTimestamp:p.option(p.u64()),maxTimestamp:p.option(p.u64()),chain:He,nonce:p.u32()}),Gu=p.enum("TransactionExpiration",{None:null,Epoch:Km(),ValidDuring:sg}),Po=p.struct("StructTag",{address:ie,module:p.string(),name:p.string(),typeParams:p.vector(jo)}),zu=p.struct("GasData",{payment:p.vector(ct),owner:ie,price:p.u64(),budget:p.u64()}),qu=p.struct("TransactionDataV1",{kind:Wu,sender:ie,gasData:zu,expiration:Gu}),Hu=p.enum("TransactionData",{V1:qu}),Ju=p.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),Zu=p.enum("IntentVersion",{V0:null}),Yu=p.enum("AppId",{Sui:null}),Ku=p.struct("Intent",{scope:Ju,version:Zu,appId:Yu});function Xu(e){return p.struct(`IntentMessage<${e.name}>`,{intent:Ku,value:e})}const Qu=p.enum("CompressedSignature",{ED25519:p.bytes(64),Secp256k1:p.bytes(64),Secp256r1:p.bytes(64),ZkLogin:p.byteVector(),Passkey:p.byteVector()}),ed=p.enum("PublicKey",{ED25519:p.bytes(32),Secp256k1:p.bytes(33),Secp256r1:p.bytes(33),ZkLogin:p.byteVector(),Passkey:p.bytes(33)}),td=p.struct("MultiSigPkMap",{pubKey:ed,weight:p.u8()}),nd=p.struct("MultiSigPublicKey",{pk_map:p.vector(td),threshold:p.u16()}),rg=p.struct("MultiSig",{sigs:p.vector(Qu),bitmap:p.u16(),multisig_pk:nd}),ig=p.byteVector().transform({input:e=>typeof e=="string"?Q(e):e,output:e=>ee(new Uint8Array(e))}),sd=p.struct("SenderSignedTransaction",{intentMessage:Xu(Hu),txSignatures:p.vector(ig)}),ag=p.vector(sd,{name:"SenderSignedData"}),rd=p.struct("PasskeyAuthenticator",{authenticatorData:p.byteVector(),clientDataJson:p.string(),userSignature:p.byteVector()}),id=p.enum("MoveObjectType",{Other:Po,GasCoin:null,StakedSui:null,Coin:Bs,AccumulatorBalanceWrapper:null}),ad=p.struct("TypeOrigin",{moduleName:p.string(),datatypeName:p.string(),package:ie}),od=p.struct("UpgradeInfo",{upgradedId:ie,upgradedVersion:p.u64()}),cd=p.struct("MovePackage",{id:ie,version:p.u64(),moduleMap:p.map(p.string(),p.byteVector()),typeOriginTable:p.vector(ad),linkageTable:p.map(ie,od)}),ld=p.struct("MoveObject",{type:id,hasPublicTransfer:p.bool(),version:p.u64(),contents:p.byteVector()}),ud=p.enum("Data",{Move:ld,Package:cd}),og=p.struct("ObjectInner",{data:ud,owner:bn,previousTransaction:He,storageRebate:p.u64()}),cg=p.enum("PackageUpgradeError",{UnableToFetchPackage:p.struct("UnableToFetchPackage",{packageId:ie}),NotAPackage:p.struct("NotAPackage",{objectId:ie}),IncompatibleUpgrade:null,DigestDoesNotMatch:p.struct("DigestDoesNotMatch",{digest:p.byteVector()}),UnknownUpgradePolicy:p.struct("UnknownUpgradePolicy",{policy:p.u8()}),PackageIDDoesNotMatch:p.struct("PackageIDDoesNotMatch",{packageId:ie,ticketId:ie})}),lg=p.struct("ModuleId",{address:ie,name:p.string()}),zc=p.struct("MoveLocation",{module:lg,function:p.u16(),instruction:p.u16(),functionName:p.option(p.string())}),ug=p.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:p.struct("IndexOutOfBounds",{idx:p.u16()}),SecondaryIndexOutOfBounds:p.struct("SecondaryIndexOutOfBounds",{resultIdx:p.u16(),secondaryIdx:p.u16()}),InvalidResultArity:p.struct("InvalidResultArity",{resultIdx:p.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null,InvalidArgumentArity:null,InvalidTransferObject:null,InvalidMakeMoveVecNonObjectArgument:null,ArgumentWithoutValue:null,CannotMoveBorrowedValue:null,CannotWriteToExtendedReference:null,InvalidReferenceArgument:null}),dg=p.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),pg=p.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:p.struct("MoveObjectTooBig",{objectSize:p.u64(),maxObjectSize:p.u64()}),MovePackageTooBig:p.struct("MovePackageTooBig",{objectSize:p.u64(),maxObjectSize:p.u64()}),CircularObjectOwnership:p.struct("CircularObjectOwnership",{object:ie}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:p.option(zc),MoveAbort:p.tuple([zc,p.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:p.struct("CommandArgumentError",{argIdx:p.u16(),kind:ug}),TypeArgumentError:p.struct("TypeArgumentError",{argumentIdx:p.u16(),kind:dg}),UnusedValueWithoutDrop:p.struct("UnusedValueWithoutDrop",{resultIdx:p.u16(),secondaryIdx:p.u16()}),InvalidPublicFunctionReturnType:p.struct("InvalidPublicFunctionReturnType",{idx:p.u16()}),InvalidTransferObject:null,EffectsTooLarge:p.struct("EffectsTooLarge",{currentSize:p.u64(),maxSize:p.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:p.struct("PackageUpgradeError",{upgradeError:cg}),WrittenObjectsTooLarge:p.struct("WrittenObjectsTooLarge",{currentSize:p.u64(),maxSize:p.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null,ExecutionCancelledDueToSharedObjectCongestion:p.struct("ExecutionCancelledDueToSharedObjectCongestion",{congested_objects:p.vector(ie)}),AddressDeniedForCoin:p.struct("AddressDeniedForCoin",{address:ie,coinType:p.string()}),CoinTypeGlobalPause:p.struct("CoinTypeGlobalPause",{coinType:p.string()}),ExecutionCancelledDueToRandomnessUnavailable:null,MoveVectorElemTooBig:p.struct("MoveVectorElemTooBig",{valueSize:p.u64(),maxScaledSize:p.u64()}),MoveRawValueTooBig:p.struct("MoveRawValueTooBig",{valueSize:p.u64(),maxScaledSize:p.u64()}),InvalidLinkage:null,InsufficientBalanceForWithdraw:null,NonExclusiveWriteInputObjectModified:p.struct("NonExclusiveWriteInputObjectModified",{id:ie})}),Lo=p.enum("ExecutionStatus",{Success:null,Failure:p.struct("Failure",{error:pg,command:p.option(p.u64())})}),dd=p.struct("GasCostSummary",{computationCost:p.u64(),storageCost:p.u64(),storageRebate:p.u64(),nonRefundableStorageFee:p.u64()}),hg=p.struct("TransactionEffectsV1",{status:Lo,executedEpoch:p.u64(),gasUsed:dd,modifiedAtVersions:p.vector(p.tuple([ie,p.u64()])),sharedObjects:p.vector(ct),transactionDigest:He,created:p.vector(p.tuple([ct,bn])),mutated:p.vector(p.tuple([ct,bn])),unwrapped:p.vector(p.tuple([ct,bn])),deleted:p.vector(ct),unwrappedThenDeleted:p.vector(ct),wrapped:p.vector(ct),gasObject:p.tuple([ct,bn]),eventsDigest:p.option(He),dependencies:p.vector(He)}),Vo=p.tuple([p.u64(),He]),fg=p.enum("ObjectIn",{NotExist:null,Exist:p.tuple([Vo,bn])}),mg=p.struct("AccumulatorAddress",{address:ie,ty:Bs}),gg=p.enum("AccumulatorOperation",{Merge:null,Split:null}),vg=p.enum("AccumulatorValue",{Integer:p.u64(),IntegerTuple:p.tuple([p.u64(),p.u64()]),EventDigest:p.vector(p.tuple([p.u64(),He]))}),bg=p.struct("AccumulatorWriteV1",{address:mg,operation:gg,value:vg}),wg=p.enum("ObjectOut",{NotExist:null,ObjectWrite:p.tuple([He,bn]),PackageWrite:Vo,AccumulatorWriteV1:bg}),yg=p.enum("IDOperation",{None:null,Created:null,Deleted:null}),Tg=p.struct("EffectsObjectChange",{inputState:fg,outputState:wg,idOperation:yg}),kg=p.enum("UnchangedConsensusKind",{ReadOnlyRoot:Vo,MutateConsensusStreamEnded:p.u64(),ReadConsensusStreamEnded:p.u64(),Cancelled:p.u64(),PerEpochConfig:null}),_g=p.struct("TransactionEffectsV2",{status:Lo,executedEpoch:p.u64(),gasUsed:dd,transactionDigest:He,gasObjectIndex:p.option(p.u32()),eventsDigest:p.option(He),dependencies:p.vector(He),lamportVersion:p.u64(),changedObjects:p.vector(p.tuple([ie,Tg])),unchangedConsensusObjects:p.vector(p.tuple([ie,kg])),auxDataDigest:p.option(He)}),Eg=p.enum("TransactionEffects",{V1:hg,V2:_g});function tr(e){switch(e){case"u8":return p.u8();case"u16":return p.u16();case"u32":return p.u32();case"u64":return p.u64();case"u128":return p.u128();case"u256":return p.u256();case"bool":return p.bool();case"string":return p.string();case"id":case"address":return ie}const t=e.match(/^(vector|option)<(.+)>$/);if(t){const[n,s]=t.slice(1);return n==="vector"?p.vector(tr(s)):p.option(tr(s))}throw new Error(`Invalid Pure type name: ${e}`)}const G={...p,U8:p.u8(),U16:p.u16(),U32:p.u32(),U64:p.u64(),U128:p.u128(),U256:p.u256(),ULEB128:p.uleb128(),Bool:p.bool(),String:p.string(),Address:ie,AppId:Yu,Argument:Nt,CallArg:Pu,Command:Vu,CompressedSignature:Qu,Data:ud,GasData:zu,Intent:Ku,IntentMessage:Xu,IntentScope:Ju,IntentVersion:Zu,MoveObject:ld,MoveObjectType:id,MovePackage:cd,MultiSig:rg,MultiSigPkMap:td,MultiSigPublicKey:nd,Object:og,ObjectArg:ju,ObjectDigest:He,Owner:bn,PasskeyAuthenticator:rd,ProgrammableMoveCall:Lu,ProgrammableTransaction:Fu,PublicKey:ed,SenderSignedData:ag,SenderSignedTransaction:sd,SharedObjectRef:Bu,StructTag:Po,SuiObjectRef:ct,TransactionData:Hu,TransactionDataV1:qu,TransactionEffects:Eg,TransactionExpiration:Gu,TransactionKind:Wu,TypeOrigin:ad,TypeTag:Bs,UpgradeInfo:od};function Ji(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Dt(e,t=""){if(!Number.isSafeInteger(e)||e<0){const n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function Z(e,t,n=""){const s=Ji(e),r=e?.length,i=t!==void 0;if(!s||i&&r!==t){const a=n&&`"${n}" `,o=i?` of length ${t}`:"",c=s?`length=${r}`:`type=${typeof e}`;throw new Error(a+"expected Uint8Array"+o+", got "+c)}return e}function pd(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash must wrapped by utils.createHasher");Dt(e.outputLen),Dt(e.blockLen)}function As(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function hd(e,t){Z(e,void 0,"digestInto() output");const n=t.outputLen;if(e.length<n)throw new Error('"digestInto() output" expected to be of length >='+n)}function Ei(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Xt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ya(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function xt(e,t){return e<<32-t|e>>>t}const fd=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function md(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const Ht=fd?e=>e:e=>md(e);function Sg(e){for(let t=0;t<e.length;t++)e[t]=md(e[t]);return e}const Kn=fd?e=>e:Sg,gd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Ig=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function zn(e){if(Z(e),gd)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Ig[e[n]];return t}const Vt={_0:48,_9:57,A:65,F:70,a:97,f:102};function qc(e){if(e>=Vt._0&&e<=Vt._9)return e-Vt._0;if(e>=Vt.A&&e<=Vt.F)return e-(Vt.A-10);if(e>=Vt.a&&e<=Vt.f)return e-(Vt.a-10)}function xs(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(gd)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const s=new Uint8Array(n);for(let r=0,i=0;r<n;r++,i+=2){const a=qc(e.charCodeAt(i)),o=qc(e.charCodeAt(i+1));if(a===void 0||o===void 0){const c=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}s[r]=a*16+o}return s}function Ag(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function uA(e,t=""){return typeof e=="string"?Ag(e):Z(e,void 0,t)}function Rt(...e){let t=0;for(let s=0;s<e.length;s++){const r=e[s];Z(r),t+=r.length}const n=new Uint8Array(t);for(let s=0,r=0;s<e.length;s++){const i=e[s];n.set(i,r),r+=i.length}return n}function dA(e,t){if(t!==void 0&&{}.toString.call(t)!=="[object Object]")throw new Error("options must be object or undefined");return Object.assign(e,t)}function Fo(e,t={}){const n=(r,i)=>e(i).update(r).digest(),s=e(void 0);return n.outputLen=s.outputLen,n.blockLen=s.blockLen,n.create=r=>e(r),Object.assign(n,t),Object.freeze(n)}function Wo(e=32){const t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return t.getRandomValues(new Uint8Array(e))}const vd=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])}),xg=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]);function Og(e,t,n){return e&t^~e&n}function Ng(e,t,n){return e&t^e&n^t&n}class bd{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,n,s,r){this.blockLen=t,this.outputLen=n,this.padOffset=s,this.isLE=r,this.buffer=new Uint8Array(t),this.view=ya(this.buffer)}update(t){As(this),Z(t);const{view:n,buffer:s,blockLen:r}=this,i=t.length;for(let a=0;a<i;){const o=Math.min(r-this.pos,i-a);if(o===r){const c=ya(t);for(;r<=i-a;a+=r)this.process(c,a);continue}s.set(t.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===r&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){As(this),hd(t,this),this.finished=!0;const{buffer:n,view:s,blockLen:r,isLE:i}=this;let{pos:a}=this;n[a++]=128,Xt(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(s,0),a=0);for(let d=a;d<r;d++)n[d]=0;s.setBigUint64(r-8,BigInt(this.length*8),i),this.process(s,0);const o=ya(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");const l=c/4,u=this.get();if(l>u.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<l;d++)o.setUint32(4*d,u[d],i)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const s=t.slice(0,n);return this.destroy(),s}_cloneInto(t){t||=new this.constructor,t.set(...this.get());const{blockLen:n,buffer:s,length:r,finished:i,destroyed:a,pos:o}=this;return t.destroyed=a,t.finished=i,t.length=r,t.pos=o,r%n&&t.buffer.set(s),t}clone(){return this._cloneInto()}}const nn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ve=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Pr=BigInt(2**32-1),Hc=BigInt(32);function wd(e,t=!1){return t?{h:Number(e&Pr),l:Number(e>>Hc&Pr)}:{h:Number(e>>Hc&Pr)|0,l:Number(e&Pr)|0}}function Rg(e,t=!1){const n=e.length;let s=new Uint32Array(n),r=new Uint32Array(n);for(let i=0;i<n;i++){const{h:a,l:o}=wd(e[i],t);[s[i],r[i]]=[a,o]}return[s,r]}const Jc=(e,t,n)=>e>>>n,Zc=(e,t,n)=>e<<32-n|t>>>n,fn=(e,t,n)=>e>>>n|t<<32-n,mn=(e,t,n)=>e<<32-n|t>>>n,qs=(e,t,n)=>e<<64-n|t>>>n-32,Hs=(e,t,n)=>e>>>n-32|t<<64-n,Cg=(e,t)=>t,Ug=(e,t)=>e;function vt(e,t,n,s){const r=(t>>>0)+(s>>>0);return{h:e+n+(r/2**32|0)|0,l:r|0}}const Go=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),zo=(e,t,n,s)=>t+n+s+(e/2**32|0)|0,$g=(e,t,n,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(s>>>0),Dg=(e,t,n,s,r)=>t+n+s+r+(e/2**32|0)|0,Mg=(e,t,n,s,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(s>>>0)+(r>>>0),Bg=(e,t,n,s,r,i)=>t+n+s+r+i+(e/2**32|0)|0,Ie=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),R=new Uint32Array(32);function sn(e,t,n,s,r,i){const a=r[i],o=r[i+1];let c=R[2*e],l=R[2*e+1],u=R[2*t],d=R[2*t+1],h=R[2*n],f=R[2*n+1],m=R[2*s],v=R[2*s+1],b=Go(c,u,a);l=zo(b,l,d,o),c=b|0,{Dh:v,Dl:m}={Dh:v^l,Dl:m^c},{Dh:v,Dl:m}={Dh:Cg(v,m),Dl:Ug(v)},{h:f,l:h}=vt(f,h,v,m),{Bh:d,Bl:u}={Bh:d^f,Bl:u^h},{Bh:d,Bl:u}={Bh:fn(d,u,24),Bl:mn(d,u,24)},R[2*e]=c,R[2*e+1]=l,R[2*t]=u,R[2*t+1]=d,R[2*n]=h,R[2*n+1]=f,R[2*s]=m,R[2*s+1]=v}function rn(e,t,n,s,r,i){const a=r[i],o=r[i+1];let c=R[2*e],l=R[2*e+1],u=R[2*t],d=R[2*t+1],h=R[2*n],f=R[2*n+1],m=R[2*s],v=R[2*s+1],b=Go(c,u,a);l=zo(b,l,d,o),c=b|0,{Dh:v,Dl:m}={Dh:v^l,Dl:m^c},{Dh:v,Dl:m}={Dh:fn(v,m,16),Dl:mn(v,m,16)},{h:f,l:h}=vt(f,h,v,m),{Bh:d,Bl:u}={Bh:d^f,Bl:u^h},{Bh:d,Bl:u}={Bh:qs(d,u,63),Bl:Hs(d,u,63)},R[2*e]=c,R[2*e+1]=l,R[2*t]=u,R[2*t+1]=d,R[2*n]=h,R[2*n+1]=f,R[2*s]=m,R[2*s+1]=v}function jg(e,t={},n,s,r){if(Dt(n),e<0||e>n)throw new Error("outputLen bigger than keyLen");const{key:i,salt:a,personalization:o}=t;if(i!==void 0&&(i.length<1||i.length>n))throw new Error('"key" expected to be undefined or of length=1..'+n);a!==void 0&&Z(a,s,"salt"),o!==void 0&&Z(o,r,"personalization")}class Pg{buffer;buffer32;finished=!1;destroyed=!1;length=0;pos=0;blockLen;outputLen;constructor(t,n){Dt(t),Dt(n),this.blockLen=t,this.outputLen=n,this.buffer=new Uint8Array(t),this.buffer32=Ei(this.buffer)}update(t){As(this),Z(t);const{blockLen:n,buffer:s,buffer32:r}=this,i=t.length,a=t.byteOffset,o=t.buffer;for(let c=0;c<i;){this.pos===n&&(Kn(r),this.compress(r,0,!1),Kn(r),this.pos=0);const l=Math.min(n-this.pos,i-c),u=a+c;if(l===n&&!(u%4)&&c+l<i){const d=new Uint32Array(o,u,Math.floor((i-c)/4));Kn(d);for(let h=0;c+n<i;h+=r.length,c+=n)this.length+=n,this.compress(d,h,!1);Kn(d);continue}s.set(t.subarray(c,c+l),this.pos),this.pos+=l,this.length+=l,c+=l}return this}digestInto(t){As(this),hd(t,this);const{pos:n,buffer32:s}=this;this.finished=!0,Xt(this.buffer.subarray(n)),Kn(s),this.compress(s,0,!0),Kn(s);const r=Ei(t);this.get().forEach((i,a)=>r[a]=Ht(i))}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const s=t.slice(0,n);return this.destroy(),s}_cloneInto(t){const{buffer:n,length:s,finished:r,destroyed:i,outputLen:a,pos:o}=this;return t||=new this.constructor({dkLen:a}),t.set(...this.get()),t.buffer.set(n),t.destroyed=i,t.finished=r,t.length=s,t.pos=o,t.outputLen=a,t}clone(){return this._cloneInto()}}class Lg extends Pg{v0l=Ie[0]|0;v0h=Ie[1]|0;v1l=Ie[2]|0;v1h=Ie[3]|0;v2l=Ie[4]|0;v2h=Ie[5]|0;v3l=Ie[6]|0;v3h=Ie[7]|0;v4l=Ie[8]|0;v4h=Ie[9]|0;v5l=Ie[10]|0;v5h=Ie[11]|0;v6l=Ie[12]|0;v6h=Ie[13]|0;v7l=Ie[14]|0;v7h=Ie[15]|0;constructor(t={}){const n=t.dkLen===void 0?64:t.dkLen;super(128,n),jg(n,t,64,16,16);let{key:s,personalization:r,salt:i}=t,a=0;if(s!==void 0&&(Z(s,void 0,"key"),a=s.length),this.v0l^=this.outputLen|a<<8|65536|1<<24,i!==void 0){Z(i,void 0,"salt");const o=Ei(i);this.v4l^=Ht(o[0]),this.v4h^=Ht(o[1]),this.v5l^=Ht(o[2]),this.v5h^=Ht(o[3])}if(r!==void 0){Z(r,void 0,"personalization");const o=Ei(r);this.v6l^=Ht(o[0]),this.v6h^=Ht(o[1]),this.v7l^=Ht(o[2]),this.v7h^=Ht(o[3])}if(s!==void 0){const o=new Uint8Array(this.blockLen);o.set(s),this.update(o)}}get(){let{v0l:t,v0h:n,v1l:s,v1h:r,v2l:i,v2h:a,v3l:o,v3h:c,v4l:l,v4h:u,v5l:d,v5h:h,v6l:f,v6h:m,v7l:v,v7h:b}=this;return[t,n,s,r,i,a,o,c,l,u,d,h,f,m,v,b]}set(t,n,s,r,i,a,o,c,l,u,d,h,f,m,v,b){this.v0l=t|0,this.v0h=n|0,this.v1l=s|0,this.v1h=r|0,this.v2l=i|0,this.v2h=a|0,this.v3l=o|0,this.v3h=c|0,this.v4l=l|0,this.v4h=u|0,this.v5l=d|0,this.v5h=h|0,this.v6l=f|0,this.v6h=m|0,this.v7l=v|0,this.v7h=b|0}compress(t,n,s){this.get().forEach((c,l)=>R[l]=c),R.set(Ie,16);let{h:r,l:i}=wd(BigInt(this.length));R[24]=Ie[8]^i,R[25]=Ie[9]^r,s&&(R[28]=~R[28],R[29]=~R[29]);let a=0;const o=xg;for(let c=0;c<12;c++)sn(0,4,8,12,t,n+2*o[a++]),rn(0,4,8,12,t,n+2*o[a++]),sn(1,5,9,13,t,n+2*o[a++]),rn(1,5,9,13,t,n+2*o[a++]),sn(2,6,10,14,t,n+2*o[a++]),rn(2,6,10,14,t,n+2*o[a++]),sn(3,7,11,15,t,n+2*o[a++]),rn(3,7,11,15,t,n+2*o[a++]),sn(0,5,10,15,t,n+2*o[a++]),rn(0,5,10,15,t,n+2*o[a++]),sn(1,6,11,12,t,n+2*o[a++]),rn(1,6,11,12,t,n+2*o[a++]),sn(2,7,8,13,t,n+2*o[a++]),rn(2,7,8,13,t,n+2*o[a++]),sn(3,4,9,14,t,n+2*o[a++]),rn(3,4,9,14,t,n+2*o[a++]);this.v0l^=R[0]^R[16],this.v0h^=R[1]^R[17],this.v1l^=R[2]^R[18],this.v1h^=R[3]^R[19],this.v2l^=R[4]^R[20],this.v2h^=R[5]^R[21],this.v3l^=R[6]^R[22],this.v3h^=R[7]^R[23],this.v4l^=R[8]^R[24],this.v4h^=R[9]^R[25],this.v5l^=R[10]^R[26],this.v5h^=R[11]^R[27],this.v6l^=R[12]^R[28],this.v6h^=R[13]^R[29],this.v7l^=R[14]^R[30],this.v7h^=R[15]^R[31],Xt(R)}destroy(){this.destroyed=!0,Xt(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Os=Fo(e=>new Lg(e));function Vg(e,t,n){const s=G.Address.serialize(e).toBytes(),r=G.TypeTag.serialize(t).toBytes(),i=G.u64().serialize(n.length).toBytes(),a=Os.create({dkLen:32});return a.update(new Uint8Array([240])),a.update(s),a.update(i),a.update(n),a.update(r),`0x${Is(a.digest().slice(0,32))}`}BigInt(1e9);const yd="0x0000000000000000000000000000000000000000000000000000000000000001",qo="0x0000000000000000000000000000000000000000000000000000000000000002",Fg="0x0000000000000000000000000000000000000000000000000000000000000006",no=`${qo}::sui::SUI`,Yc="0x0000000000000000000000000000000000000000000000000000000000000005",Wg="0x0000000000000000000000000000000000000000000000000000000000000008",Gg="0x0000000000000000000000000000000000000000000000000000000000000403";function Td(e,t){return G.IntentMessage(G.bytes(t.length)).serialize({intent:{scope:{[e]:!0},version:{V0:!0},appId:{Sui:!0}},value:t}).toBytes()}const en={ED25519:0,Secp256k1:1,Secp256r1:2,MultiSig:3,ZkLogin:5,Passkey:6},zg={ED25519:32,Secp256k1:33,Secp256r1:33,Passkey:33},Ho={0:"ED25519",1:"Secp256k1",2:"Secp256r1",3:"MultiSig",5:"ZkLogin",6:"Passkey"};function Ns(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}var Nr=class{equals(e){return Ns(this.toRawBytes(),e.toRawBytes())}toBase64(){return ee(this.toRawBytes())}toString(){throw new Error("`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.")}toSuiPublicKey(){return ee(this.toSuiBytes())}verifyWithIntent(e,t,n){const s=Os(Td(n,e),{dkLen:32});return this.verify(s,t)}verifyPersonalMessage(e,t){return this.verifyWithIntent(G.byteVector().serialize(e).toBytes(),t,"PersonalMessage")}verifyTransaction(e,t){return this.verifyWithIntent(e,t,"TransactionData")}verifyAddress(e){return this.toSuiAddress()===e}toSuiBytes(){const e=this.toRawBytes(),t=new Uint8Array(e.length+1);return t.set([this.flag()]),t.set(e,1),t}toSuiAddress(){return re(zn(Os(this.toSuiBytes(),{dkLen:32})).slice(0,Ms*2))}};function Jo(e){const t=Q(e),n=Ho[t[0]];switch(n){case"ED25519":case"Secp256k1":case"Secp256r1":const s=zg[n],r=t.slice(1,t.length-s);return{serializedSignature:e,signatureScheme:n,signature:r,publicKey:t.slice(1+r.length),bytes:t};default:throw new Error("Unsupported signature scheme")}}const qg=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),an=new Uint32Array(64);class Hg extends bd{constructor(t){super(64,t,8,!1)}get(){const{A:t,B:n,C:s,D:r,E:i,F:a,G:o,H:c}=this;return[t,n,s,r,i,a,o,c]}set(t,n,s,r,i,a,o,c){this.A=t|0,this.B=n|0,this.C=s|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0}process(t,n){for(let d=0;d<16;d++,n+=4)an[d]=t.getUint32(n,!1);for(let d=16;d<64;d++){const h=an[d-15],f=an[d-2],m=xt(h,7)^xt(h,18)^h>>>3,v=xt(f,17)^xt(f,19)^f>>>10;an[d]=v+an[d-7]+m+an[d-16]|0}let{A:s,B:r,C:i,D:a,E:o,F:c,G:l,H:u}=this;for(let d=0;d<64;d++){const h=xt(o,6)^xt(o,11)^xt(o,25),f=u+h+Og(o,c,l)+qg[d]+an[d]|0,v=(xt(s,2)^xt(s,13)^xt(s,22))+Ng(s,r,i)|0;u=l,l=c,c=o,o=a+f|0,a=i,i=r,r=s,s=f+v|0}s=s+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,l=l+this.G|0,u=u+this.H|0,this.set(s,r,i,a,o,c,l,u)}roundClean(){Xt(an)}destroy(){this.set(0,0,0,0,0,0,0,0),Xt(this.buffer)}}class Jg extends Hg{A=nn[0]|0;B=nn[1]|0;C=nn[2]|0;D=nn[3]|0;E=nn[4]|0;F=nn[5]|0;G=nn[6]|0;H=nn[7]|0;constructor(){super(32)}}const kd=Rg(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Zg=kd[0],Yg=kd[1],on=new Uint32Array(80),cn=new Uint32Array(80);class Kg extends bd{constructor(t){super(128,t,16,!1)}get(){const{Ah:t,Al:n,Bh:s,Bl:r,Ch:i,Cl:a,Dh:o,Dl:c,Eh:l,El:u,Fh:d,Fl:h,Gh:f,Gl:m,Hh:v,Hl:b}=this;return[t,n,s,r,i,a,o,c,l,u,d,h,f,m,v,b]}set(t,n,s,r,i,a,o,c,l,u,d,h,f,m,v,b){this.Ah=t|0,this.Al=n|0,this.Bh=s|0,this.Bl=r|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=l|0,this.El=u|0,this.Fh=d|0,this.Fl=h|0,this.Gh=f|0,this.Gl=m|0,this.Hh=v|0,this.Hl=b|0}process(t,n){for(let I=0;I<16;I++,n+=4)on[I]=t.getUint32(n),cn[I]=t.getUint32(n+=4);for(let I=16;I<80;I++){const B=on[I-15]|0,q=cn[I-15]|0,$=fn(B,q,1)^fn(B,q,8)^Jc(B,q,7),U=mn(B,q,1)^mn(B,q,8)^Zc(B,q,7),A=on[I-2]|0,S=cn[I-2]|0,F=fn(A,S,19)^qs(A,S,61)^Jc(A,S,6),X=mn(A,S,19)^Hs(A,S,61)^Zc(A,S,6),L=$g(U,X,cn[I-7],cn[I-16]),_=Dg(L,$,F,on[I-7],on[I-16]);on[I]=_|0,cn[I]=L|0}let{Ah:s,Al:r,Bh:i,Bl:a,Ch:o,Cl:c,Dh:l,Dl:u,Eh:d,El:h,Fh:f,Fl:m,Gh:v,Gl:b,Hh:w,Hl:x}=this;for(let I=0;I<80;I++){const B=fn(d,h,14)^fn(d,h,18)^qs(d,h,41),q=mn(d,h,14)^mn(d,h,18)^Hs(d,h,41),$=d&f^~d&v,U=h&m^~h&b,A=Mg(x,q,U,Yg[I],cn[I]),S=Bg(A,w,B,$,Zg[I],on[I]),F=A|0,X=fn(s,r,28)^qs(s,r,34)^qs(s,r,39),L=mn(s,r,28)^Hs(s,r,34)^Hs(s,r,39),_=s&i^s&o^i&o,E=r&a^r&c^a&c;w=v|0,x=b|0,v=f|0,b=m|0,f=d|0,m=h|0,{h:d,l:h}=vt(l|0,u|0,S|0,F|0),l=o|0,u=c|0,o=i|0,c=a|0,i=s|0,a=r|0;const k=Go(F,L,E);s=zo(k,S,X,_),r=k|0}({h:s,l:r}=vt(this.Ah|0,this.Al|0,s|0,r|0)),{h:i,l:a}=vt(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:c}=vt(this.Ch|0,this.Cl|0,o|0,c|0),{h:l,l:u}=vt(this.Dh|0,this.Dl|0,l|0,u|0),{h:d,l:h}=vt(this.Eh|0,this.El|0,d|0,h|0),{h:f,l:m}=vt(this.Fh|0,this.Fl|0,f|0,m|0),{h:v,l:b}=vt(this.Gh|0,this.Gl|0,v|0,b|0),{h:w,l:x}=vt(this.Hh|0,this.Hl|0,w|0,x|0),this.set(s,r,i,a,o,c,l,u,d,h,f,m,v,b,w,x)}roundClean(){Xt(on,cn)}destroy(){Xt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Xg extends Kg{Ah=Ve[0]|0;Al=Ve[1]|0;Bh=Ve[2]|0;Bl=Ve[3]|0;Ch=Ve[4]|0;Cl=Ve[5]|0;Dh=Ve[6]|0;Dl=Ve[7]|0;Eh=Ve[8]|0;El=Ve[9]|0;Fh=Ve[10]|0;Fl=Ve[11]|0;Gh=Ve[12]|0;Gl=Ve[13]|0;Hh=Ve[14]|0;Hl=Ve[15]|0;constructor(){super(64)}}const Zo=Fo(()=>new Jg,vd(1)),Qg=Fo(()=>new Xg,vd(3));const Yo=BigInt(0),so=BigInt(1);function Pn(e,t=""){if(typeof e!="boolean"){const n=t&&`"${t}" `;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function _d(e){if(typeof e=="bigint"){if(!Xr(e))throw new Error("positive bigint expected, got "+e)}else Dt(e);return e}function Lr(e){const t=_d(e).toString(16);return t.length&1?"0"+t:t}function Ed(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Yo:BigInt("0x"+e)}function Zi(e){return Ed(zn(e))}function gr(e){return Ed(zn(ro(Z(e)).reverse()))}function Ko(e,t){Dt(t),e=_d(e);const n=xs(e.toString(16).padStart(t*2,"0"));if(n.length!==t)throw new Error("number too large");return n}function Sd(e,t){return Ko(e,t).reverse()}function ro(e){return Uint8Array.from(e)}const Xr=e=>typeof e=="bigint"&&Yo<=e;function ev(e,t,n){return Xr(e)&&Xr(t)&&Xr(n)&&t<=e&&e<n}function io(e,t,n,s){if(!ev(t,n,s))throw new Error("expected valid "+e+": "+n+" <= n < "+s+", got "+t)}function tv(e){let t;for(t=0;e>Yo;e>>=so,t+=1);return t}const Xo=e=>(so<<BigInt(e))-so;function nv(e,t,n){if(Dt(e,"hashLen"),Dt(t,"qByteLen"),typeof n!="function")throw new Error("hmacFn must be a function");const s=b=>new Uint8Array(b),r=Uint8Array.of(),i=Uint8Array.of(0),a=Uint8Array.of(1),o=1e3;let c=s(e),l=s(e),u=0;const d=()=>{c.fill(1),l.fill(0),u=0},h=(...b)=>n(l,Rt(c,...b)),f=(b=r)=>{l=h(i,b),c=h(),b.length!==0&&(l=h(a,b),c=h())},m=()=>{if(u++>=o)throw new Error("drbg: tried max amount of iterations");let b=0;const w=[];for(;b<t;){c=h();const x=c.slice();w.push(x),b+=c.length}return Rt(...w)};return(b,w)=>{d(),f(b);let x;for(;!(x=w(m()));)f();return d(),x}}function Rr(e,t={},n={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function s(i,a,o){const c=e[i];if(o&&c===void 0)return;const l=typeof c;if(l!==a||c===null)throw new Error(`param "${i}" is invalid: expected ${a}, got ${l}`)}const r=(i,a)=>Object.entries(i).forEach(([o,c])=>s(o,c,a));r(t,!1),r(n,!0)}function Si(e){const t=new WeakMap;return(n,...s)=>{const r=t.get(n);if(r!==void 0)return r;const i=e(n,...s);return t.set(n,i),i}}const Je=BigInt(0),Be=BigInt(1),Un=BigInt(2),Id=BigInt(3),Ad=BigInt(4),xd=BigInt(5),sv=BigInt(7),Od=BigInt(8),rv=BigInt(9),Nd=BigInt(16);function Ee(e,t){const n=e%t;return n>=Je?n:t+n}function we(e,t,n){let s=e;for(;t-- >Je;)s*=s,s%=n;return s}function Kc(e,t){if(e===Je)throw new Error("invert: expected non-zero number");if(t<=Je)throw new Error("invert: expected positive modulus, got "+t);let n=Ee(e,t),s=t,r=Je,i=Be;for(;n!==Je;){const o=s/n,c=s%n,l=r-i*o;s=n,n=c,r=i,i=l}if(s!==Be)throw new Error("invert: does not exist");return Ee(r,t)}function Qo(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Rd(e,t){const n=(e.ORDER+Be)/Ad,s=e.pow(t,n);return Qo(e,s,t),s}function iv(e,t){const n=(e.ORDER-xd)/Od,s=e.mul(t,Un),r=e.pow(s,n),i=e.mul(t,r),a=e.mul(e.mul(i,Un),r),o=e.mul(i,e.sub(a,e.ONE));return Qo(e,o,t),o}function av(e){const t=Yi(e),n=Cd(e),s=n(t,t.neg(t.ONE)),r=n(t,s),i=n(t,t.neg(s)),a=(e+sv)/Nd;return(o,c)=>{let l=o.pow(c,a),u=o.mul(l,s);const d=o.mul(l,r),h=o.mul(l,i),f=o.eql(o.sqr(u),c),m=o.eql(o.sqr(d),c);l=o.cmov(l,u,f),u=o.cmov(h,d,m);const v=o.eql(o.sqr(u),c),b=o.cmov(l,u,v);return Qo(o,b,c),b}}function Cd(e){if(e<Id)throw new Error("sqrt is not defined for small field");let t=e-Be,n=0;for(;t%Un===Je;)t/=Un,n++;let s=Un;const r=Yi(e);for(;Xc(r,s)===1;)if(s++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Rd;let i=r.pow(s,t);const a=(t+Be)/Un;return function(c,l){if(c.is0(l))return l;if(Xc(c,l)!==1)throw new Error("Cannot find square root");let u=n,d=c.mul(c.ONE,i),h=c.pow(l,t),f=c.pow(l,a);for(;!c.eql(h,c.ONE);){if(c.is0(h))return c.ZERO;let m=1,v=c.sqr(h);for(;!c.eql(v,c.ONE);)if(m++,v=c.sqr(v),m===u)throw new Error("Cannot find square root");const b=Be<<BigInt(u-m-1),w=c.pow(d,b);u=m,d=c.sqr(w),h=c.mul(h,d),f=c.mul(f,w)}return f}}function ov(e){return e%Ad===Id?Rd:e%Od===xd?iv:e%Nd===rv?av(e):Cd(e)}const cv=(e,t)=>(Ee(e,t)&Be)===Be,lv=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function uv(e){const t={ORDER:"bigint",BYTES:"number",BITS:"number"},n=lv.reduce((s,r)=>(s[r]="function",s),t);return Rr(e,n),e}function dv(e,t,n){if(n<Je)throw new Error("invalid exponent, negatives unsupported");if(n===Je)return e.ONE;if(n===Be)return t;let s=e.ONE,r=t;for(;n>Je;)n&Be&&(s=e.mul(s,r)),r=e.sqr(r),n>>=Be;return s}function Ud(e,t,n=!1){const s=new Array(t.length).fill(n?e.ZERO:void 0),r=t.reduce((a,o,c)=>e.is0(o)?a:(s[c]=a,e.mul(a,o)),e.ONE),i=e.inv(r);return t.reduceRight((a,o,c)=>e.is0(o)?a:(s[c]=e.mul(a,s[c]),e.mul(a,o)),i),s}function Xc(e,t){const n=(e.ORDER-Be)/Un,s=e.pow(t,n),r=e.eql(s,e.ONE),i=e.eql(s,e.ZERO),a=e.eql(s,e.neg(e.ONE));if(!r&&!i&&!a)throw new Error("invalid Legendre symbol result");return r?1:i?0:-1}function pv(e,t){t!==void 0&&Dt(t);const n=t!==void 0?t:e.toString(2).length,s=Math.ceil(n/8);return{nBitLength:n,nByteLength:s}}class hv{ORDER;BITS;BYTES;isLE;ZERO=Je;ONE=Be;_lengths;_sqrt;_mod;constructor(t,n={}){if(t<=Je)throw new Error("invalid field: expected ORDER > 0, got "+t);let s;this.isLE=!1,n!=null&&typeof n=="object"&&(typeof n.BITS=="number"&&(s=n.BITS),typeof n.sqrt=="function"&&(this.sqrt=n.sqrt),typeof n.isLE=="boolean"&&(this.isLE=n.isLE),n.allowedLengths&&(this._lengths=n.allowedLengths?.slice()),typeof n.modFromBytes=="boolean"&&(this._mod=n.modFromBytes));const{nBitLength:r,nByteLength:i}=pv(t,s);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=r,this.BYTES=i,this._sqrt=void 0,Object.preventExtensions(this)}create(t){return Ee(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof t);return Je<=t&&t<this.ORDER}is0(t){return t===Je}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&Be)===Be}neg(t){return Ee(-t,this.ORDER)}eql(t,n){return t===n}sqr(t){return Ee(t*t,this.ORDER)}add(t,n){return Ee(t+n,this.ORDER)}sub(t,n){return Ee(t-n,this.ORDER)}mul(t,n){return Ee(t*n,this.ORDER)}pow(t,n){return dv(this,t,n)}div(t,n){return Ee(t*Kc(n,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,n){return t+n}subN(t,n){return t-n}mulN(t,n){return t*n}inv(t){return Kc(t,this.ORDER)}sqrt(t){return this._sqrt||(this._sqrt=ov(this.ORDER)),this._sqrt(this,t)}toBytes(t){return this.isLE?Sd(t,this.BYTES):Ko(t,this.BYTES)}fromBytes(t,n=!1){Z(t);const{_lengths:s,BYTES:r,isLE:i,ORDER:a,_mod:o}=this;if(s){if(!s.includes(t.length)||t.length>r)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+t.length);const l=new Uint8Array(r);l.set(t,i?0:l.length-t.length),t=l}if(t.length!==r)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+t.length);let c=i?gr(t):Zi(t);if(o&&(c=Ee(c,a)),!n&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(t){return Ud(this,t)}cmov(t,n,s){return s?n:t}}function Yi(e,t={}){return new hv(e,t)}function $d(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Dd(e){const t=$d(e);return t+Math.ceil(t/2)}function fv(e,t,n=!1){Z(e);const s=e.length,r=$d(t),i=Dd(t);if(s<16||s<i||s>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+s);const a=n?gr(e):Zi(e),o=Ee(a,t-Be)+Be;return n?Sd(o,r):Ko(o,r)}const Rs=BigInt(0),$n=BigInt(1);function Ii(e,t){const n=t.negate();return e?n:t}function nr(e,t){const n=Ud(e.Fp,t.map(s=>s.Z));return t.map((s,r)=>e.fromAffine(s.toAffine(n[r])))}function Md(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Ta(e,t){Md(e,t);const n=Math.ceil(t/e)+1,s=2**(e-1),r=2**e,i=Xo(e),a=BigInt(e);return{windows:n,windowSize:s,mask:i,maxNumber:r,shiftBy:a}}function Qc(e,t,n){const{windowSize:s,mask:r,maxNumber:i,shiftBy:a}=n;let o=Number(e&r),c=e>>a;o>s&&(o-=i,c+=$n);const l=t*s,u=l+Math.abs(o)-1,d=o===0,h=o<0,f=t%2!==0;return{nextN:c,offset:u,isZero:d,isNeg:h,isNegF:f,offsetF:l}}const ka=new WeakMap,Bd=new WeakMap;function _a(e){return Bd.get(e)||1}function el(e){if(e!==Rs)throw new Error("invalid wNAF")}class jd{BASE;ZERO;Fn;bits;constructor(t,n){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=n}_unsafeLadder(t,n,s=this.ZERO){let r=t;for(;n>Rs;)n&$n&&(s=s.add(r)),r=r.double(),n>>=$n;return s}precomputeWindow(t,n){const{windows:s,windowSize:r}=Ta(n,this.bits),i=[];let a=t,o=a;for(let c=0;c<s;c++){o=a,i.push(o);for(let l=1;l<r;l++)o=o.add(a),i.push(o);a=o.double()}return i}wNAF(t,n,s){if(!this.Fn.isValid(s))throw new Error("invalid scalar");let r=this.ZERO,i=this.BASE;const a=Ta(t,this.bits);for(let o=0;o<a.windows;o++){const{nextN:c,offset:l,isZero:u,isNeg:d,isNegF:h,offsetF:f}=Qc(s,o,a);s=c,u?i=i.add(Ii(h,n[f])):r=r.add(Ii(d,n[l]))}return el(s),{p:r,f:i}}wNAFUnsafe(t,n,s,r=this.ZERO){const i=Ta(t,this.bits);for(let a=0;a<i.windows&&s!==Rs;a++){const{nextN:o,offset:c,isZero:l,isNeg:u}=Qc(s,a,i);if(s=o,!l){const d=n[c];r=r.add(u?d.negate():d)}}return el(s),r}getPrecomputes(t,n,s){let r=ka.get(n);return r||(r=this.precomputeWindow(n,t),t!==1&&(typeof s=="function"&&(r=s(r)),ka.set(n,r))),r}cached(t,n,s){const r=_a(t);return this.wNAF(r,this.getPrecomputes(r,t,s),n)}unsafe(t,n,s,r){const i=_a(t);return i===1?this._unsafeLadder(t,n,r):this.wNAFUnsafe(i,this.getPrecomputes(i,t,s),n,r)}createCache(t,n){Md(n,this.bits),Bd.set(t,n),ka.delete(t)}hasCache(t){return _a(t)!==1}}function mv(e,t,n,s){let r=t,i=e.ZERO,a=e.ZERO;for(;n>Rs||s>Rs;)n&$n&&(i=i.add(r)),s&$n&&(a=a.add(r)),r=r.double(),n>>=$n,s>>=$n;return{p1:i,p2:a}}function tl(e,t,n){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return uv(t),t}else return Yi(e,{isLE:n})}function Pd(e,t,n={},s){if(s===void 0&&(s=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(const c of["p","n","h"]){const l=t[c];if(!(typeof l=="bigint"&&l>Rs))throw new Error(`CURVE.${c} must be positive bigint`)}const r=tl(t.p,n.Fp,s),i=tl(t.n,n.Fn,s),o=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(const c of o)if(!r.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:r,Fn:i}}function Ld(e,t){return function(s){const r=e(s);return{secretKey:r,publicKey:t(r)}}}class Vd{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(t,n){if(pd(t),Z(n,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,r=new Uint8Array(s);r.set(n.length>s?t.create().update(n).digest():n);for(let i=0;i<r.length;i++)r[i]^=54;this.iHash.update(r),this.oHash=t.create();for(let i=0;i<r.length;i++)r[i]^=106;this.oHash.update(r),Xt(r)}update(t){return As(this),this.iHash.update(t),this}digestInto(t){As(this),Z(t,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});const{oHash:n,iHash:s,finished:r,destroyed:i,blockLen:a,outputLen:o}=this;return t=t,t.finished=r,t.destroyed=i,t.blockLen=a,t.outputLen=o,t.oHash=n._cloneInto(t.oHash),t.iHash=s._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Fd=(e,t,n)=>new Vd(e,t).update(n).digest();Fd.create=(e,t)=>new Vd(e,t);const nl=(e,t)=>(e+(e>=0?t:-t)/Wd)/t;function gv(e,t,n){const[[s,r],[i,a]]=t,o=nl(a*e,n),c=nl(-r*e,n);let l=e-o*s-c*i,u=-o*r-c*a;const d=l<Yt,h=u<Yt;d&&(l=-l),h&&(u=-u);const f=Xo(Math.ceil(tv(n)/2))+ws;if(l<Yt||l>=f||u<Yt||u>=f)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:d,k1:l,k2neg:h,k2:u}}function ao(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Ea(e,t){const n={};for(let s of Object.keys(t))n[s]=e[s]===void 0?t[s]:e[s];return Pn(n.lowS,"lowS"),Pn(n.prehash,"prehash"),n.format!==void 0&&ao(n.format),n}class vv extends Error{constructor(t=""){super(t)}}const gn={Err:vv,_tlv:{encode:(e,t)=>{const{Err:n}=gn;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const s=t.length/2,r=Lr(s);if(r.length/2&128)throw new n("tlv.encode: long form length too big");const i=s>127?Lr(r.length/2|128):"";return Lr(e)+i+r+t},decode(e,t){const{Err:n}=gn;let s=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[s++]!==e)throw new n("tlv.decode: wrong tlv");const r=t[s++],i=!!(r&128);let a=0;if(!i)a=r;else{const c=r&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const l=t.subarray(s,s+c);if(l.length!==c)throw new n("tlv.decode: length bytes not complete");if(l[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const u of l)a=a<<8|u;if(s+=c,a<128)throw new n("tlv.decode(long): not minimal encoding")}const o=t.subarray(s,s+a);if(o.length!==a)throw new n("tlv.decode: wrong value length");return{v:o,l:t.subarray(s+a)}}},_int:{encode(e){const{Err:t}=gn;if(e<Yt)throw new t("integer: negative integers are not allowed");let n=Lr(e);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=gn;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return Zi(e)}},toSig(e){const{Err:t,_int:n,_tlv:s}=gn,r=Z(e,void 0,"signature"),{v:i,l:a}=s.decode(48,r);if(a.length)throw new t("invalid signature: left bytes after parsing");const{v:o,l:c}=s.decode(2,i),{v:l,l:u}=s.decode(2,c);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(o),s:n.decode(l)}},hexFromSig(e){const{_tlv:t,_int:n}=gn,s=t.encode(2,n.encode(e.r)),r=t.encode(2,n.encode(e.s)),i=s+r;return t.encode(48,i)}},Yt=BigInt(0),ws=BigInt(1),Wd=BigInt(2),Vr=BigInt(3),bv=BigInt(4);function Gd(e,t={}){const n=Pd("weierstrass",e,t),{Fp:s,Fn:r}=n;let i=n.CURVE;const{h:a,n:o}=i;Rr(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});const{endo:c}=t;if(c&&(!s.is0(i.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const l=qd(s,r);function u(){if(!s.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function d(L,_,E){const{x:k,y:N}=_.toAffine(),D=s.toBytes(k);if(Pn(E,"isCompressed"),E){u();const P=!s.isOdd(N);return Rt(zd(P),D)}else return Rt(Uint8Array.of(4),D,s.toBytes(N))}function h(L){Z(L,void 0,"Point");const{publicKey:_,publicKeyUncompressed:E}=l,k=L.length,N=L[0],D=L.subarray(1);if(k===_&&(N===2||N===3)){const P=s.fromBytes(D);if(!s.isValid(P))throw new Error("bad point: is not on curve, wrong x");const V=v(P);let j;try{j=s.sqrt(V)}catch(fe){const he=fe instanceof Error?": "+fe.message:"";throw new Error("bad point: is not on curve, sqrt error"+he)}u();const z=s.isOdd(j);return(N&1)===1!==z&&(j=s.neg(j)),{x:P,y:j}}else if(k===E&&N===4){const P=s.BYTES,V=s.fromBytes(D.subarray(0,P)),j=s.fromBytes(D.subarray(P,P*2));if(!b(V,j))throw new Error("bad point: is not on curve");return{x:V,y:j}}else throw new Error(`bad point: got length ${k}, expected compressed=${_} or uncompressed=${E}`)}const f=t.toBytes||d,m=t.fromBytes||h;function v(L){const _=s.sqr(L),E=s.mul(_,L);return s.add(s.add(E,s.mul(L,i.a)),i.b)}function b(L,_){const E=s.sqr(_),k=v(L);return s.eql(E,k)}if(!b(i.Gx,i.Gy))throw new Error("bad curve params: generator point");const w=s.mul(s.pow(i.a,Vr),bv),x=s.mul(s.sqr(i.b),BigInt(27));if(s.is0(s.add(w,x)))throw new Error("bad curve params: a or b");function I(L,_,E=!1){if(!s.isValid(_)||E&&s.is0(_))throw new Error(`bad point coordinate ${L}`);return _}function B(L){if(!(L instanceof S))throw new Error("Weierstrass Point expected")}function q(L){if(!c||!c.basises)throw new Error("no endo");return gv(L,c.basises,r.ORDER)}const $=Si((L,_)=>{const{X:E,Y:k,Z:N}=L;if(s.eql(N,s.ONE))return{x:E,y:k};const D=L.is0();_==null&&(_=D?s.ONE:s.inv(N));const P=s.mul(E,_),V=s.mul(k,_),j=s.mul(N,_);if(D)return{x:s.ZERO,y:s.ZERO};if(!s.eql(j,s.ONE))throw new Error("invZ was invalid");return{x:P,y:V}}),U=Si(L=>{if(L.is0()){if(t.allowInfinityPoint&&!s.is0(L.Y))return;throw new Error("bad point: ZERO")}const{x:_,y:E}=L.toAffine();if(!s.isValid(_)||!s.isValid(E))throw new Error("bad point: x or y not field elements");if(!b(_,E))throw new Error("bad point: equation left != right");if(!L.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function A(L,_,E,k,N){return E=new S(s.mul(E.X,L),E.Y,E.Z),_=Ii(k,_),E=Ii(N,E),_.add(E)}class S{static BASE=new S(i.Gx,i.Gy,s.ONE);static ZERO=new S(s.ZERO,s.ONE,s.ZERO);static Fp=s;static Fn=r;X;Y;Z;constructor(_,E,k){this.X=I("x",_),this.Y=I("y",E,!0),this.Z=I("z",k),Object.freeze(this)}static CURVE(){return i}static fromAffine(_){const{x:E,y:k}=_||{};if(!_||!s.isValid(E)||!s.isValid(k))throw new Error("invalid affine point");if(_ instanceof S)throw new Error("projective point not allowed");return s.is0(E)&&s.is0(k)?S.ZERO:new S(E,k,s.ONE)}static fromBytes(_){const E=S.fromAffine(m(Z(_,void 0,"point")));return E.assertValidity(),E}static fromHex(_){return S.fromBytes(xs(_))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(_=8,E=!0){return X.createCache(this,_),E||this.multiply(Vr),this}assertValidity(){U(this)}hasEvenY(){const{y:_}=this.toAffine();if(!s.isOdd)throw new Error("Field doesn't support isOdd");return!s.isOdd(_)}equals(_){B(_);const{X:E,Y:k,Z:N}=this,{X:D,Y:P,Z:V}=_,j=s.eql(s.mul(E,V),s.mul(D,N)),z=s.eql(s.mul(k,V),s.mul(P,N));return j&&z}negate(){return new S(this.X,s.neg(this.Y),this.Z)}double(){const{a:_,b:E}=i,k=s.mul(E,Vr),{X:N,Y:D,Z:P}=this;let V=s.ZERO,j=s.ZERO,z=s.ZERO,J=s.mul(N,N),fe=s.mul(D,D),he=s.mul(P,P),se=s.mul(N,D);return se=s.add(se,se),z=s.mul(N,P),z=s.add(z,z),V=s.mul(_,z),j=s.mul(k,he),j=s.add(V,j),V=s.sub(fe,j),j=s.add(fe,j),j=s.mul(V,j),V=s.mul(se,V),z=s.mul(k,z),he=s.mul(_,he),se=s.sub(J,he),se=s.mul(_,se),se=s.add(se,z),z=s.add(J,J),J=s.add(z,J),J=s.add(J,he),J=s.mul(J,se),j=s.add(j,J),he=s.mul(D,P),he=s.add(he,he),J=s.mul(he,se),V=s.sub(V,J),z=s.mul(he,fe),z=s.add(z,z),z=s.add(z,z),new S(V,j,z)}add(_){B(_);const{X:E,Y:k,Z:N}=this,{X:D,Y:P,Z:V}=_;let j=s.ZERO,z=s.ZERO,J=s.ZERO;const fe=i.a,he=s.mul(i.b,Vr);let se=s.mul(E,D),me=s.mul(k,P),De=s.mul(N,V),At=s.add(E,k),ge=s.add(D,P);At=s.mul(At,ge),ge=s.add(se,me),At=s.sub(At,ge),ge=s.add(E,N);let Le=s.add(D,V);return ge=s.mul(ge,Le),Le=s.add(se,De),ge=s.sub(ge,Le),Le=s.add(k,N),j=s.add(P,V),Le=s.mul(Le,j),j=s.add(me,De),Le=s.sub(Le,j),J=s.mul(fe,ge),j=s.mul(he,De),J=s.add(j,J),j=s.sub(me,J),J=s.add(me,J),z=s.mul(j,J),me=s.add(se,se),me=s.add(me,se),De=s.mul(fe,De),ge=s.mul(he,ge),me=s.add(me,De),De=s.sub(se,De),De=s.mul(fe,De),ge=s.add(ge,De),se=s.mul(me,ge),z=s.add(z,se),se=s.mul(Le,ge),j=s.mul(At,j),j=s.sub(j,se),se=s.mul(At,me),J=s.mul(Le,J),J=s.add(J,se),new S(j,z,J)}subtract(_){return this.add(_.negate())}is0(){return this.equals(S.ZERO)}multiply(_){const{endo:E}=t;if(!r.isValidNot0(_))throw new Error("invalid scalar: out of range");let k,N;const D=P=>X.cached(this,P,V=>nr(S,V));if(E){const{k1neg:P,k1:V,k2neg:j,k2:z}=q(_),{p:J,f:fe}=D(V),{p:he,f:se}=D(z);N=fe.add(se),k=A(E.beta,J,he,P,j)}else{const{p:P,f:V}=D(_);k=P,N=V}return nr(S,[k,N])[0]}multiplyUnsafe(_){const{endo:E}=t,k=this;if(!r.isValid(_))throw new Error("invalid scalar: out of range");if(_===Yt||k.is0())return S.ZERO;if(_===ws)return k;if(X.hasCache(this))return this.multiply(_);if(E){const{k1neg:N,k1:D,k2neg:P,k2:V}=q(_),{p1:j,p2:z}=mv(S,k,D,V);return A(E.beta,j,z,N,P)}else return X.unsafe(k,_)}toAffine(_){return $(this,_)}isTorsionFree(){const{isTorsionFree:_}=t;return a===ws?!0:_?_(S,this):X.unsafe(this,o).is0()}clearCofactor(){const{clearCofactor:_}=t;return a===ws?this:_?_(S,this):this.multiplyUnsafe(a)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}toBytes(_=!0){return Pn(_,"isCompressed"),this.assertValidity(),f(S,this,_)}toHex(_=!0){return zn(this.toBytes(_))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}const F=r.BITS,X=new jd(S,t.endo?Math.ceil(F/2):F);return S.BASE.precompute(8),S}function zd(e){return Uint8Array.of(e?2:3)}function qd(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function wv(e,t={}){const{Fn:n}=e,s=t.randomBytes||Wo,r=Object.assign(qd(e.Fp,n),{seed:Dd(n.ORDER)});function i(f){try{const m=n.fromBytes(f);return n.isValidNot0(m)}catch{return!1}}function a(f,m){const{publicKey:v,publicKeyUncompressed:b}=r;try{const w=f.length;return m===!0&&w!==v||m===!1&&w!==b?!1:!!e.fromBytes(f)}catch{return!1}}function o(f=s(r.seed)){return fv(Z(f,r.seed,"seed"),n.ORDER)}function c(f,m=!0){return e.BASE.multiply(n.fromBytes(f)).toBytes(m)}function l(f){const{secretKey:m,publicKey:v,publicKeyUncompressed:b}=r;if(!Ji(f)||"_lengths"in n&&n._lengths||m===v)return;const w=Z(f,void 0,"key").length;return w===v||w===b}function u(f,m,v=!0){if(l(f)===!0)throw new Error("first arg must be private key");if(l(m)===!1)throw new Error("second arg must be public key");const b=n.fromBytes(f);return e.fromBytes(m).multiply(b).toBytes(v)}const d={isValidSecretKey:i,isValidPublicKey:a,randomSecretKey:o},h=Ld(o,c);return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:h,Point:e,utils:d,lengths:r})}function Hd(e,t,n={}){pd(t),Rr(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),n=Object.assign({},n);const s=n.randomBytes||Wo,r=n.hmac||((E,k)=>Fd(t,E,k)),{Fp:i,Fn:a}=e,{ORDER:o,BITS:c}=a,{keygen:l,getPublicKey:u,getSharedSecret:d,utils:h,lengths:f}=wv(e,n),m={prehash:!0,lowS:typeof n.lowS=="boolean"?n.lowS:!0,format:"compact",extraEntropy:!1},v=o*Wd<i.ORDER;function b(E){const k=o>>ws;return E>k}function w(E,k){if(!a.isValidNot0(k))throw new Error(`invalid signature ${E}: out of range 1..Point.Fn.ORDER`);return k}function x(){if(v)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function I(E,k){ao(k);const N=f.signature,D=k==="compact"?N:k==="recovered"?N+1:void 0;return Z(E,D)}class B{r;s;recovery;constructor(k,N,D){if(this.r=w("r",k),this.s=w("s",N),D!=null){if(x(),![0,1,2,3].includes(D))throw new Error("invalid recovery id");this.recovery=D}Object.freeze(this)}static fromBytes(k,N=m.format){I(k,N);let D;if(N==="der"){const{r:z,s:J}=gn.toSig(Z(k));return new B(z,J)}N==="recovered"&&(D=k[0],N="compact",k=k.subarray(1));const P=f.signature/2,V=k.subarray(0,P),j=k.subarray(P,P*2);return new B(a.fromBytes(V),a.fromBytes(j),D)}static fromHex(k,N){return this.fromBytes(xs(k),N)}assertRecovery(){const{recovery:k}=this;if(k==null)throw new Error("invalid recovery id: must be present");return k}addRecoveryBit(k){return new B(this.r,this.s,k)}recoverPublicKey(k){const{r:N,s:D}=this,P=this.assertRecovery(),V=P===2||P===3?N+o:N;if(!i.isValid(V))throw new Error("invalid recovery id: sig.r+curve.n != R.x");const j=i.toBytes(V),z=e.fromBytes(Rt(zd((P&1)===0),j)),J=a.inv(V),fe=$(Z(k,void 0,"msgHash")),he=a.create(-fe*J),se=a.create(D*J),me=e.BASE.multiplyUnsafe(he).add(z.multiplyUnsafe(se));if(me.is0())throw new Error("invalid recovery: point at infinify");return me.assertValidity(),me}hasHighS(){return b(this.s)}toBytes(k=m.format){if(ao(k),k==="der")return xs(gn.hexFromSig(this));const{r:N,s:D}=this,P=a.toBytes(N),V=a.toBytes(D);return k==="recovered"?(x(),Rt(Uint8Array.of(this.assertRecovery()),P,V)):Rt(P,V)}toHex(k){return zn(this.toBytes(k))}}const q=n.bits2int||function(k){if(k.length>8192)throw new Error("input is too large");const N=Zi(k),D=k.length*8-c;return D>0?N>>BigInt(D):N},$=n.bits2int_modN||function(k){return a.create(q(k))},U=Xo(c);function A(E){return io("num < 2^"+c,E,Yt,U),a.toBytes(E)}function S(E,k){return Z(E,void 0,"message"),k?Z(t(E),void 0,"prehashed message"):E}function F(E,k,N){const{lowS:D,prehash:P,extraEntropy:V}=Ea(N,m);E=S(E,P);const j=$(E),z=a.fromBytes(k);if(!a.isValidNot0(z))throw new Error("invalid private key");const J=[A(z),A(j)];if(V!=null&&V!==!1){const me=V===!0?s(f.secretKey):V;J.push(Z(me,void 0,"extraEntropy"))}const fe=Rt(...J),he=j;function se(me){const De=q(me);if(!a.isValidNot0(De))return;const At=a.inv(De),ge=e.BASE.multiply(De).toAffine(),Le=a.create(ge.x);if(Le===Yt)return;const jr=a.create(At*a.create(he+Le*z));if(jr===Yt)return;let Mc=(ge.x===Le?0:2)|Number(ge.y&ws),Bc=jr;return D&&b(jr)&&(Bc=a.neg(jr),Mc^=1),new B(Le,Bc,v?void 0:Mc)}return{seed:fe,k2sig:se}}function X(E,k,N={}){const{seed:D,k2sig:P}=F(E,k,N);return nv(t.outputLen,a.BYTES,r)(D,P).toBytes(N.format)}function L(E,k,N,D={}){const{lowS:P,prehash:V,format:j}=Ea(D,m);if(N=Z(N,void 0,"publicKey"),k=S(k,V),!Ji(E)){const z=E instanceof B?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+z)}I(E,j);try{const z=B.fromBytes(E,j),J=e.fromBytes(N);if(P&&z.hasHighS())return!1;const{r:fe,s:he}=z,se=$(k),me=a.inv(he),De=a.create(se*me),At=a.create(fe*me),ge=e.BASE.multiplyUnsafe(De).add(J.multiplyUnsafe(At));return ge.is0()?!1:a.create(ge.x)===fe}catch{return!1}}function _(E,k,N={}){const{prehash:D}=Ea(N,m);return k=S(k,D),B.fromBytes(E,"recovered").recoverPublicKey(k).toBytes()}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:d,utils:h,lengths:f,Point:e,sign:X,verify:L,recoverPublicKey:_,Signature:B,hash:t})}const yv={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Tv=Gd(yv),Jd=Hd(Tv,Zo),Sa=33,oo=64;var ks;ks=class extends Nr{constructor(t){if(super(),typeof t=="string"?this.data=Q(t):t instanceof Uint8Array?this.data=t:this.data=Uint8Array.from(t),this.data.length!==Sa)throw new Error(`Invalid public key input. Expected ${Sa} bytes, got ${this.data.length}`)}equals(t){return super.equals(t)}toRawBytes(){return this.data}flag(){return en.Passkey}async verify(t,n){const s=Zd(n),r=JSON.parse(s.clientDataJson);if(r.type!=="webauthn.get"||!Ns(t,Q(r.challenge.replace(/-/g,"+").replace(/_/g,"/"))))return!1;const i=s.userSignature.slice(1+oo);if(!Ns(this.toRawBytes(),i))return!1;const a=new Uint8Array([...s.authenticatorData,...Zo(new TextEncoder().encode(s.clientDataJson))]),o=s.userSignature.slice(1,oo+1);return Jd.verify(o,a,i)}},ks.SIZE=Sa;function Zd(e){const t=typeof e=="string"?Q(e):e;if(t[0]!==en.Passkey)throw new Error("Invalid signature scheme");const n=rd.parse(t.slice(1));return{signatureScheme:"Passkey",serializedSignature:ee(t),signature:t,authenticatorData:n.authenticatorData,clientDataJson:n.clientDataJson,userSignature:new Uint8Array(n.userSignature),publicKey:new Uint8Array(n.userSignature.slice(1+oo))}}function kv(e){for(let t=0;t<e.length;t++)if(e[t]!==0)return t;return-1}function ec(e,t){return xs(e.toString(16).padStart(t*2,"0").slice(-t*2))}function Yd(e,t){const n=ec(e,t),s=kv(n);return s===-1?new Uint8Array([0]):n.slice(s)}function _v(e){return e==="accounts.google.com"?"https://accounts.google.com":e}function Ev(e){if(e.length!==1)throw new Error("Invalid base64Url character: "+e);const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".indexOf(e);if(t===-1)throw new Error("Invalid base64Url character: "+e);const n=t.toString(2).padStart(6,"0");return Array.from(n).map(Number)}function Sv(e){let t=[];for(let n=0;n<e.length;n++){const s=Ev(e.charAt(n));t=t.concat(s)}return t}function Iv(e,t){if(e.length<2)throw new Error(`Input (s = ${e}) is not tightly packed because s.length < 2`);let n=Sv(e);const s=t%4;if(s!==0)if(s===1)n=n.slice(2);else if(s===2)n=n.slice(4);else throw new Error(`Input (s = ${e}) is not tightly packed because i%4 = 3 (i = ${t}))`);const r=(t+e.length-1)%4;if(r!==3)if(r===2)n=n.slice(0,n.length-2);else if(r===1)n=n.slice(0,n.length-4);else throw new Error(`Input (s = ${e}) is not tightly packed because (i + s.length - 1)%4 = 0 (i = ${t}))`);if(n.length%8!==0)throw new Error("We should never reach here...");const i=new Uint8Array(Math.floor(n.length/8));let a=0;for(let o=0;o<n.length;o+=8){const c=n.slice(o,o+8),l=parseInt(c.join(""),2);i[a++]=l}return new TextDecoder().decode(i)}function Av(e){if(!(e.slice(-1)==="}"||e.slice(-1)===","))throw new Error("Invalid claim");const t=JSON.parse("{"+e.slice(0,-1)+"}");if(Object.keys(t).length!==1)throw new Error("Invalid claim");const n=Object.keys(t)[0];return[n,t[n]]}function Kd(e,t){const[n,s]=Av(Iv(e.value,e.indexMod4));if(n!==t)throw new Error(`Invalid field name: found ${n} expected ${t}`);return s}const xv=p.struct("ZkLoginSignature",{inputs:p.struct("ZkLoginSignatureInputs",{proofPoints:p.struct("ZkLoginSignatureInputsProofPoints",{a:p.vector(p.string()),b:p.vector(p.vector(p.string())),c:p.vector(p.string())}),issBase64Details:p.struct("ZkLoginSignatureInputsClaim",{value:p.string(),indexMod4:p.u8()}),headerBase64:p.string(),addressSeed:p.string()}),maxEpoch:p.u64(),userSignature:p.byteVector()});function Ov(e){return xv.parse(typeof e=="string"?Q(e):e)}var Nv=class un extends Nr{#e;#t;#s;constructor(t,{client:n}={}){super(),this.#t=n,typeof t=="string"?this.#e=Q(t):t instanceof Uint8Array?this.#e=t:this.#e=Uint8Array.from(t),this.#s=this.#e.length!==this.#e[0]+1+32,this.#s&&(this.#e=Xn(this.#e,!1))}static fromBytes(t,{client:n,address:s,legacyAddress:r}={}){let i;if(r===!0?i=new un(Xn(t,!0),{client:n}):r===!1?i=new un(Xn(t,!1),{client:n}):s?(i=new un(Xn(t,!1),{client:n}),i.toSuiAddress()!==s&&(i=new un(Xn(t,!0),{client:n}))):i=new un(t,{client:n}),s&&i.toSuiAddress()!==s)throw new Error("Public key bytes do not match the provided address");return i}static fromProof(t,n){const{issBase64Details:s,addressSeed:r}=n,i=Kd(s,"iss"),a=co(BigInt(r),i,{legacyAddress:!0});if(a.toSuiAddress()===t)return a;const o=co(BigInt(r),i,{legacyAddress:!1});if(o.toSuiAddress()!==t)throw new Error("Proof does not match address");return o}equals(t){return super.equals(t)}toSuiAddress(){return this.#s?this.#r():super.toSuiAddress()}#r(){const t=Xn(this.#e,!0),n=new Uint8Array(t.length+1);return n[0]=this.flag(),n.set(t,1),re(zn(Os(n,{dkLen:32})).slice(0,Ms*2))}toRawBytes(){return this.#e}flag(){return en.ZkLogin}async verify(t,n){throw Error("does not support")}verifyPersonalMessage(t,n){const s=lo(n);return sl({address:new un(s.publicKey).toSuiAddress(),bytes:ee(t),signature:s.serializedSignature,intentScope:"PersonalMessage",client:this.#t})}verifyTransaction(t,n){const s=lo(n);return sl({address:new un(s.publicKey).toSuiAddress(),bytes:ee(t),signature:s.serializedSignature,intentScope:"TransactionData",client:this.#t})}verifyAddress(t){return t===super.toSuiAddress()||t===this.#r()}};function co(e,t,n){if(n.legacyAddress===void 0)throw new Error("legacyAddress parameter must be specified");const s=n.legacyAddress?Yd(e,32):ec(e,32),r=new TextEncoder().encode(_v(t)),i=new Uint8Array(1+r.length+s.length);return i.set([r.length],0),i.set(r,1),i.set(s,1+r.length),new Nv(i,n)}function Xn(e,t){const n=e[0]+1,s=BigInt(`0x${Is(e.slice(n))}`),r=t?Yd(s,32):ec(s,32),i=new Uint8Array(n+r.length);return i.set(e.slice(0,n),0),i.set(r,n),i}async function sl({address:e,bytes:t,signature:n,intentScope:s,client:r}){if(!r)throw new Error("A Sui Client (GRPC, GraphQL, or JSON RPC) is required to verify zkLogin signatures");const i=await r.core.verifyZkLoginSignature({bytes:t,signature:n,intentScope:s,address:e});return i.success===!0&&i.errors.length===0}function lo(e){const t=typeof e=="string"?Q(e):e;if(t[0]!==en.ZkLogin)throw new Error("Invalid signature scheme");const{inputs:n,maxEpoch:s,userSignature:r}=Ov(t.slice(1)),{issBase64Details:i,addressSeed:a}=n,o=Kd(i,"iss"),c=co(BigInt(a),o,{legacyAddress:!1});return{serializedSignature:ee(t),signatureScheme:"ZkLogin",zkLogin:{inputs:n,maxEpoch:s,userSignature:r,iss:o,addressSeed:BigInt(a)},signature:t,publicKey:c.toRawBytes()}}function Rv({signature:e,signatureScheme:t,publicKey:n}){if(!n)throw new Error("`publicKey` is required");const s=n.toRawBytes(),r=new Uint8Array(1+e.length+s.length);return r.set([en[t]]),r.set(e,1),r.set(s,1+e.length),ee(r)}function Cv(e){const t=Q(e),n=Ho[t[0]];switch(n){case"Passkey":return Zd(e);case"MultiSig":return{serializedSignature:e,signatureScheme:n,multisig:G.MultiSig.parse(t.slice(1)),bytes:t,signature:void 0};case"ZkLogin":return lo(e);case"ED25519":case"Secp256k1":case"Secp256r1":return Jo(e);default:throw new Error("Unsupported signature scheme")}}const Uv=32,Xd="suiprivkey";var Qd=class{async signWithIntent(e,t){const n=Os(Td(t,e),{dkLen:32});return{signature:Rv({signature:await this.sign(n),signatureScheme:this.getKeyScheme(),publicKey:this.getPublicKey()}),bytes:ee(e)}}async signTransaction(e){return this.signWithIntent(e,"TransactionData")}async signPersonalMessage(e){const{signature:t}=await this.signWithIntent(p.byteVector().serialize(e).toBytes(),"PersonalMessage");return{bytes:ee(e),signature:t}}async signAndExecuteTransaction({transaction:e,client:t}){e.setSenderIfNotSet(this.toSuiAddress());const n=await e.build({client:t}),{signature:s}=await this.signTransaction(n);return t.core.executeTransaction({transaction:n,signatures:[s],include:{transaction:!0,effects:!0}})}toSuiAddress(){return this.getPublicKey().toSuiAddress()}},pA=class extends Qd{};function hA(e){const{prefix:t,words:n}=Ti.decode(e);if(t!==Xd)throw new Error("invalid private key prefix");const s=new Uint8Array(Ti.fromWords(n)),r=s.slice(1);return{scheme:Ho[s[0]],secretKey:r}}function fA(e,t){if(e.length!==Uv)throw new Error("Invalid bytes length");const n=en[t],s=new Uint8Array(e.length+1);return s.set([n]),s.set(e,1),Ti.encode(Xd,Ti.toWords(s))}const ln=BigInt(0),Ne=BigInt(1),Ia=BigInt(2),$v=BigInt(8);function Dv(e,t,n,s){const r=e.sqr(n),i=e.sqr(s),a=e.add(e.mul(t.a,r),i),o=e.add(e.ONE,e.mul(t.d,e.mul(r,i)));return e.eql(a,o)}function Mv(e,t={}){const n=Pd("edwards",e,t,t.FpFnLE),{Fp:s,Fn:r}=n;let i=n.CURVE;const{h:a}=i;Rr(t,{},{uvRatio:"function"});const o=Ia<<BigInt(r.BYTES*8)-Ne,c=b=>s.create(b),l=t.uvRatio||((b,w)=>{try{return{isValid:!0,value:s.sqrt(s.div(b,w))}}catch{return{isValid:!1,value:ln}}});if(!Dv(s,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function u(b,w,x=!1){const I=x?Ne:ln;return io("coordinate "+b,w,I,o),w}function d(b){if(!(b instanceof m))throw new Error("EdwardsPoint expected")}const h=Si((b,w)=>{const{X:x,Y:I,Z:B}=b,q=b.is0();w==null&&(w=q?$v:s.inv(B));const $=c(x*w),U=c(I*w),A=s.mul(B,w);if(q)return{x:ln,y:Ne};if(A!==Ne)throw new Error("invZ was invalid");return{x:$,y:U}}),f=Si(b=>{const{a:w,d:x}=i;if(b.is0())throw new Error("bad point: ZERO");const{X:I,Y:B,Z:q,T:$}=b,U=c(I*I),A=c(B*B),S=c(q*q),F=c(S*S),X=c(U*w),L=c(S*c(X+A)),_=c(F+c(x*c(U*A)));if(L!==_)throw new Error("bad point: equation left != right (1)");const E=c(I*B),k=c(q*$);if(E!==k)throw new Error("bad point: equation left != right (2)");return!0});class m{static BASE=new m(i.Gx,i.Gy,Ne,c(i.Gx*i.Gy));static ZERO=new m(ln,Ne,Ne,ln);static Fp=s;static Fn=r;X;Y;Z;T;constructor(w,x,I,B){this.X=u("x",w),this.Y=u("y",x),this.Z=u("z",I,!0),this.T=u("t",B),Object.freeze(this)}static CURVE(){return i}static fromAffine(w){if(w instanceof m)throw new Error("extended point not allowed");const{x,y:I}=w||{};return u("x",x),u("y",I),new m(x,I,Ne,c(x*I))}static fromBytes(w,x=!1){const I=s.BYTES,{a:B,d:q}=i;w=ro(Z(w,I,"point")),Pn(x,"zip215");const $=ro(w),U=w[I-1];$[I-1]=U&-129;const A=gr($),S=x?o:s.ORDER;io("point.y",A,ln,S);const F=c(A*A),X=c(F-Ne),L=c(q*F-B);let{isValid:_,value:E}=l(X,L);if(!_)throw new Error("bad point: invalid y coordinate");const k=(E&Ne)===Ne,N=(U&128)!==0;if(!x&&E===ln&&N)throw new Error("bad point: x=0 and x_0=1");return N!==k&&(E=c(-E)),m.fromAffine({x:E,y:A})}static fromHex(w,x=!1){return m.fromBytes(xs(w),x)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(w=8,x=!0){return v.createCache(this,w),x||this.multiply(Ia),this}assertValidity(){f(this)}equals(w){d(w);const{X:x,Y:I,Z:B}=this,{X:q,Y:$,Z:U}=w,A=c(x*U),S=c(q*B),F=c(I*U),X=c($*B);return A===S&&F===X}is0(){return this.equals(m.ZERO)}negate(){return new m(c(-this.X),this.Y,this.Z,c(-this.T))}double(){const{a:w}=i,{X:x,Y:I,Z:B}=this,q=c(x*x),$=c(I*I),U=c(Ia*c(B*B)),A=c(w*q),S=x+I,F=c(c(S*S)-q-$),X=A+$,L=X-U,_=A-$,E=c(F*L),k=c(X*_),N=c(F*_),D=c(L*X);return new m(E,k,D,N)}add(w){d(w);const{a:x,d:I}=i,{X:B,Y:q,Z:$,T:U}=this,{X:A,Y:S,Z:F,T:X}=w,L=c(B*A),_=c(q*S),E=c(U*I*X),k=c($*F),N=c((B+q)*(A+S)-L-_),D=k-E,P=k+E,V=c(_-x*L),j=c(N*D),z=c(P*V),J=c(N*V),fe=c(D*P);return new m(j,z,fe,J)}subtract(w){return this.add(w.negate())}multiply(w){if(!r.isValidNot0(w))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:x,f:I}=v.cached(this,w,B=>nr(m,B));return nr(m,[x,I])[0]}multiplyUnsafe(w,x=m.ZERO){if(!r.isValid(w))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return w===ln?m.ZERO:this.is0()||w===Ne?this:v.unsafe(this,w,I=>nr(m,I),x)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}isTorsionFree(){return v.unsafe(this,i.n).is0()}toAffine(w){return h(this,w)}clearCofactor(){return a===Ne?this:this.multiplyUnsafe(a)}toBytes(){const{x:w,y:x}=this.toAffine(),I=s.toBytes(x);return I[I.length-1]|=w&Ne?128:0,I}toHex(){return zn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}const v=new jd(m,r.BITS);return m.BASE.precompute(8),m}function Bv(e,t,n={}){if(typeof t!="function")throw new Error('"hash" function param is required');Rr(n,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:s}=n,{BASE:r,Fp:i,Fn:a}=e,o=n.randomBytes||Wo,c=n.adjustScalarBytes||(A=>A),l=n.domain||((A,S,F)=>{if(Pn(F,"phflag"),S.length||F)throw new Error("Contexts/pre-hash are not supported");return A});function u(A){return a.create(gr(A))}function d(A){const S=I.secretKey;Z(A,I.secretKey,"secretKey");const F=Z(t(A),2*S,"hashedSecretKey"),X=c(F.slice(0,S)),L=F.slice(S,2*S),_=u(X);return{head:X,prefix:L,scalar:_}}function h(A){const{head:S,prefix:F,scalar:X}=d(A),L=r.multiply(X),_=L.toBytes();return{head:S,prefix:F,scalar:X,point:L,pointBytes:_}}function f(A){return h(A).pointBytes}function m(A=Uint8Array.of(),...S){const F=Rt(...S);return u(t(l(F,Z(A,void 0,"context"),!!s)))}function v(A,S,F={}){A=Z(A,void 0,"message"),s&&(A=s(A));const{prefix:X,scalar:L,pointBytes:_}=h(S),E=m(F.context,X,A),k=r.multiply(E).toBytes(),N=m(F.context,k,_,A),D=a.create(E+N*L);if(!a.isValid(D))throw new Error("sign failed: invalid s");const P=Rt(k,a.toBytes(D));return Z(P,I.signature,"result")}const b={zip215:!0};function w(A,S,F,X=b){const{context:L,zip215:_}=X,E=I.signature;A=Z(A,E,"signature"),S=Z(S,void 0,"message"),F=Z(F,I.publicKey,"publicKey"),_!==void 0&&Pn(_,"zip215"),s&&(S=s(S));const k=E/2,N=A.subarray(0,k),D=gr(A.subarray(k,E));let P,V,j;try{P=e.fromBytes(F,_),V=e.fromBytes(N,_),j=r.multiplyUnsafe(D)}catch{return!1}if(!_&&P.isSmallOrder())return!1;const z=m(L,V.toBytes(),P.toBytes(),S);return V.add(P.multiplyUnsafe(z)).subtract(j).clearCofactor().is0()}const x=i.BYTES,I={secretKey:x,publicKey:x,signature:2*x,seed:x};function B(A=o(I.seed)){return Z(A,I.seed,"seed")}function q(A){return Ji(A)&&A.length===a.BYTES}function $(A,S){try{return!!e.fromBytes(A,S)}catch{return!1}}const U={getExtendedPublicKey:h,randomSecretKey:B,isValidSecretKey:q,isValidPublicKey:$,toMontgomery(A){const{y:S}=e.fromBytes(A),F=I.publicKey,X=F===32;if(!X&&F!==57)throw new Error("only defined for 25519 and 448");const L=X?i.div(Ne+S,Ne-S):i.div(S-Ne,S+Ne);return i.toBytes(L)},toMontgomerySecret(A){const S=I.secretKey;Z(A,S);const F=t(A.subarray(0,S));return c(F).subarray(0,S)}};return Object.freeze({keygen:Ld(B,f),getPublicKey:f,sign:v,verify:w,utils:U,Point:e,lengths:I})}const jv=BigInt(1),rl=BigInt(2),Pv=BigInt(5),Lv=BigInt(8),tc=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Vv={p:tc,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Lv,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Fv(e){const t=BigInt(10),n=BigInt(20),s=BigInt(40),r=BigInt(80),i=tc,o=e*e%i*e%i,c=we(o,rl,i)*o%i,l=we(c,jv,i)*e%i,u=we(l,Pv,i)*l%i,d=we(u,t,i)*u%i,h=we(d,n,i)*d%i,f=we(h,s,i)*h%i,m=we(f,r,i)*f%i,v=we(m,r,i)*f%i,b=we(v,t,i)*u%i;return{pow_p_5_8:we(b,rl,i)*e%i,b2:o}}function Wv(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const il=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Gv(e,t){const n=tc,s=Ee(t*t*t,n),r=Ee(s*s*t,n),i=Fv(e*r).pow_p_5_8;let a=Ee(e*s*i,n);const o=Ee(t*a*a,n),c=a,l=Ee(a*il,n),u=o===e,d=o===Ee(-e,n),h=o===Ee(-e*il,n);return u&&(a=c),(d||h)&&(a=l),cv(a,n)&&(a=Ee(-a,n)),{isValid:u||d,value:a}}const zv=Mv(Vv,{uvRatio:Gv});function qv(e){return Bv(zv,Qg,Object.assign({adjustScalarBytes:Wv},e))}const Hv=qv({}),Aa=32;var _s,Jv=(_s=class extends Nr{constructor(t){if(super(),typeof t=="string"?this.data=Q(t):t instanceof Uint8Array?this.data=t:this.data=Uint8Array.from(t),this.data.length!==Aa)throw new Error(`Invalid public key input. Expected ${Aa} bytes, got ${this.data.length}`)}equals(t){return super.equals(t)}toRawBytes(){return this.data}flag(){return en.ED25519}async verify(t,n){let s;if(typeof n=="string"){const r=Jo(n);if(r.signatureScheme!=="ED25519")throw new Error("Invalid signature scheme");if(!Ns(this.toRawBytes(),r.publicKey))throw new Error("Signature does not match public key");s=r.signature}else s=n;return Hv.verify(s,t,this.toRawBytes())}},_s.SIZE=Aa,_s);const nc={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Zv={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},al=BigInt(2);function Yv(e){const t=nc.p,n=BigInt(3),s=BigInt(6),r=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),l=e*e*e%t,u=l*l*e%t,d=we(u,n,t)*u%t,h=we(d,n,t)*u%t,f=we(h,al,t)*l%t,m=we(f,r,t)*f%t,v=we(m,i,t)*m%t,b=we(v,o,t)*v%t,w=we(b,c,t)*b%t,x=we(w,o,t)*v%t,I=we(x,n,t)*u%t,B=we(I,a,t)*m%t,q=we(B,s,t)*l%t,$=we(q,al,t);if(!uo.eql(uo.sqr($),e))throw new Error("Cannot find square root");return $}const uo=Yi(nc.p,{sqrt:Yv}),Kv=Gd(nc,{Fp:uo,endo:Zv}),Xv=Hd(Kv,Zo),xa=33;var Es,Qv=(Es=class extends Nr{constructor(t){if(super(),typeof t=="string"?this.data=Q(t):t instanceof Uint8Array?this.data=t:this.data=Uint8Array.from(t),this.data.length!==xa)throw new Error(`Invalid public key input. Expected ${xa} bytes, got ${this.data.length}`)}equals(t){return super.equals(t)}toRawBytes(){return this.data}flag(){return en.Secp256k1}async verify(t,n){let s;if(typeof n=="string"){const r=Jo(n);if(r.signatureScheme!=="Secp256k1")throw new Error("Invalid signature scheme");if(!Ns(this.toRawBytes(),r.publicKey))throw new Error("Signature does not match public key");s=r.signature}else s=n;return Xv.verify(s,t,this.toRawBytes())}},Es.SIZE=xa,Es);const Oa=33;var Ss,eb=(Ss=class extends Nr{constructor(t){if(super(),typeof t=="string"?this.data=Q(t):t instanceof Uint8Array?this.data=t:this.data=Uint8Array.from(t),this.data.length!==Oa)throw new Error(`Invalid public key input. Expected ${Oa} bytes, got ${this.data.length}`)}equals(t){return super.equals(t)}toRawBytes(){return this.data}flag(){return en.Secp256r1}async verify(t,n){let s;if(typeof n=="string"){const r=Cv(n);if(r.signatureScheme!=="Secp256r1")throw new Error("Invalid signature scheme");if(!Ns(this.toRawBytes(),r.publicKey))throw new Error("Signature does not match public key");s=r.signature}else s=n;return Jd.verify(s,t,this.toRawBytes())}},Ss.SIZE=Oa,Ss);let Na;function ep(e){return{lang:e?.lang??Na?.lang,message:e?.message,abortEarly:e?.abortEarly??Na?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Na?.abortPipeEarly}}let tb;function nb(e){return tb?.get(e)}let sb;function rb(e){return sb?.get(e)}let ib;function ab(e,t){return ib?.get(e)?.get(t)}function tp(e){const t=typeof e;return t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t==="object"||t==="function"?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":t}function Oe(e,t,n,s,r){const i=r&&"input"in r?r.input:n.value,a=r?.expected??e.expects??null,o=r?.received??tp(i),c={kind:e.kind,type:e.type,input:i,expected:a,received:o,message:`Invalid ${t}: ${a?`Expected ${a} but r`:"R"}eceived ${o}`,requirement:e.requirement,path:r?.path,issues:r?.issues,lang:s.lang,abortEarly:s.abortEarly,abortPipeEarly:s.abortPipeEarly},l=e.kind==="schema",u=r?.message??e.message??ab(e.reference,c.lang)??(l?rb(c.lang):null)??s.message??nb(c.lang);u!==void 0&&(c.message=typeof u=="function"?u(c):u),l&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function $e(e){return{version:1,vendor:"valibot",validate(t){return e["~run"]({value:t},ep())}}}function ob(e,t){return Object.hasOwn(e,t)&&t!=="__proto__"&&t!=="prototype"&&t!=="constructor"}function np(e,t){const n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??"never"}var cb=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};const lb=/^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/iu;function Ki(e,t){return{kind:"validation",type:"check",reference:Ki,async:!1,expects:null,requirement:e,message:t,"~run"(n,s){return n.typed&&!this.requirement(n.value)&&Oe(this,"input",n,s),n}}}function Ze(e){return{kind:"validation",type:"integer",reference:Ze,async:!1,expects:null,requirement:Number.isInteger,message:e,"~run"(t,n){return t.typed&&!this.requirement(t.value)&&Oe(this,"integer",t,n),t}}}function sc(e){return{kind:"transformation",type:"transform",reference:sc,async:!1,operation:e,"~run"(t){return t.value=this.operation(t.value),t}}}function sp(e){return{kind:"validation",type:"url",reference:sp,async:!1,expects:null,requirement(t){try{return new URL(t),!0}catch{return!1}},message:e,"~run"(t,n){return t.typed&&!this.requirement(t.value)&&Oe(this,"URL",t,n),t}}}function rp(e){return{kind:"validation",type:"uuid",reference:rp,async:!1,expects:null,requirement:lb,message:e,"~run"(t,n){return t.typed&&!this.requirement.test(t.value)&&Oe(this,"UUID",t,n),t}}}function ub(e,t,n){return typeof e.fallback=="function"?e.fallback(t,n):e.fallback}function Xi(e,t,n){return typeof e.default=="function"?e.default(t,n):e.default}function po(e,t){return!e["~run"]({value:t},{abortEarly:!0}).issues}function te(e,t){return{kind:"schema",type:"array",reference:te,expects:"Array",async:!1,item:e,message:t,get"~standard"(){return $e(this)},"~run"(n,s){const r=n.value;if(Array.isArray(r)){n.typed=!0,n.value=[];for(let i=0;i<r.length;i++){const a=r[i],o=this.item["~run"]({value:a},s);if(o.issues){const c={type:"array",origin:"value",input:r,key:i,value:a};for(const l of o.issues)l.path?l.path.unshift(c):l.path=[c],n.issues?.push(l);if(n.issues||(n.issues=o.issues),s.abortEarly){n.typed=!1;break}}o.typed||(n.typed=!1),n.value.push(o.value)}}else Oe(this,"type",n,s);return n}}}function rc(e){return{kind:"schema",type:"bigint",reference:rc,expects:"bigint",async:!1,message:e,get"~standard"(){return $e(this)},"~run"(t,n){return typeof t.value=="bigint"?t.typed=!0:Oe(this,"type",t,n),t}}}function Ln(e){return{kind:"schema",type:"boolean",reference:Ln,expects:"boolean",async:!1,message:e,get"~standard"(){return $e(this)},"~run"(t,n){return typeof t.value=="boolean"?t.typed=!0:Oe(this,"type",t,n),t}}}function Ai(e){return{kind:"schema",type:"lazy",reference:Ai,expects:"unknown",async:!1,getter:e,get"~standard"(){return $e(this)},"~run"(t,n){return this.getter(t.value)["~run"](t,n)}}}function ne(e,t){return{kind:"schema",type:"literal",reference:ne,expects:tp(e),async:!1,literal:e,message:t,get"~standard"(){return $e(this)},"~run"(n,s){return n.value===this.literal?n.typed=!0:Oe(this,"type",n,s),n}}}function ip(e){return{kind:"schema",type:"null",reference:ip,expects:"null",async:!1,message:e,get"~standard"(){return $e(this)},"~run"(t,n){return t.value===null?t.typed=!0:Oe(this,"type",t,n),t}}}function de(e,t){return{kind:"schema",type:"nullable",reference:de,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,get"~standard"(){return $e(this)},"~run"(n,s){return n.value===null&&(this.default!==void 0&&(n.value=Xi(this,n,s)),n.value===null)?(n.typed=!0,n):this.wrapped["~run"](n,s)}}}function vr(e,t){return{kind:"schema",type:"nullish",reference:vr,expects:`(${e.expects} | null | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return $e(this)},"~run"(n,s){return(n.value===null||n.value===void 0)&&(this.default!==void 0&&(n.value=Xi(this,n,s)),n.value===null||n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,s)}}}function Me(e){return{kind:"schema",type:"number",reference:Me,expects:"number",async:!1,message:e,get"~standard"(){return $e(this)},"~run"(t,n){return typeof t.value=="number"&&!isNaN(t.value)?t.typed=!0:Oe(this,"type",t,n),t}}}function C(e,t){return{kind:"schema",type:"object",reference:C,expects:"Object",async:!1,entries:e,message:t,get"~standard"(){return $e(this)},"~run"(n,s){const r=n.value;if(r&&typeof r=="object"){n.typed=!0,n.value={};for(const i in this.entries){const a=this.entries[i];if(i in r||(a.type==="exact_optional"||a.type==="optional"||a.type==="nullish")&&a.default!==void 0){const o=i in r?r[i]:Xi(a),c=a["~run"]({value:o},s);if(c.issues){const l={type:"object",origin:"value",input:r,key:i,value:o};for(const u of c.issues)u.path?u.path.unshift(l):u.path=[l],n.issues?.push(u);if(n.issues||(n.issues=c.issues),s.abortEarly){n.typed=!1;break}}c.typed||(n.typed=!1),n.value[i]=c.value}else if(a.fallback!==void 0)n.value[i]=ub(a);else if(a.type!=="exact_optional"&&a.type!=="optional"&&a.type!=="nullish"&&(Oe(this,"key",n,s,{input:void 0,expected:`"${i}"`,path:[{type:"object",origin:"key",input:r,key:i,value:r[i]}]}),s.abortEarly))break}}else Oe(this,"type",n,s);return n}}}function Fe(e,t){return{kind:"schema",type:"optional",reference:Fe,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return $e(this)},"~run"(n,s){return n.value===void 0&&(this.default!==void 0&&(n.value=Xi(this,n,s)),n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,s)}}}function yn(e,t,n){return{kind:"schema",type:"record",reference:yn,expects:"Object",async:!1,key:e,value:t,message:n,get"~standard"(){return $e(this)},"~run"(s,r){const i=s.value;if(i&&typeof i=="object"){s.typed=!0,s.value={};for(const a in i)if(ob(i,a)){const o=i[a],c=this.key["~run"]({value:a},r);if(c.issues){const u={type:"object",origin:"key",input:i,key:a,value:o};for(const d of c.issues)d.path=[u],s.issues?.push(d);if(s.issues||(s.issues=c.issues),r.abortEarly){s.typed=!1;break}}const l=this.value["~run"]({value:o},r);if(l.issues){const u={type:"object",origin:"value",input:i,key:a,value:o};for(const d of l.issues)d.path?d.path.unshift(u):d.path=[u],s.issues?.push(d);if(s.issues||(s.issues=l.issues),r.abortEarly){s.typed=!1;break}}(!c.typed||!l.typed)&&(s.typed=!1),c.typed&&(s.value[c.value]=l.value)}}else Oe(this,"type",s,r);return s}}}function W(e){return{kind:"schema",type:"string",reference:W,expects:"string",async:!1,message:e,get"~standard"(){return $e(this)},"~run"(t,n){return typeof t.value=="string"?t.typed=!0:Oe(this,"type",t,n),t}}}function ic(e,t){return{kind:"schema",type:"tuple",reference:ic,expects:"Array",async:!1,items:e,message:t,get"~standard"(){return $e(this)},"~run"(n,s){const r=n.value;if(Array.isArray(r)){n.typed=!0,n.value=[];for(let i=0;i<this.items.length;i++){const a=r[i],o=this.items[i]["~run"]({value:a},s);if(o.issues){const c={type:"array",origin:"value",input:r,key:i,value:a};for(const l of o.issues)l.path?l.path.unshift(c):l.path=[c],n.issues?.push(l);if(n.issues||(n.issues=o.issues),s.abortEarly){n.typed=!1;break}}o.typed||(n.typed=!1),n.value.push(o.value)}}else Oe(this,"type",n,s);return n}}}function ol(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function dt(e,t){return{kind:"schema",type:"union",reference:dt,expects:np(e.map(n=>n.expects),"|"),async:!1,options:e,message:t,get"~standard"(){return $e(this)},"~run"(n,s){let r,i,a;for(const o of this.options){const c=o["~run"]({value:n.value},s);if(c.typed)if(c.issues)i?i.push(c):i=[c];else{r=c;break}else a?a.push(c):a=[c]}if(r)return r;if(i){if(i.length===1)return i[0];Oe(this,"type",n,s,{issues:ol(i)}),n.typed=!0}else{if(a?.length===1)return a[0];Oe(this,"type",n,s,{issues:ol(a)})}return n}}}function Cr(){return{kind:"schema",type:"unknown",reference:Cr,expects:"unknown",async:!1,get"~standard"(){return $e(this)},"~run"(e){return e.typed=!0,e}}}function ap(e,t,n){return{kind:"schema",type:"variant",reference:ap,expects:"Object",async:!1,key:e,options:t,message:n,get"~standard"(){return $e(this)},"~run"(s,r){const i=s.value;if(i&&typeof i=="object"){let a,o=0,c=this.key,l=[];const u=(d,h)=>{for(const f of d.options){if(f.type==="variant")u(f,new Set(h).add(f.key));else{let m=!0,v=0;for(const b of h){const w=f.entries[b];if(b in i?w["~run"]({typed:!1,value:i[b]},{abortEarly:!0}).issues:w.type!=="exact_optional"&&w.type!=="optional"&&w.type!=="nullish"){m=!1,c!==b&&(o<v||o===v&&b in i&&!(c in i))&&(o=v,c=b,l=[]),c===b&&l.push(f.entries[b].expects);break}v++}if(m){const b=f["~run"]({value:i},r);(!a||!a.typed&&b.typed)&&(a=b)}}if(a&&!a.issues)break}};if(u(this,new Set([this.key])),a)return a;Oe(this,"type",s,r,{input:i[c],expected:np(l,"|"),path:[{type:"object",origin:"value",input:i,key:c,value:i[c]}]})}else Oe(this,"type",s,r);return s}}}function ue(e,t,n){const s=e["~run"]({value:t},ep(n));if(s.issues)throw new cb(s.issues);return s.value}function Ce(...e){return{...e[0],pipe:e,get"~standard"(){return $e(this)},"~run"(t,n){for(const s of e)if(s.kind!=="metadata"){if(t.issues&&(s.kind==="schema"||s.kind==="transformation")){t.typed=!1;break}(!t.issues||!n.abortEarly&&!n.abortPipeEarly)&&(t=s["~run"](t,n))}return t}}}function Pt(e){return dt(Object.keys(e).map(t=>Js(t,C({[t]:e[t]}))))}function Js(e,t){return Ce(C({...t.entries,$kind:Fe(ne(e))}),sc(n=>({...n,$kind:e})))}const js=Ce(W(),sc(e=>re(e)),Ki(fr)),rt=js,Vn=W(),xe=Ce(dt([W(),Ce(Me(),Ze())]),Ki(e=>{try{return BigInt(e),BigInt(e)>=0&&BigInt(e)<=18446744073709551615n}catch{return!1}},"Invalid u64")),db=Ce(Me(),Ze(),Ki(e=>e>=0&&e<2**32,"Invalid u32")),Tn=C({objectId:js,version:xe,digest:W()}),pe=dt([Js("GasCoin",C({GasCoin:ne(!0)})),Js("Input",C({Input:Ce(Me(),Ze()),type:Fe(dt([ne("pure"),ne("object"),ne("withdrawal")]))})),Js("Result",C({Result:Ce(Me(),Ze())})),Js("NestedResult",C({NestedResult:ic([Ce(Me(),Ze()),Ce(Me(),Ze())])}))]),pb=C({budget:de(xe),price:de(xe),owner:de(js),payment:de(te(Tn))}),ho=dt([C({$kind:ne("address")}),C({$kind:ne("bool")}),C({$kind:ne("u8")}),C({$kind:ne("u16")}),C({$kind:ne("u32")}),C({$kind:ne("u64")}),C({$kind:ne("u128")}),C({$kind:ne("u256")}),C({$kind:ne("unknown")}),C({$kind:ne("vector"),vector:Ai(()=>ho)}),C({$kind:ne("datatype"),datatype:C({typeName:W(),typeParameters:te(Ai(()=>ho))})}),C({$kind:ne("typeParameter"),index:Ce(Me(),Ze())})]),hb=C({reference:de(dt([ne("mutable"),ne("immutable"),ne("unknown")])),body:ho}),fb=C({package:rt,module:W(),function:W(),typeArguments:te(W()),arguments:te(pe),_argumentTypes:Fe(de(te(hb)))}),mb=C({name:W(),inputs:yn(W(),dt([pe,te(pe)])),data:yn(W(),Cr())}),gb=Pt({MoveCall:fb,TransferObjects:C({objects:te(pe),address:pe}),SplitCoins:C({coin:pe,amounts:te(pe)}),MergeCoins:C({destination:pe,sources:te(pe)}),Publish:C({modules:te(Vn),dependencies:te(rt)}),MakeMoveVec:C({type:de(W()),elements:te(pe)}),Upgrade:C({modules:te(Vn),dependencies:te(rt),package:rt,ticket:pe}),$Intent:mb}),op=Pt({ImmOrOwnedObject:Tn,SharedObject:C({objectId:rt,initialSharedVersion:xe,mutable:Ln()}),Receiving:Tn}),vb=Pt({MaxAmountU64:xe}),bb=Pt({Balance:W()}),wb=Pt({Sender:ne(!0),Sponsor:ne(!0)}),cp=C({reservation:vb,typeArg:bb,withdrawFrom:wb}),yb=Pt({Object:op,Pure:C({bytes:Vn}),UnresolvedPure:C({value:Cr()}),UnresolvedObject:C({objectId:rt,version:Fe(de(xe)),digest:Fe(de(W())),initialSharedVersion:Fe(de(xe)),mutable:Fe(de(Ln()))}),FundsWithdrawal:cp}),cl=Pt({Object:op,Pure:C({bytes:Vn})}),lp=C({minEpoch:de(xe),maxEpoch:de(xe),minTimestamp:de(xe),maxTimestamp:de(xe),chain:W(),nonce:db}),up=Pt({None:ne(!0),Epoch:xe,ValidDuring:lp}),Qr=C({version:ne(2),sender:vr(js),expiration:vr(up),gasData:pb,inputs:te(yb),commands:te(gb)});function xi(e){if(typeof e=="string")return re(e);if(e.Object)return e.Object.ImmOrOwnedObject?re(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?re(e.Object.Receiving.objectId):re(e.Object.SharedObject.objectId);if(e.UnresolvedObject)return re(e.UnresolvedObject.objectId)}function Tb(e,t,n){const s=r=>{switch(r.$kind){case"Input":{const i=t.get(r.Input);if(i===void 0)throw new Error(`Input ${r.Input} not found in input mapping`);return{...r,Input:i}}case"Result":{const i=n.get(r.Result);return i!==void 0?{...r,Result:i}:r}case"NestedResult":{const i=n.get(r.NestedResult[0]);return i!==void 0?{...r,NestedResult:[i,r.NestedResult[1]]}:r}default:return r}};switch(e.$kind){case"MoveCall":e.MoveCall.arguments=e.MoveCall.arguments.map(s);break;case"TransferObjects":e.TransferObjects.objects=e.TransferObjects.objects.map(s),e.TransferObjects.address=s(e.TransferObjects.address);break;case"SplitCoins":e.SplitCoins.coin=s(e.SplitCoins.coin),e.SplitCoins.amounts=e.SplitCoins.amounts.map(s);break;case"MergeCoins":e.MergeCoins.destination=s(e.MergeCoins.destination),e.MergeCoins.sources=e.MergeCoins.sources.map(s);break;case"MakeMoveVec":e.MakeMoveVec.elements=e.MakeMoveVec.elements.map(s);break;case"Upgrade":e.Upgrade.ticket=s(e.Upgrade.ticket);break;case"$Intent":{const r=e.$Intent.inputs;e.$Intent.inputs={};for(const[i,a]of Object.entries(r))e.$Intent.inputs[i]=Array.isArray(a)?a.map(s):s(a);break}}}const ll=C({digest:W(),objectId:W(),version:dt([Ce(Me(),Ze()),W(),rc()])}),kb=Pt({ImmOrOwned:ll,Shared:C({objectId:rt,initialSharedVersion:xe,mutable:Ln()}),Receiving:ll}),ul=Pt({Object:kb,Pure:te(Ce(Me(),Ze()))});function _b(e){const t=e.inputs.map((n,s)=>{if(n.Object)return{kind:"Input",index:s,value:{Object:n.Object.ImmOrOwnedObject?{ImmOrOwned:n.Object.ImmOrOwnedObject}:n.Object.Receiving?{Receiving:{digest:n.Object.Receiving.digest,version:n.Object.Receiving.version,objectId:n.Object.Receiving.objectId}}:{Shared:{mutable:n.Object.SharedObject.mutable,initialSharedVersion:n.Object.SharedObject.initialSharedVersion,objectId:n.Object.SharedObject.objectId}}},type:"object"};if(n.Pure)return{kind:"Input",index:s,value:{Pure:Array.from(Q(n.Pure.bytes))},type:"pure"};if(n.UnresolvedPure)return{kind:"Input",type:"pure",index:s,value:n.UnresolvedPure.value};if(n.UnresolvedObject)return{kind:"Input",type:"object",index:s,value:n.UnresolvedObject.objectId};throw new Error("Invalid input")});return{version:1,sender:e.sender??void 0,expiration:e.expiration?.$kind==="Epoch"?{Epoch:Number(e.expiration.Epoch)}:e.expiration?{None:!0}:null,gasConfig:{owner:e.gasData.owner??void 0,budget:e.gasData.budget??void 0,price:e.gasData.price??void 0,payment:e.gasData.payment??void 0},inputs:t,transactions:e.commands.map(n=>{if(n.MakeMoveVec)return{kind:"MakeMoveVec",type:n.MakeMoveVec.type===null?{None:!0}:{Some:mr.parseFromStr(n.MakeMoveVec.type)},objects:n.MakeMoveVec.elements.map(s=>Ft(s,t))};if(n.MergeCoins)return{kind:"MergeCoins",destination:Ft(n.MergeCoins.destination,t),sources:n.MergeCoins.sources.map(s=>Ft(s,t))};if(n.MoveCall)return{kind:"MoveCall",target:`${n.MoveCall.package}::${n.MoveCall.module}::${n.MoveCall.function}`,typeArguments:n.MoveCall.typeArguments,arguments:n.MoveCall.arguments.map(s=>Ft(s,t))};if(n.Publish)return{kind:"Publish",modules:n.Publish.modules.map(s=>Array.from(Q(s))),dependencies:n.Publish.dependencies};if(n.SplitCoins)return{kind:"SplitCoins",coin:Ft(n.SplitCoins.coin,t),amounts:n.SplitCoins.amounts.map(s=>Ft(s,t))};if(n.TransferObjects)return{kind:"TransferObjects",objects:n.TransferObjects.objects.map(s=>Ft(s,t)),address:Ft(n.TransferObjects.address,t)};if(n.Upgrade)return{kind:"Upgrade",modules:n.Upgrade.modules.map(s=>Array.from(Q(s))),dependencies:n.Upgrade.dependencies,packageId:n.Upgrade.package,ticket:Ft(n.Upgrade.ticket,t)};throw new Error(`Unknown transaction ${Object.keys(n)}`)})}}function Ft(e,t){if(e.$kind==="GasCoin")return{kind:"GasCoin"};if(e.$kind==="Result")return{kind:"Result",index:e.Result};if(e.$kind==="NestedResult")return{kind:"NestedResult",index:e.NestedResult[0],resultIndex:e.NestedResult[1]};if(e.$kind==="Input")return t[e.Input];throw new Error(`Invalid argument ${Object.keys(e)}`)}function Eb(e){return ue(Qr,{version:2,sender:e.sender??null,expiration:e.expiration?"Epoch"in e.expiration?{Epoch:e.expiration.Epoch}:{None:!0}:null,gasData:{owner:e.gasConfig.owner??null,budget:e.gasConfig.budget?.toString()??null,price:e.gasConfig.price?.toString()??null,payment:e.gasConfig.payment?.map(t=>({digest:t.digest,objectId:t.objectId,version:t.version.toString()}))??null},inputs:e.inputs.map(t=>{if(t.kind==="Input"){if(po(ul,t.value)){const n=ue(ul,t.value);if(n.Object){if(n.Object.ImmOrOwned)return{Object:{ImmOrOwnedObject:{objectId:n.Object.ImmOrOwned.objectId,version:String(n.Object.ImmOrOwned.version),digest:n.Object.ImmOrOwned.digest}}};if(n.Object.Shared)return{Object:{SharedObject:{mutable:n.Object.Shared.mutable??null,initialSharedVersion:n.Object.Shared.initialSharedVersion,objectId:n.Object.Shared.objectId}}};if(n.Object.Receiving)return{Object:{Receiving:{digest:n.Object.Receiving.digest,version:String(n.Object.Receiving.version),objectId:n.Object.Receiving.objectId}}};throw new Error("Invalid object input")}return{Pure:{bytes:ee(new Uint8Array(n.Pure))}}}return t.type==="object"?{UnresolvedObject:{objectId:t.value}}:{UnresolvedPure:{value:t.value}}}throw new Error("Invalid input")}),commands:e.transactions.map(t=>{switch(t.kind){case"MakeMoveVec":return{MakeMoveVec:{type:"Some"in t.type?mr.tagToString(t.type.Some):null,elements:t.objects.map(n=>Wt(n))}};case"MergeCoins":return{MergeCoins:{destination:Wt(t.destination),sources:t.sources.map(n=>Wt(n))}};case"MoveCall":{const[n,s,r]=t.target.split("::");return{MoveCall:{package:n,module:s,function:r,typeArguments:t.typeArguments,arguments:t.arguments.map(i=>Wt(i))}}}case"Publish":return{Publish:{modules:t.modules.map(n=>ee(Uint8Array.from(n))),dependencies:t.dependencies}};case"SplitCoins":return{SplitCoins:{coin:Wt(t.coin),amounts:t.amounts.map(n=>Wt(n))}};case"TransferObjects":return{TransferObjects:{objects:t.objects.map(n=>Wt(n)),address:Wt(t.address)}};case"Upgrade":return{Upgrade:{modules:t.modules.map(n=>ee(Uint8Array.from(n))),dependencies:t.dependencies,package:t.packageId,ticket:Wt(t.ticket)}}}throw new Error(`Unknown transaction ${Object.keys(t)}`)})})}function Wt(e){switch(e.kind){case"GasCoin":return{GasCoin:!0};case"Result":return{Result:e.index};case"NestedResult":return{NestedResult:[e.index,e.resultIndex]};case"Input":return{Input:e.index}}}function Sb(e,t){const n=Array.from(`${e}::`).map(r=>r.charCodeAt(0)),s=new Uint8Array(n.length+t.length);return s.set(n),s.set(t,n.length),Os(s,{dkLen:32})}function dl(e){return re(e).replace("0x","")}var as=class xn{static fromKindBytes(t){const n=G.TransactionKind.parse(t).ProgrammableTransaction;if(!n)throw new Error("Unable to deserialize from bytes.");return xn.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:n.inputs,commands:n.commands})}static fromBytes(t){const n=G.TransactionData.parse(t)?.V1,s=n.kind.ProgrammableTransaction;if(!n||!s)throw new Error("Unable to deserialize from bytes.");return xn.restore({version:2,sender:n.sender,expiration:n.expiration,gasData:n.gasData,inputs:s.inputs,commands:s.commands})}static restore(t){return t.version===2?new xn(ue(Qr,t)):new xn(ue(Qr,Eb(t)))}static getDigestFromBytes(t){return Hi(Sb("TransactionData",t))}constructor(t){this.version=2,this.sender=t?.sender??null,this.expiration=t?.expiration??null,this.inputs=t?.inputs??[],this.commands=t?.commands??[],this.gasData=t?.gasData??{budget:null,price:null,owner:null,payment:null}}build({maxSizeBytes:t=1/0,overrides:n,onlyTransactionKind:s}={}){const r=this.inputs,i=this.commands,a={ProgrammableTransaction:{inputs:r,commands:i}};if(s)return G.TransactionKind.serialize(a,{maxSize:t}).toBytes();const o=n?.expiration??this.expiration,c=n?.sender??this.sender,l={...this.gasData,...n?.gasData};if(!c)throw new Error("Missing transaction sender");if(!l.budget)throw new Error("Missing gas budget");if(!l.payment)throw new Error("Missing gas payment");if(!l.price)throw new Error("Missing gas price");const u={sender:dl(c),expiration:o||{None:!0},gasData:{payment:l.payment,owner:dl(this.gasData.owner??c),price:BigInt(l.price),budget:BigInt(l.budget)},kind:{ProgrammableTransaction:{inputs:r,commands:i}}};return G.TransactionData.serialize({V1:u},{maxSize:t}).toBytes()}addInput(t,n){const s=this.inputs.length;return this.inputs.push(n),{Input:s,type:t,$kind:"Input"}}getInputUses(t,n){this.mapArguments((s,r)=>(s.$kind==="Input"&&s.Input===t&&n(s,r),s))}mapCommandArguments(t,n){const s=this.commands[t];switch(s.$kind){case"MoveCall":s.MoveCall.arguments=s.MoveCall.arguments.map(i=>n(i,s,t));break;case"TransferObjects":s.TransferObjects.objects=s.TransferObjects.objects.map(i=>n(i,s,t)),s.TransferObjects.address=n(s.TransferObjects.address,s,t);break;case"SplitCoins":s.SplitCoins.coin=n(s.SplitCoins.coin,s,t),s.SplitCoins.amounts=s.SplitCoins.amounts.map(i=>n(i,s,t));break;case"MergeCoins":s.MergeCoins.destination=n(s.MergeCoins.destination,s,t),s.MergeCoins.sources=s.MergeCoins.sources.map(i=>n(i,s,t));break;case"MakeMoveVec":s.MakeMoveVec.elements=s.MakeMoveVec.elements.map(i=>n(i,s,t));break;case"Upgrade":s.Upgrade.ticket=n(s.Upgrade.ticket,s,t);break;case"$Intent":const r=s.$Intent.inputs;s.$Intent.inputs={};for(const[i,a]of Object.entries(r))s.$Intent.inputs[i]=Array.isArray(a)?a.map(o=>n(o,s,t)):n(a,s,t);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${s.$kind}`)}}mapArguments(t){for(const n of this.commands.keys())this.mapCommandArguments(n,t)}replaceCommand(t,n,s=t){if(!Array.isArray(n)){this.commands[t]=n;return}const r=n.length-1;this.commands.splice(t,1,...structuredClone(n)),this.mapArguments((i,a,o)=>{if(o<t+n.length)return i;if(typeof s!="number"&&(i.$kind==="Result"&&i.Result===t||i.$kind==="NestedResult"&&i.NestedResult[0]===t)){if(!("NestedResult"in i)||i.NestedResult[1]===0)return ue(pe,structuredClone(s));throw new Error(`Cannot replace command ${t} with a specific result type: NestedResult[${t}, ${i.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`)}switch(i.$kind){case"Result":i.Result===t&&typeof s=="number"&&(i.Result=s),i.Result>t&&(i.Result+=r);break;case"NestedResult":if(i.NestedResult[0]===t&&typeof s=="number")return{$kind:"NestedResult",NestedResult:[s,i.NestedResult[1]]};i.NestedResult[0]>t&&(i.NestedResult[0]+=r);break}return i})}replaceCommandWithTransaction(t,n,s){if(s.$kind!=="Result"&&s.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(t,n),this.replaceCommand(t+n.commands.length,[],"Result"in s?{NestedResult:[s.Result+t,0]}:{NestedResult:[s.NestedResult[0]+t,s.NestedResult[1]]})}insertTransaction(t,n){const s=new Map,r=new Map;for(let o=0;o<n.inputs.length;o++){const c=n.inputs[o],l=xi(c);let u=-1;if(l!==void 0&&(u=this.inputs.findIndex(d=>xi(d)===l),u!==-1&&this.inputs[u].Object?.SharedObject&&c.Object?.SharedObject&&(this.inputs[u].Object.SharedObject.mutable=this.inputs[u].Object.SharedObject.mutable||c.Object.SharedObject.mutable)),u!==-1)s.set(o,u);else{const d=this.inputs.length;this.inputs.push(c),s.set(o,d)}}for(let o=0;o<n.commands.length;o++)r.set(o,t+o);const i=[];for(let o=0;o<n.commands.length;o++){const c=structuredClone(n.commands[o]);Tb(c,s,r),i.push(c)}this.commands.splice(t,0,...i);const a=i.length;a>0&&this.mapArguments((o,c,l)=>{if(l>=t&&l<t+i.length)return o;switch(o.$kind){case"Result":o.Result>=t&&(o.Result+=a);break;case"NestedResult":o.NestedResult[0]>=t&&(o.NestedResult[0]+=a);break}return o})}getDigest(){const t=this.build({onlyTransactionKind:!1});return xn.getDigestFromBytes(t)}snapshot(){return ue(Qr,this)}shallowClone(){return new xn({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}applyResolvedData(t){this.sender||(this.sender=t.sender??null),this.expiration||(this.expiration=t.expiration??null),this.gasData.budget||(this.gasData.budget=t.gasData.budget),this.gasData.owner||(this.gasData.owner=t.gasData.owner??null),this.gasData.payment||(this.gasData.payment=t.gasData.payment),this.gasData.price||(this.gasData.price=t.gasData.price);for(let n=0;n<this.inputs.length;n++){const s=this.inputs[n],r=t.inputs[n];switch(s.$kind){case"UnresolvedPure":if(r.$kind!=="Pure")throw new Error(`Expected input at index ${n} to resolve to a Pure argument, but got ${JSON.stringify(r)}`);this.inputs[n]=r;break;case"UnresolvedObject":if(r.$kind!=="Object")throw new Error(`Expected input at index ${n} to resolve to an Object argument, but got ${JSON.stringify(r)}`);if(r.Object.$kind==="ImmOrOwnedObject"||r.Object.$kind==="Receiving"){const i=s.UnresolvedObject,a=r.Object.ImmOrOwnedObject??r.Object.Receiving;if(re(i.objectId)!==re(a.objectId)||i.version!=null&&i.version!==a.version||i.digest!=null&&i.digest!==a.digest||i.mutable!=null||i.initialSharedVersion!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(a)}`)}else if(r.Object.$kind==="SharedObject"){const i=s.UnresolvedObject,a=r.Object.SharedObject;if(re(i.objectId)!==re(a.objectId)||i.initialSharedVersion!=null&&i.initialSharedVersion!==a.initialSharedVersion||i.mutable!=null&&i.mutable!==a.mutable||i.version!=null||i.digest!=null)throw new Error(`Input at index ${n} did not match unresolved object. ${JSON.stringify(i)} is not compatible with ${JSON.stringify(a)}`)}else throw new Error(`Input at index ${n} resolved to an unexpected Object kind: ${JSON.stringify(r.Object)}`);this.inputs[n]=r;break}}}};const nt={MoveCall(e){const[t,n="",s=""]="target"in e?e.target.split("::"):[e.package,e.module,e.function];return{$kind:"MoveCall",MoveCall:{package:t,module:n,function:s,typeArguments:e.typeArguments??[],arguments:e.arguments??[]}}},TransferObjects(e,t){return{$kind:"TransferObjects",TransferObjects:{objects:e.map(n=>ue(pe,n)),address:ue(pe,t)}}},SplitCoins(e,t){return{$kind:"SplitCoins",SplitCoins:{coin:ue(pe,e),amounts:t.map(n=>ue(pe,n))}}},MergeCoins(e,t){return{$kind:"MergeCoins",MergeCoins:{destination:ue(pe,e),sources:t.map(n=>ue(pe,n))}}},Publish({modules:e,dependencies:t}){return{$kind:"Publish",Publish:{modules:e.map(n=>typeof n=="string"?n:ee(new Uint8Array(n))),dependencies:t.map(n=>to(n))}}},Upgrade({modules:e,dependencies:t,package:n,ticket:s}){return{$kind:"Upgrade",Upgrade:{modules:e.map(r=>typeof r=="string"?r:ee(new Uint8Array(r))),dependencies:t.map(r=>to(r)),package:n,ticket:ue(pe,s)}}},MakeMoveVec({type:e,elements:t}){return{$kind:"MakeMoveVec",MakeMoveVec:{type:e??null,elements:t.map(n=>ue(pe,n))}}},Intent({name:e,inputs:t={},data:n={}}){return{$kind:"$Intent",$Intent:{name:e,inputs:Object.fromEntries(Object.entries(t).map(([s,r])=>[s,Array.isArray(r)?r.map(i=>ue(pe,i)):ue(pe,r)])),data:n}}}};function Ib(e){return{$kind:"Pure",Pure:{bytes:e instanceof Uint8Array?ee(e):e.toBase64()}}}const ze={Pure:Ib,ObjectRef({objectId:e,digest:t,version:n}){return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{digest:t,version:n,objectId:re(e)}}}},SharedObjectRef({objectId:e,mutable:t,initialSharedVersion:n}){return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{mutable:t,initialSharedVersion:n,objectId:re(e)}}}},ReceivingRef({objectId:e,digest:t,version:n}){return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{digest:t,version:n,objectId:re(e)}}}},FundsWithdrawal({reservation:e,typeArg:t,withdrawFrom:n}){return{$kind:"FundsWithdrawal",FundsWithdrawal:{reservation:e,typeArg:t,withdrawFrom:n}}}};function dp(e){const t=e.split("::");if(t.length!==3)throw new Error(`Invalid type name format: ${e}`);return{package:t[0],module:t[1],name:t[2]}}function Ab(e){if(e.body.$kind!=="datatype")return!1;const{package:t,module:n,name:s}=dp(e.body.datatype.typeName);return re(t)===qo&&n==="tx_context"&&s==="TxContext"}function fo(e){switch(e.$kind){case"address":return G.Address;case"bool":return G.Bool;case"u8":return G.U8;case"u16":return G.U16;case"u32":return G.U32;case"u64":return G.U64;case"u128":return G.U128;case"u256":return G.U256;case"vector":{if(e.vector.$kind==="u8")return G.byteVector().transform({input:n=>typeof n=="string"?new TextEncoder().encode(n):n,output:n=>n});const t=fo(e.vector);return t?G.vector(t):null}case"datatype":{const{package:t,module:n,name:s}=dp(e.datatype.typeName),r=re(t);if(r===yd){if(n==="ascii"&&s==="String"||n==="string"&&s==="String")return G.String;if(n==="option"&&s==="Option"){const i=fo(e.datatype.typeParameters[0]);return i?G.vector(i):null}}return r===qo&&n==="object"&&s==="ID"?G.Address:null}case"typeParameter":case"unknown":return null}}const sr="CoinWithBalance",Ws=ut("0x2::sui::SUI"),xb=C({type:W(),balance:rc()});async function Ob(e,t,n){const s=new Set,r=new Map;if(!e.sender)throw new Error("Sender must be set to resolve CoinWithBalance");for(const u of e.commands)if(u.$kind==="$Intent"&&u.$Intent.name===sr){const{type:d,balance:h}=ue(xb,u.$Intent.data);d!=="gas"&&h>0n&&s.add(d),r.set(d,(r.get(d)??0n)+h)}const i=new Set;for(const u of e.inputs)u.Object?.ImmOrOwnedObject&&i.add(u.Object.ImmOrOwnedObject.objectId),u.UnresolvedObject?.objectId&&i.add(u.UnresolvedObject.objectId);const a=new Map,o=new Map,c=t.client;if(!c)throw new Error("Client must be provided to build or serialize transactions with CoinWithBalance intents");await Promise.all([...[...s].map(async u=>{const{coins:d,addressBalance:h}=await Nb({coinType:u,balance:r.get(u),client:c,owner:e.sender,usedIds:i});a.set(u,d),o.set(u,h)}),r.has("gas")?await c.core.getBalance({owner:e.sender,coinType:Ws}).then(({balance:u})=>{o.set("gas",BigInt(u.addressBalance))}):null]);const l=new Map;for(const[u,d]of e.commands.entries()){if(d.$kind!=="$Intent"||d.$Intent.name!==sr)continue;const{type:h,balance:f}=d.$Intent.data;if(f===0n){e.replaceCommand(u,nt.MoveCall({target:"0x2::coin::zero",typeArguments:[h==="gas"?Ws:h]}));continue}const m=[];if(o.get(h)>=r.get(h))m.push(nt.MoveCall({target:"0x2::coin::redeem_funds",typeArguments:[h==="gas"?Ws:h],arguments:[e.addInput("withdrawal",ze.FundsWithdrawal({reservation:{$kind:"MaxAmountU64",MaxAmountU64:String(f)},typeArg:{$kind:"Balance",Balance:h==="gas"?Ws:h},withdrawFrom:{$kind:"Sender",Sender:!0}}))]}));else{if(!l.has(h)){const v=o.get(h)??0n,b=h==="gas"?Ws:h;let w,x;h==="gas"?(w={$kind:"GasCoin",GasCoin:!0},x=[]):[w,...x]=a.get(h).map(I=>e.addInput("object",ze.ObjectRef({objectId:I.objectId,digest:I.digest,version:I.version}))),v>0n?(m.push(nt.MoveCall({target:"0x2::coin::redeem_funds",typeArguments:[b],arguments:[e.addInput("withdrawal",ze.FundsWithdrawal({reservation:{$kind:"MaxAmountU64",MaxAmountU64:String(v)},typeArg:{$kind:"Balance",Balance:b},withdrawFrom:{$kind:"Sender",Sender:!0}}))]})),m.push(nt.MergeCoins(w,[{$kind:"Result",Result:u+m.length-1},...x]))):x.length>0&&m.push(nt.MergeCoins(w,x)),l.set(h,w)}m.push(nt.SplitCoins(l.get(h),[e.addInput("pure",ze.Pure(G.u64().serialize(f)))]))}e.replaceCommand(u,m),e.mapArguments((v,b,w)=>w>=u&&w<u+m.length?v:v.$kind==="Result"&&v.Result===u?{$kind:"NestedResult",NestedResult:[u+m.length-1,0]}:v)}return n()}async function Nb({coinType:e,balance:t,client:n,owner:s,usedIds:r}){let i=t;const a=[],o=n.core.getBalance({owner:s,coinType:e}).then(({balance:d})=>(i-=BigInt(d.addressBalance),d)),[c,l]=await Promise.all([u(),o]);if(BigInt(l.balance)<t)throw new Error(`Insufficient balance of ${e} for owner ${s}. Required: ${t}, Available: ${t-i}`);return{coins:c,balance:BigInt(l.coinBalance),addressBalance:BigInt(l.addressBalance),coinBalance:BigInt(l.coinBalance)};async function u(d=null){const{objects:h,hasNextPage:f,cursor:m}=await n.core.listCoins({owner:s,coinType:e,cursor:d});if(await o,i>0n){for(const v of h){if(r.has(v.objectId))continue;const b=BigInt(v.balance);if(a.push(v),i-=b,i<=0)break}if(f)return u(m)}return a}}function br(e){return dt(Object.entries(e).map(([t,n])=>C({[t]:n})))}const bt=br({GasCoin:ne(!0),Input:Ce(Me(),Ze()),Result:Ce(Me(),Ze()),NestedResult:ic([Ce(Me(),Ze()),Ce(Me(),Ze())])}),Rb=C({budget:de(xe),price:de(xe),owner:de(js),payment:de(te(Tn))}),Cb=C({package:rt,module:W(),function:W(),typeArguments:te(W()),arguments:te(bt)}),Ub=C({name:W(),inputs:yn(W(),dt([bt,te(bt)])),data:yn(W(),Cr())}),$b=br({MoveCall:Cb,TransferObjects:C({objects:te(bt),address:bt}),SplitCoins:C({coin:bt,amounts:te(bt)}),MergeCoins:C({destination:bt,sources:te(bt)}),Publish:C({modules:te(Vn),dependencies:te(rt)}),MakeMoveVec:C({type:de(W()),elements:te(bt)}),Upgrade:C({modules:te(Vn),dependencies:te(rt),package:rt,ticket:bt}),$Intent:Ub}),Db=br({Object:br({ImmOrOwnedObject:Tn,SharedObject:C({objectId:rt,initialSharedVersion:xe,mutable:Ln()}),Receiving:Tn}),Pure:C({bytes:Vn}),UnresolvedPure:C({value:Cr()}),UnresolvedObject:C({objectId:rt,version:Fe(de(xe)),digest:Fe(de(W())),initialSharedVersion:Fe(de(xe)),mutable:Fe(de(Ln()))}),FundsWithdrawal:cp}),Mb=br({None:ne(!0),Epoch:xe,ValidDuring:lp}),Bb=C({version:ne(2),sender:vr(js),expiration:vr(Mb),gasData:Rb,inputs:te(Db),commands:te($b),digest:Fe(de(W()))});var jb=class extends Error{},mo=class extends jb{constructor(e,t){super(e,{cause:t?.cause}),this.executionError=t?.executionError}};const Pb=50,Lb=1000n,Vb=5e10;function Fb(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}async function Wb(e,t,n){const s=Fb(t);return await Yb(e,s),await Zb(e,s),t.onlyTransactionKind||await Gb(e,s),await n()}async function Gb(e,t){let n=null;e.gasData.price||(n=(await t.core.getCurrentSystemState()).systemState,e.gasData.price=n.referenceGasPrice),await zb(e,t),await qb(e,t),e.expiration||await Hb(e,t,n)}async function zb(e,t){if(e.gasData.budget)return;const n=await t.core.simulateTransaction({transaction:e.build({overrides:{gasData:{budget:String(Vb),payment:[]}}}),include:{effects:!0}});if(n.$kind==="FailedTransaction"){const o=n.FailedTransaction.status.error??void 0;throw new mo(`Transaction resolution failed: ${o?.message??"Unknown error"}`,{cause:n,executionError:o})}const s=n.Transaction.effects.gasUsed,r=Lb*BigInt(e.gasData.price||1n),i=BigInt(s.computationCost)+r,a=i+BigInt(s.storageCost)-BigInt(s.storageRebate);e.gasData.budget=String(a>i?a:i)}async function qb(e,t){if(!e.gasData.payment){const n=e.gasData.owner??e.sender;if(!n)throw new Error("Either a gas owner or sender must be set to determine gas payment.");const s=re(n);let r=!1,i=0n;e.mapArguments(l=>{if(l.$kind==="GasCoin")r=!0;else if(l.$kind==="Input"){const u=e.inputs[l.Input];if(u.$kind==="FundsWithdrawal"){const d=u.FundsWithdrawal.withdrawFrom.Sender?e.sender:n;d&&re(d)===s&&u.FundsWithdrawal.reservation.$kind==="MaxAmountU64"&&(i+=BigInt(u.FundsWithdrawal.reservation.MaxAmountU64))}}return l});const[a,o]=await Promise.all([r?null:t.core.getBalance({owner:n}),t.core.listCoins({owner:n,coinType:no})]);if(a?.balance.addressBalance&&BigInt(a.balance.addressBalance)>=BigInt(e.gasData.budget||"0")+i){e.gasData.payment=[];return}const c=o.objects.filter(l=>!e.inputs.find(u=>u.Object?.ImmOrOwnedObject?l.objectId===u.Object.ImmOrOwnedObject.objectId:!1)).map(l=>ue(Tn,{objectId:l.objectId,digest:l.digest,version:l.version}));if(!c.length)throw new Error("No valid gas coins found for the transaction.");e.gasData.payment=c}}async function Hb(e,t,n){if(e.expiration||Jb(e))return;const[s,{chainIdentifier:r}]=await Promise.all([n??t.core.getCurrentSystemState().then(a=>a.systemState),t.core.getChainIdentifier()]),i=BigInt(s.epoch);e.expiration={$kind:"ValidDuring",ValidDuring:{minEpoch:String(i),maxEpoch:String(i+1n),minTimestamp:null,maxTimestamp:null,chain:r,nonce:Math.random()*4294967296>>>0}}}function Jb(e){return e.gasData.payment?.length?!0:e.inputs.some(t=>t.Object?.ImmOrOwnedObject||t.UnresolvedObject&&t.UnresolvedObject.version)}async function Zb(e,t){const n=e.inputs.filter(u=>u.UnresolvedObject&&!(u.UnresolvedObject.version||u.UnresolvedObject?.initialSharedVersion)),s=[...new Set(n.map(u=>to(u.UnresolvedObject.objectId)))],r=s.length?ki(s,Pb):[],i=(await Promise.all(r.map(u=>t.core.getObjects({objectIds:u})))).flatMap(u=>u.objects),a=new Map(s.map((u,d)=>[u,i[d]])),o=Array.from(a).filter(([u,d])=>d instanceof Error).map(([u,d])=>d.message);if(o.length)throw new Error(`The following input objects are invalid: ${o.join(", ")}`);const c=i.map(u=>{if(u instanceof Error)throw new Error(`Failed to fetch object: ${u.message}`);const d=u.owner,h=d&&typeof d=="object"?d.$kind==="Shared"?d.Shared.initialSharedVersion:d.$kind==="ConsensusAddressOwner"?d.ConsensusAddressOwner.startVersion:null:null;return{objectId:u.objectId,digest:u.digest,version:u.version,initialSharedVersion:h}}),l=new Map(s.map((u,d)=>[u,c[d]]));for(const[u,d]of e.inputs.entries()){if(!d.UnresolvedObject)continue;let h;const f=re(d.UnresolvedObject.objectId),m=l.get(f);d.UnresolvedObject.initialSharedVersion??m?.initialSharedVersion?h=ze.SharedObjectRef({objectId:f,initialSharedVersion:d.UnresolvedObject.initialSharedVersion||m?.initialSharedVersion,mutable:d.UnresolvedObject.mutable||Kb(e,u)}):Xb(e,u)&&(h=ze.ReceivingRef({objectId:f,digest:d.UnresolvedObject.digest??m?.digest,version:d.UnresolvedObject.version??m?.version})),e.inputs[e.inputs.indexOf(d)]=h??ze.ObjectRef({objectId:f,digest:d.UnresolvedObject.digest??m?.digest,version:d.UnresolvedObject.version??m?.version})}}async function Yb(e,t){const{inputs:n,commands:s}=e,r=[],i=new Set;s.forEach(o=>{if(o.MoveCall){if(o.MoveCall._argumentTypes)return;if(o.MoveCall.arguments.map(c=>c.$kind==="Input"?e.inputs[c.Input]:null).some(c=>c?.UnresolvedPure||c?.UnresolvedObject&&typeof c?.UnresolvedObject.mutable!="boolean")){const c=`${o.MoveCall.package}::${o.MoveCall.module}::${o.MoveCall.function}`;i.add(c),r.push(o.MoveCall)}}});const a=new Map;i.size>0&&await Promise.all([...i].map(async o=>{const[c,l,u]=o.split("::"),{function:d}=await t.core.getMoveFunction({packageId:c,moduleName:l,name:u});a.set(o,d.parameters)})),r.length&&await Promise.all(r.map(async o=>{const c=a.get(`${o.package}::${o.module}::${o.function}`);c&&(o._argumentTypes=c.length>0&&Ab(c.at(-1))?c.slice(0,c.length-1):c)})),s.forEach(o=>{if(!o.MoveCall)return;const c=o.MoveCall,l=`${c.package}::${c.module}::${c.function}`,u=c._argumentTypes;if(u){if(u.length!==o.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${l}`);u.forEach((d,h)=>{const f=c.arguments[h];if(f.$kind!=="Input")return;const m=n[f.Input];if(!m.UnresolvedPure&&!m.UnresolvedObject)return;const v=m.UnresolvedPure?.value??m.UnresolvedObject?.objectId,b=fo(d.body);if(b){f.type="pure",n[n.indexOf(m)]=ze.Pure(b.serialize(v));return}if(typeof v!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(v,null,2)}`);f.type="object";const w=m.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:v}}:m;n[f.Input]=w})}})}function Kb(e,t){let n=!1;return e.getInputUses(t,(s,r)=>{if(r.MoveCall&&r.MoveCall._argumentTypes){const i=r.MoveCall.arguments.indexOf(s);n=r.MoveCall._argumentTypes[i].reference!=="immutable"||n}(r.$kind==="MakeMoveVec"||r.$kind==="MergeCoins"||r.$kind==="SplitCoins"||r.$kind==="TransferObjects")&&(n=!0)}),n}function Xb(e,t){let n=!1;return e.getInputUses(t,(s,r)=>{if(r.MoveCall&&r.MoveCall._argumentTypes){const i=r.MoveCall.arguments.indexOf(s);n=ew(r.MoveCall._argumentTypes[i])||n}}),n}const Qb="0x0000000000000000000000000000000000000000000000000000000000000002::transfer::Receiving";function ew(e){return e.body.$kind!=="datatype"?!1:e.body.datatype.typeName===Qb}function pp(e,t){return!!(e.inputs.some(n=>n.UnresolvedObject||n.UnresolvedPure)||!t.onlyTransactionKind&&(!e.gasData.price||!e.gasData.budget||!e.gasData.payment||e.gasData.payment.length===0&&!e.expiration))}async function tw(e,t,n){return sw(e),pp(e,t)?(nw(t).core?.resolveTransactionPlugin()??Wb)(e,t,async()=>{await pl(e),await n()}):(await pl(e),n())}function pl(e){e.inputs.forEach((t,n)=>{if(t.$kind!=="Object"&&t.$kind!=="Pure"&&t.$kind!=="FundsWithdrawal")throw new Error(`Input at index ${n} has not been resolved. Expected a Pure, Object, or FundsWithdrawal input, but found ${JSON.stringify(t)}`)})}function nw(e){if(!e.client)throw new Error("No sui client passed to Transaction#build, but transaction data was not sufficient to build offline.");return e.client}function sw(e){for(const t of e.commands)switch(t.$kind){case"SplitCoins":t.SplitCoins.amounts.forEach(n=>{hl(n,G.U64,e)});break;case"TransferObjects":hl(t.TransferObjects.address,G.Address,e);break}}function hl(e,t,n){if(e.$kind!=="Input")return;const s=n.inputs[e.Input];s.$kind==="UnresolvedPure"&&(n.inputs[e.Input]=ze.Pure(t.serialize(s.UnresolvedPure.value)))}function rw(e){function t(n){return e(n)}return t.system=n=>{const s=n?.mutable;return t(s!==void 0?ze.SharedObjectRef({objectId:Yc,initialSharedVersion:1,mutable:s}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:Yc,initialSharedVersion:1}})},t.clock=()=>t(ze.SharedObjectRef({objectId:Fg,initialSharedVersion:1,mutable:!1})),t.random=()=>t({$kind:"UnresolvedObject",UnresolvedObject:{objectId:Wg,mutable:!1}}),t.denyList=n=>t({$kind:"UnresolvedObject",UnresolvedObject:{objectId:Gg,mutable:n?.mutable}}),t.option=({type:n,value:s})=>r=>r.moveCall({typeArguments:[n],target:`${yd}::option::${s===null?"none":"some"}`,arguments:s===null?[]:[r.object(s)]}),t}function iw(e){function t(n,s){if(typeof n=="string")return e(tr(n).serialize(s));if(n instanceof Uint8Array||eo(n))return e(n);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return t.u8=n=>e(G.U8.serialize(n)),t.u16=n=>e(G.U16.serialize(n)),t.u32=n=>e(G.U32.serialize(n)),t.u64=n=>e(G.U64.serialize(n)),t.u128=n=>e(G.U128.serialize(n)),t.u256=n=>e(G.U256.serialize(n)),t.bool=n=>e(G.Bool.serialize(n)),t.string=n=>e(G.String.serialize(n)),t.address=n=>e(G.Address.serialize(n)),t.id=t.address,t.vector=(n,s)=>e(G.vector(tr(n)).serialize(s)),t.option=(n,s)=>e(G.option(tr(n)).serialize(s)),t}const aw="2.9.1",ow="/",cw={"Mvr-Source":`@mysten/sui@${aw}`};var lw=class{#e;#t;#s;#r;constructor({cache:e,url:t,pageSize:n=50,overrides:s}){this.#e=e,this.#t=t,this.#s=n,this.#r={packages:s?.packages,types:s?.types},uw(this.#r)}get#i(){return this.#e.readSync(["#mvrPackageDataLoader",this.#t??""],()=>{const e=new Wc(async n=>{if(!this.#t)throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);const s=await this.#o(n);return n.map(r=>s[r]??new Error(`Failed to resolve package: ${r}`))}),t=this.#r?.packages;if(t)for(const[n,s]of Object.entries(t))e.prime(n,s);return e})}get#a(){return this.#e.readSync(["#mvrTypeDataLoader",this.#t??""],()=>{const e=new Wc(async n=>{if(!this.#t)throw new Error(`MVR Api URL is not set for the current client (resolving ${n.join(", ")})`);const s=await this.#u(n);return n.map(r=>s[r]??new Error(`Failed to resolve type: ${r}`))}),t=this.#r?.types;if(t)for(const[n,s]of Object.entries(t))e.prime(n,s);return e})}async#o(e){if(e.length===0)return{};const t=ki(e,this.#s),n={};return await Promise.all(t.map(async s=>{const r=await this.#n("/v1/resolution/bulk",{names:s});if(r?.resolution)for(const i of Object.keys(r?.resolution)){const a=r.resolution[i]?.package_id;a&&(n[i]=a)}})),n}async#u(e){if(e.length===0)return{};const t=ki(e,this.#s),n={};return await Promise.all(t.map(async s=>{const r=await this.#n("/v1/struct-definition/bulk",{types:s});if(r?.resolution)for(const i of Object.keys(r?.resolution)){const a=r.resolution[i]?.type_tag;a&&(n[i]=a)}})),n}async#n(e,t){if(!this.#t)throw new Error("MVR Api URL is not set for the current client");const n=await fetch(`${this.#t}${e}`,{method:"POST",headers:{"Content-Type":"application/json",...cw},body:JSON.stringify(t)});if(!n.ok){const s=await n.json().catch(()=>({}));throw new Error(`Failed to resolve types: ${s?.message}`)}return n.json()}async resolvePackage({package:e}){return Ct(e)?{package:await this.#i.load(e)}:{package:e}}async resolveType({type:e}){if(!Ct(e))return{type:e};const t=[...go(e)],n=await this.#a.loadMany(t),s={};for(let r=0;r<t.length;r++){const i=n[r];if(i instanceof Error)throw i;s[t[r]]=i}return{type:vo(e,s)}}async resolve({types:e=[],packages:t=[]}){const n=new Set;for(const l of e??[])go(l,n);const s=[...n],[r,i]=await Promise.all([s.length>0?this.#a.loadMany(s):[],t.length>0?this.#i.loadMany(t):[]]),a={...this.#r?.types};for(const[l,u]of s.entries()){const d=r[l];if(d instanceof Error)throw d;a[u]=d}const o={};for(const l of e??[])o[l]={type:vo(l,a)};const c={};for(const[l,u]of(t??[]).entries()){const d=this.#r?.packages?.[u]??i[l];if(d instanceof Error)throw d;c[u]={package:d}}return{types:o,packages:c}}};function uw(e){if(e?.packages)for(const[t,n]of Object.entries(e.packages)){if(!Or(t))throw new Error(`Invalid package name: ${t}`);if(!fr(re(n)))throw new Error(`Invalid package ID: ${n}`)}if(e?.types)for(const[t,n]of Object.entries(e.types)){if(Ye(t).typeParams.length>0)throw new Error("Type overrides must be first-level only. If you want to supply generic types, just pass each type individually.");if(!fr(Ye(n).address))throw new Error(`Invalid type: ${n}`)}}function go(e,t=new Set){if(typeof e=="string"&&!Ct(e))return t;const n=hp(e)?e:Ye(e);Ct(n.address)&&t.add(`${n.address}::${n.module}::${n.name}`);for(const s of n.typeParams)go(s,t);return t}function vo(e,t){const n=hp(e)?e:Ye(e),s=t[`${n.address}::${n.module}::${n.name}`];return ut({...n,address:s?s.split("::")[0]:n.address,typeParams:n.typeParams.map(r=>vo(r,t))})}function Ct(e){return e.includes(ow)||e.includes("@")||e.includes(".sui")}function hp(e){return typeof e=="object"&&"address"in e&&"module"in e&&"name"in e&&"typeParams"in e}function dw(e){const t=new Set,n=new Set;for(const s of e.commands)switch(s.$kind){case"MakeMoveVec":s.MakeMoveVec.type&&fl([s.MakeMoveVec.type]).forEach(a=>{n.add(a)});break;case"MoveCall":const r=s.MoveCall,i=r.package.split("::")[0];if(Ct(i)){if(!Or(i))throw new Error(`Invalid package name: ${i}`);t.add(i)}fl(r.typeArguments??[]).forEach(a=>{n.add(a)});break}return{packages:[...t],types:[...n]}}function pw(e,t){for(const n of e.commands){if(n.MakeMoveVec?.type){if(!Ct(n.MakeMoveVec.type))continue;if(!t.types[n.MakeMoveVec.type])throw new Error(`No resolution found for type: ${n.MakeMoveVec.type}`);n.MakeMoveVec.type=t.types[n.MakeMoveVec.type].type}const s=n.MoveCall;if(!s)continue;const r=s.package.split("::"),i=r[0];if(Ct(i)&&!t.packages[i])throw new Error(`No address found for package: ${i}`);Ct(i)&&(r[0]=t.packages[i].package,s.package=r.join("::"));const a=s.typeArguments;if(a){for(let o=0;o<a.length;o++)if(Ct(a[o])){if(!t.types[a[o]])throw new Error(`No resolution found for type: ${a[o]}`);a[o]=t.types[a[o]].type}s.typeArguments=a}}}function fl(e){const t=new Set;for(const n of e)if(Ct(n)){if(!Jm(n))throw new Error(`Invalid type with names: ${n}`);t.add(n)}return t}function hw(){return async(e,t,n)=>{const s=dw(e);if(s.types.length===0&&s.packages.length===0)return n();if(!t.client)throw new Error("Transaction contains MVR names but no client was provided to resolve them. Please pass a client to Transaction#build()");pw(e,await t.client.core.mvr.resolve({types:s.types,packages:s.packages})),await n()}}function Ra(e,t=1/0){const n={$kind:"Result",get Result(){return typeof e=="function"?e():e}},s=[],r=i=>s[i]??={$kind:"NestedResult",get NestedResult(){return[typeof e=="function"?e():e,i]}};return new Proxy(n,{set(){throw new Error("The transaction result is a proxy, and does not support setting properties directly")},get(i,a){if(a in i)return Reflect.get(i,a);if(a===Symbol.iterator)return function*(){let c=0;for(;c<t;)yield r(c),c++};if(typeof a=="symbol")return;const o=parseInt(a,10);if(!(Number.isNaN(o)||o<0))return r(o)}})}const fp=Symbol.for("@mysten/transaction");function fw(e){return!!e&&typeof e=="object"&&e[fp]===!0}var bo=class ei{#e;#t;#s=new Map;#r=[];#i=[];#a=new Set;#o=new Set;#u=new Map;static fromKind(t){const n=new ei;return n.#n=as.fromKindBytes(typeof t=="string"?Q(t):t),n.#r=n.#n.inputs.slice(),n.#i=n.#n.commands.slice(),n.#a=new Set(n.#i.map((s,r)=>r)),n}static from(t){const n=new ei;if(fw(t)?n.#n=as.restore(t.getData()):typeof t!="string"||!t.startsWith("{")?n.#n=as.fromBytes(typeof t=="string"?Q(t):t):n.#n=as.restore(JSON.parse(t)),n.#r=n.#n.inputs.slice(),n.#i=n.#n.commands.slice(),n.#a=new Set(n.#i.map((s,r)=>r)),!n.isPreparedForSerialization({supportedIntents:[sr]}))throw new Error("Transaction has unresolved intents or async thunks. Call `prepareForSerialization` before copying.");return n.#n.commands.some(s=>s.$Intent?.name===sr)&&n.addIntentResolver(sr,Ob),n}addSerializationPlugin(t){this.#e.push(t)}addBuildPlugin(t){this.#t.push(t)}addIntentResolver(t,n){if(this.#s.has(t)&&this.#s.get(t)!==n)throw new Error(`Intent resolver for ${t} already exists`);this.#s.set(t,n)}setSender(t){this.#n.sender=t}setSenderIfNotSet(t){this.#n.sender||(this.#n.sender=t)}setExpiration(t){this.#n.expiration=t?ue(up,t):null}setGasPrice(t){this.#n.gasData.price=String(t)}setGasBudget(t){this.#n.gasData.budget=String(t)}setGasBudgetIfNotSet(t){this.#n.gasData.budget==null&&(this.#n.gasData.budget=String(t))}setGasOwner(t){this.#n.gasData.owner=t}setGasPayment(t){this.#n.gasData.payment=t.map(n=>ue(Tn,n))}#n;getData(){return this.#n.snapshot()}get[fp](){return!0}get pure(){return Object.defineProperty(this,"pure",{enumerable:!1,value:iw(t=>eo(t)?this.#p("pure",{$kind:"Pure",Pure:{bytes:t.toBase64()}}):this.#p("pure",po(cl,t)?ue(cl,t):t instanceof Uint8Array?ze.Pure(t):{$kind:"UnresolvedPure",UnresolvedPure:{value:t}}))}),this.pure}constructor(){this.object=rw(t=>{if(typeof t=="function")return this.object(this.add(t));if(typeof t=="object"&&po(pe,t))return t;const n=xi(t),s=this.#n.inputs.find(r=>n===xi(r));return s?.Object?.SharedObject&&typeof t=="object"&&t.Object?.SharedObject&&(s.Object.SharedObject.mutable=s.Object.SharedObject.mutable||t.Object.SharedObject.mutable),s?{$kind:"Input",Input:this.#n.inputs.indexOf(s),type:"object"}:this.#p("object",typeof t=="string"?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:re(t)}}:t)}),this.#n=new as,this.#t=[],this.#e=[]}get gas(){return{$kind:"GasCoin",GasCoin:!0}}objectRef(...t){return this.object(ze.ObjectRef(...t))}receivingRef(...t){return this.object(ze.ReceivingRef(...t))}sharedObjectRef(...t){return this.object(ze.SharedObjectRef(...t))}#h(){const t=new ei;return t.#n=this.#n,t.#e=this.#e,t.#t=this.#t,t.#s=this.#s,t.#o=this.#o,t.#a=new Set(this.#a),t.#u=this.#u,this.#r.push(t.#r),this.#i.push(t.#i),t}add(t){if(typeof t=="function"){if(this.#u.has(t))return this.#u.get(t);const n=this.#h(),s=t(n);if(!(s&&typeof s=="object"&&"then"in s))return this.#a=n.#a,this.#u.set(t,s),s;const r=this.#d({$kind:"$Intent",$Intent:{name:"AsyncTransactionThunk",inputs:{},data:{resultIndex:this.#n.commands.length,result:null}}});this.#o.add(Promise.resolve(s).then(a=>{r.$Intent.data.result=a}));const i=Ra(()=>r.$Intent.data.resultIndex);return this.#u.set(t,i),i}else this.#d(t);return Ra(this.#n.commands.length-1)}#d(t){const n=this.#n.commands.length;return this.#i.push(t),this.#a.add(n),this.#n.commands.push(t),this.#n.mapCommandArguments(n,s=>{if(s.$kind==="Result"&&!this.#a.has(s.Result))throw new Error(`Result { Result: ${s.Result} } is not available to use in the current transaction`);if(s.$kind==="NestedResult"&&!this.#a.has(s.NestedResult[0]))throw new Error(`Result { NestedResult: [${s.NestedResult[0]}, ${s.NestedResult[1]}] } is not available to use in the current transaction`);if(s.$kind==="Input"&&s.Input>=this.#n.inputs.length)throw new Error(`Input { Input: ${s.Input} } references an input that does not exist in the current transaction`);return s}),t}#p(t,n){return this.#r.push(n),this.#n.addInput(t,n)}#f(t){return eo(t)?this.pure(t):this.#c(t)}#c(t){if(typeof t=="function"){const n=this.add(t);return typeof n=="function"?this.#c(n):ue(pe,n)}return ue(pe,t)}splitCoins(t,n){const s=nt.SplitCoins(typeof t=="string"?this.object(t):this.#c(t),n.map(r=>typeof r=="number"||typeof r=="bigint"||typeof r=="string"?this.pure.u64(r):this.#f(r)));return this.#d(s),Ra(this.#n.commands.length-1,n.length)}mergeCoins(t,n){return this.add(nt.MergeCoins(this.object(t),n.map(s=>this.object(s))))}publish({modules:t,dependencies:n}){return this.add(nt.Publish({modules:t,dependencies:n}))}upgrade({modules:t,dependencies:n,package:s,ticket:r}){return this.add(nt.Upgrade({modules:t,dependencies:n,package:s,ticket:this.object(r)}))}moveCall({arguments:t,...n}){return this.add(nt.MoveCall({...n,arguments:t?.map(s=>this.#f(s))}))}transferObjects(t,n){return this.add(nt.TransferObjects(t.map(s=>this.object(s)),typeof n=="string"?this.pure.address(n):this.#f(n)))}makeMoveVec({type:t,elements:n}){return this.add(nt.MakeMoveVec({type:t,elements:n.map(s=>this.object(s))}))}withdrawal({amount:t,type:n}){const s={$kind:"FundsWithdrawal",FundsWithdrawal:{reservation:{$kind:"MaxAmountU64",MaxAmountU64:String(t)},typeArg:{$kind:"Balance",Balance:n??"0x2::sui::SUI"},withdrawFrom:{$kind:"Sender",Sender:!0}}};return this.#p("object",s)}serialize(){return JSON.stringify(_b(this.#n.snapshot()))}async toJSON(t={}){await this.prepareForSerialization(t);const n=this.isFullyResolved();return JSON.stringify(ue(Bb,n?{...this.#n.snapshot(),digest:this.#n.getDigest()}:this.#n.snapshot()),(s,r)=>typeof r=="bigint"?r.toString():r,2)}async sign(t){const{signer:n,...s}=t,r=await this.build(s);return n.signTransaction(r)}isPreparedForSerialization(t={}){return!(this.#o.size>0||this.#n.commands.some(n=>n.$Intent&&!t.supportedIntents?.includes(n.$Intent.name)))}isFullyResolved(){return!(!this.isPreparedForSerialization()||!this.#n.sender||pp(this.#n,{}))}async build(t={}){return await this.prepareForSerialization(t),await this.#m(t),this.#n.build({onlyTransactionKind:t.onlyTransactionKind})}async getDigest(t={}){return await this.prepareForSerialization(t),await this.#m(t),this.#n.getDigest()}async#m(t){if(!t.onlyTransactionKind&&!this.#n.sender)throw new Error("Missing transaction sender");await this.#l([...this.#t,tw],t)}async#l(t,n){try{const s=r=>{if(r>=t.length)return()=>{};const i=t[r];return async()=>{const a=s(r+1);let o=!1,c=!1;if(await i(this.#n,n,async()=>{if(o)throw new Error(`next() was call multiple times in TransactionPlugin ${r}`);o=!0,await a(),c=!0}),!o)throw new Error(`next() was not called in TransactionPlugin ${r}`);if(!c)throw new Error(`next() was not awaited in TransactionPlugin ${r}`)}};await s(0)()}finally{this.#r=this.#n.inputs.slice(),this.#i=this.#n.commands.slice(),this.#a=new Set(this.#i.map((s,r)=>r))}}async#g(){for(;this.#o.size>0;){const t=Promise.all(this.#o);this.#o.clear(),this.#o.add(t),await t,this.#o.delete(t)}}#v(){const t=this.#n.commands,n=this.#n.inputs,s=this.#i.flat(1/0),r=this.#r.flat(1/0);if(s.length!==t.length)throw new Error("Unexpected number of commands found in transaction data");if(r.length!==n.length)throw new Error("Unexpected number of inputs found in transaction data");const i=s.filter(o=>o.$Intent?.name!=="AsyncTransactionThunk");this.#n.commands=i,this.#n.inputs=r,this.#i=i,this.#r=r,this.#a=new Set(i.map((o,c)=>c));function a(o){const c=t[o];if(c.$Intent?.name==="AsyncTransactionThunk"){const u=c.$Intent.data.result;if(u==null)throw new Error("AsyncTransactionThunk has not been resolved");return a(u.Result)}const l=i.indexOf(c);if(l===-1)throw new Error("Unable to find original index for command");return l}this.#n.mapArguments(o=>{if(o.$kind==="Input"){const c=r.indexOf(n[o.Input]);if(c===-1)throw new Error("Input has not been resolved");return{...o,Input:c}}else if(o.$kind==="Result"){const c=a(o.Result);return{...o,Result:c}}else if(o.$kind==="NestedResult"){const c=a(o.NestedResult[0]);return{...o,NestedResult:[c,o.NestedResult[1]]}}return o});for(const[o,c]of t.entries())if(c.$Intent?.name==="AsyncTransactionThunk")try{c.$Intent.data.resultIndex=a(o)}catch{}}async prepareForSerialization(t){await this.#g(),this.#v();const n=new Set;for(const r of this.#n.commands)r.$Intent&&n.add(r.$Intent.name);const s=[...this.#e];for(const r of n)if(!t.supportedIntents?.includes(r)){if(!this.#s.has(r))throw new Error(`Missing intent resolver for ${r}`);s.push(this.#s.get(r))}s.push(hw()),await this.#l(s,t)}},mw=function(e,t,n,s){if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?s:n==="a"?s.call(e):s?s.value:t.get(e)},gw=function(e,t,n,s,r){if(s==="m")throw new TypeError("Private method is not writable");if(s==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return s==="a"?r.call(e,n):r?r.value=n:t.set(e,n),n},ti;let Gs;const Qi=new Set;function vw(e){rr=void 0,Qi.add(e)}function bw(e){rr=void 0,Qi.delete(e)}const gs={};function ww(){if(Gs||(Gs=Object.freeze({register:ml,get:yw,on:Tw}),typeof window>"u"))return Gs;const e=Object.freeze({register:ml});try{window.addEventListener("wallet-standard:register-wallet",({detail:t})=>t(e))}catch(t){console.error(`wallet-standard:register-wallet event listener could not be added
8
- `,t)}try{window.dispatchEvent(new kw(e))}catch(t){console.error(`wallet-standard:app-ready event could not be dispatched
9
- `,t)}return Gs}function ml(...e){return e=e.filter(t=>!Qi.has(t)),e.length?(e.forEach(t=>vw(t)),gs.register?.forEach(t=>gl(()=>t(...e))),function(){e.forEach(n=>bw(n)),gs.unregister?.forEach(n=>gl(()=>n(...e)))}):()=>{}}let rr;function yw(){return rr||(rr=[...Qi]),rr}function Tw(e,t){return gs[e]?.push(t)||(gs[e]=[t]),function(){gs[e]=gs[e]?.filter(s=>t!==s)}}function gl(e){try{e()}catch(t){console.error(t)}}class kw extends Event{get detail(){return mw(this,ti,"f")}get type(){return"wallet-standard:app-ready"}constructor(t){super("wallet-standard:app-ready",{bubbles:!1,cancelable:!1,composed:!1}),ti.set(this,void 0),gw(this,ti,t,"f")}preventDefault(){throw new Error("preventDefault cannot be called")}stopImmediatePropagation(){throw new Error("stopImmediatePropagation cannot be called")}stopPropagation(){throw new Error("stopPropagation cannot be called")}}ti=new WeakMap;var Qn=function(e,t,n,s){if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?s:n==="a"?s.call(e):s?s.value:t.get(e)},es=function(e,t,n,s,r){if(s==="m")throw new TypeError("Private method is not writable");if(s==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return s==="a"?r.call(e,n):r?r.value=n:t.set(e,n),n},ni,si,ri,ii,ai,oi;class ac{get address(){return Qn(this,ni,"f")}get publicKey(){return Qn(this,si,"f").slice()}get chains(){return Qn(this,ri,"f").slice()}get features(){return Qn(this,ii,"f").slice()}get label(){return Qn(this,ai,"f")}get icon(){return Qn(this,oi,"f")}constructor(t){ni.set(this,void 0),si.set(this,void 0),ri.set(this,void 0),ii.set(this,void 0),ai.set(this,void 0),oi.set(this,void 0),new.target===ac&&Object.freeze(this),es(this,ni,t.address,"f"),es(this,si,t.publicKey.slice(),"f"),es(this,ri,t.chains.slice(),"f"),es(this,ii,t.features.slice(),"f"),es(this,ai,t.label,"f"),es(this,oi,t.icon,"f")}}ni=new WeakMap,si=new WeakMap,ri=new WeakMap,ii=new WeakMap,ai=new WeakMap,oi=new WeakMap;const _w="sui:devnet",Ew="sui:testnet",Sw="sui:localnet",Iw="sui:mainnet",mp=[_w,Ew,Sw,Iw],Aw=["sui:signTransaction","sui:signAndExecuteTransaction","sui:signPersonalMessage"];function gp(e,t,n,s){const r=new ac({address:t,label:n,publicKey:e.getPublicKey().toSuiBytes(),chains:[...mp],features:[...s??Aw]});return{address:t,label:n,signer:e,walletAccount:r}}class xw{constructor(){this.allowAutoSign=!0,this.#e=[],this.#t=new Set}#e;#t;getAccounts(){return[...this.#e]}getAccount(t){return this.#e.find(n=>n.address===t)}onAccountsChanged(t){return this.#t.add(t),()=>{this.#t.delete(t)}}destroy(){this.#e=[],this.#t.clear()}get _accounts(){return this.#e}setInitialAccounts(t){this.#e=t,this.notifyListeners()}addAccount(t){this.#e.push(t),this.notifyListeners()}removeAccountByAddress(t){const n=this.#e.findIndex(s=>s.address===t);return n===-1?!1:(this.#e.splice(n,1),this.notifyListeners(),!0)}replaceAccount(t,n){const s=this.#e.findIndex(r=>r.address===t);return s===-1?!1:(this.#e[s]=n,this.notifyListeners(),!0)}_performRename(t,n){const s=this.getAccount(t);return s?this.replaceAccount(t,gp(s.signer,t,n)):!1}getDefaultLabel(){return`Account ${this.getAccounts().length+1}`}notifyListeners(){const t=this.getAccounts();for(const n of this.#t)n(t)}}const Ow=["sui:signTransaction","sui:signAndExecuteTransaction"],Nw=5e3;class vl extends Error{constructor(){super("Unauthorized"),this.name="AuthError"}}const Ca={ed25519:"ED25519",secp256k1:"Secp256k1",secp256r1:"Secp256r1"};function Rw(e,t){const s=Q(e).slice(1);switch(t){case"ED25519":return new Jv(s);case"Secp256k1":return new Qv(s);case"Secp256r1":return new eb(s);default:throw new Error(`Unsupported key scheme: ${t}`)}}class vp extends Qd{#e;#t;#s;#r;#i;constructor(t){super(),this.#e=t.address,this.#t=t.publicKey,this.#s=t.scheme,this.#r=t.serverOrigin,this.#i=t.authToken??null}async sign(t){throw new Error("CliProxySigner does not support direct digest signing. Transaction signing is handled via the sui CLI.")}getKeyScheme(){return this.#s}getPublicKey(){return this.#t}toSuiAddress(){return this.#e}async signTransaction(t){const n={"Content-Type":"application/json"};this.#i&&(n.Authorization=`Bearer ${this.#i}`);const s=await fetch(`${this.#r}/api/v1/sign-transaction`,{method:"POST",headers:n,body:JSON.stringify({address:this.#e,txBytes:ee(t)})});if(!s.ok){const i=await s.json().catch(()=>({}));throw new Error(`Transaction signing failed: ${i.error??s.statusText}`)}const{suiSignature:r}=await s.json();if(typeof r!="string"||r.length===0)throw new Error("Transaction signing failed: server returned invalid signature");return{bytes:ee(t),signature:r}}async signPersonalMessage(t){throw new Error("Personal message signing is not supported in CLI mode. The sui keytool sign command only supports TransactionData. Use --adapter=webcrypto or --adapter=memory for personal message signing.")}}class wt extends xw{constructor(t){super(),this.id="remote-cli",this.name="Remote CLI Signer",this.allowAutoSign=!1,this.#t=null,this.#s=[],this.#r=null;const n=t?.serverOrigin??"";if(n)try{new URL(n)}catch{throw new Error(`Invalid serverOrigin URL: "${n}"`)}this.#e=n,t?.token&&(this.#t=t.token)}getDefaultLabel(){return`CLI Account ${this.getAccounts().length+1}`}static storageKey(t){const n=typeof location<"u"?location.origin:"unknown";return`dev-wallet:${t}:${n}`}static get STORAGE_KEY(){return wt.storageKey("cli-imported-addresses")}static get TOKEN_KEY(){return wt.storageKey("cli-token")}#e;#t;#s;#r;get isPaired(){return this.#t!==null}async initialize(){if(!this.#t&&typeof localStorage<"u"){const t=localStorage.getItem(wt.TOKEN_KEY);t&&(this.#t=t)}if(this.#t)try{await this.#a(),await this.#o()}catch(t){t instanceof vl?(this.#t=null,typeof localStorage<"u"&&localStorage.removeItem(wt.TOKEN_KEY)):console.warn("[dev-wallet] CLI adapter initialization failed:",t)}}async listAvailableAccounts(){await this.#a();const t=new Set(this._accounts.map(n=>n.address));return this.#s.filter(n=>Ca[n.keyScheme]&&!t.has(n.suiAddress)).map(n=>({address:n.suiAddress,scheme:n.keyScheme,alias:n.alias}))}async importAccount(t){const n=t.address;if(!n)throw new Error("Remote CLI adapter requires an address to import");if(this._accounts.some(a=>a.address===n))throw new Error(`Account ${n} is already imported`);await this.#a();const s=this.#s.find(a=>a.suiAddress===n);if(!s)throw new Error(`Account ${n} not found on server`);const r=Ca[s.keyScheme];if(!r)throw new Error(`Unsupported key scheme: ${s.keyScheme}`);const i=this.#h(s,r,t.label);return this.addAccount(i),this.#n(),i}async removeAccount(t){const n=this.removeAccountByAddress(t);return n&&this.#n(),n}destroy(){this.#s=[],this.#t=null,typeof localStorage<"u"&&(localStorage.removeItem(wt.TOKEN_KEY),localStorage.removeItem(wt.STORAGE_KEY)),super.destroy()}#i(){const t={"Content-Type":"application/json"};return this.#t&&(t.Authorization=`Bearer ${this.#t}`),t}async#a(t=!1){if(!t&&this.#r&&Date.now()-this.#r.time<Nw){this.#s=this.#r.result;return}const n=await fetch(`${this.#e}/api/v1/accounts`,{headers:this.#i()});if(n.status===401||n.status===403)throw new vl;if(!n.ok)throw new Error(`Failed to fetch accounts: ${n.statusText}`);const{accounts:s}=await n.json();this.#s=s,this.#r={time:Date.now(),result:s}}async#o(){const t=this.#u();if(t.length===0)return;const n=new Set(this.getAccounts().map(r=>r.address)),s=[];for(const r of t){if(n.has(r))continue;const i=this.#s.find(o=>o.suiAddress===r);if(!i)continue;const a=Ca[i.keyScheme];a&&s.push(this.#h(i,a))}s.length>0&&this.setInitialAccounts([...this.getAccounts(),...s])}#u(){if(typeof localStorage>"u")return[];try{const t=localStorage.getItem(wt.STORAGE_KEY);if(!t)return[];const n=JSON.parse(t);return Array.isArray(n)?n.filter(s=>typeof s=="string"):[]}catch{return[]}}#n(){if(typeof localStorage>"u")return;const t=this._accounts.map(n=>n.address);localStorage.setItem(wt.STORAGE_KEY,JSON.stringify(t))}#h(t,n,s){const r=Rw(t.publicBase64Key,n),i=new vp({address:t.suiAddress,publicKey:r,scheme:n,serverOrigin:this.#e,authToken:this.#t}),a=s??t.alias??this.getDefaultLabel();return gp(i,t.suiAddress,a,Ow)}}const Cw=Object.freeze(Object.defineProperty({__proto__:null,CliProxySigner:vp,RemoteCliAdapter:wt},Symbol.toStringTag,{value:"Module"})),Oi=new TextEncoder,wr=new TextDecoder;function bp(...e){const t=e.reduce((r,{length:i})=>r+i,0),n=new Uint8Array(t);let s=0;for(const r of e)n.set(r,s),s+=r.length;return n}function ys(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++){const s=e.charCodeAt(n);if(s>127)throw new TypeError("non-ASCII string encountered in encode()");t[n]=s}return t}function Uw(e){if(Uint8Array.prototype.toBase64)return e.toBase64();const t=32768,n=[];for(let s=0;s<e.length;s+=t)n.push(String.fromCharCode.apply(null,e.subarray(s,s+t)));return btoa(n.join(""))}function $w(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);const t=atob(e),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n}function oc(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(typeof e=="string"?e:wr.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=wr.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{return $w(t)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}}function Ua(e){let t=e;return typeof t=="string"&&(t=Oi.encode(t)),Uint8Array.prototype.toBase64?t.toBase64({alphabet:"base64url",omitPadding:!0}):Uw(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}const dn=(e,t="algorithm.name")=>new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`),ts=(e,t)=>e.name===t;function Dw(e){return parseInt(e.name.slice(4),10)}function $a(e,t){if(Dw(e.hash)!==t)throw dn(`SHA-${t}`,"algorithm.hash")}function Mw(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function Bw(e,t){if(t&&!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}function jw(e,t,n){switch(t){case"HS256":case"HS384":case"HS512":{if(!ts(e.algorithm,"HMAC"))throw dn("HMAC");$a(e.algorithm,parseInt(t.slice(2),10));break}case"RS256":case"RS384":case"RS512":{if(!ts(e.algorithm,"RSASSA-PKCS1-v1_5"))throw dn("RSASSA-PKCS1-v1_5");$a(e.algorithm,parseInt(t.slice(2),10));break}case"PS256":case"PS384":case"PS512":{if(!ts(e.algorithm,"RSA-PSS"))throw dn("RSA-PSS");$a(e.algorithm,parseInt(t.slice(2),10));break}case"Ed25519":case"EdDSA":{if(!ts(e.algorithm,"Ed25519"))throw dn("Ed25519");break}case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":{if(!ts(e.algorithm,t))throw dn(t);break}case"ES256":case"ES384":case"ES512":{if(!ts(e.algorithm,"ECDSA"))throw dn("ECDSA");const s=Mw(t);if(e.algorithm.namedCurve!==s)throw dn(s,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}Bw(e,n)}function wp(e,t,...n){if(n=n.filter(Boolean),n.length>2){const s=n.pop();e+=`one of type ${n.join(", ")}, or ${s}.`}else n.length===2?e+=`one of type ${n[0]} or ${n[1]}.`:e+=`of type ${n[0]}.`;return t==null?e+=` Received ${t}`:typeof t=="function"&&t.name?e+=` Received function ${t.name}`:typeof t=="object"&&t!=null&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}const Pw=(e,...t)=>wp("Key must be ",e,...t),yp=(e,t,...n)=>wp(`Key for the ${e} algorithm must be `,t,...n);class qn extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(t,n){super(t,n),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class Ot extends qn{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(t,n,s="unspecified",r="unspecified"){super(t,{cause:{claim:s,reason:r,payload:n}}),this.claim=s,this.reason=r,this.payload=n}}class bl extends qn{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(t,n,s="unspecified",r="unspecified"){super(t,{cause:{claim:s,reason:r,payload:n}}),this.claim=s,this.reason=r,this.payload=n}}class Lw extends qn{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class Rn extends qn{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class ve extends qn{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class cc extends qn{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class Vw extends qn{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(t="signature verification failed",n){super(t,n)}}const Tp=e=>{if(e?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return e instanceof CryptoKey}catch{return!1}},kp=e=>e?.[Symbol.toStringTag]==="KeyObject",_p=e=>Tp(e)||kp(e);function wl(e,t){if(e)throw new TypeError(`${t} can only be called once`)}function yl(e,t,n){try{return oc(e)}catch{throw new n(`Failed to base64url decode the ${t}`)}}const Fw=e=>typeof e=="object"&&e!==null;function yr(e){if(!Fw(e)||Object.prototype.toString.call(e)!=="[object Object]")return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Ep(...e){const t=e.filter(Boolean);if(t.length===0||t.length===1)return!0;let n;for(const s of t){const r=Object.keys(s);if(!n||n.size===0){n=new Set(r);continue}for(const i of r){if(n.has(i))return!1;n.add(i)}}return!0}const lc=e=>yr(e)&&typeof e.kty=="string",Ww=e=>e.kty!=="oct"&&(e.kty==="AKP"&&typeof e.priv=="string"||typeof e.d=="string"),Gw=e=>e.kty!=="oct"&&e.d===void 0&&e.priv===void 0,zw=e=>e.kty==="oct"&&typeof e.k=="string";function Sp(e,t){if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:n}=t.algorithm;if(typeof n!="number"||n<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}}function Ip(e,t){const n=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:n,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:n,name:"RSA-PSS",saltLength:parseInt(e.slice(-3),10)>>3};case"RS256":case"RS384":case"RS512":return{hash:n,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:n,name:"ECDSA",namedCurve:t.namedCurve};case"Ed25519":case"EdDSA":return{name:"Ed25519"};case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":return{name:e};default:throw new Rn(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}async function Ap(e,t,n){if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(Pw(t,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[n])}return jw(t,e,n),t}async function qw(e,t,n){const s=await Ap(e,t,"sign");Sp(e,s);const r=await crypto.subtle.sign(Ip(e,s.algorithm),s,n);return new Uint8Array(r)}async function Hw(e,t,n,s){const r=await Ap(e,t,"verify");Sp(e,r);const i=Ip(e,r.algorithm);try{return await crypto.subtle.verify(i,r,n,s)}catch{return!1}}const Fr='Invalid or unsupported JWK "alg" (Algorithm) Parameter value';function Jw(e){let t,n;switch(e.kty){case"AKP":{switch(e.alg){case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":t={name:e.alg},n=e.priv?["sign"]:["verify"];break;default:throw new Rn(Fr)}break}case"RSA":{switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},n=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},n=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},n=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new Rn(Fr)}break}case"EC":{switch(e.alg){case"ES256":case"ES384":case"ES512":t={name:"ECDSA",namedCurve:{ES256:"P-256",ES384:"P-384",ES512:"P-521"}[e.alg]},n=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},n=e.d?["deriveBits"]:[];break;default:throw new Rn(Fr)}break}case"OKP":{switch(e.alg){case"Ed25519":case"EdDSA":t={name:"Ed25519"},n=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},n=e.d?["deriveBits"]:[];break;default:throw new Rn(Fr)}break}default:throw new Rn('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:n}}async function Zw(e){if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:n}=Jw(e),s={...e};return s.kty!=="AKP"&&delete s.alg,delete s.use,crypto.subtle.importKey("jwk",s,t,e.ext??!(e.d||e.priv),e.key_ops??n)}const ns="given KeyObject instance cannot be used for this algorithm";let Ts;const Tl=async(e,t,n,s=!1)=>{Ts||=new WeakMap;let r=Ts.get(e);if(r?.[n])return r[n];const i=await Zw({...t,alg:n});return s&&Object.freeze(e),r?r[n]=i:Ts.set(e,{[n]:i}),i},Yw=(e,t)=>{Ts||=new WeakMap;let n=Ts.get(e);if(n?.[t])return n[t];const s=e.type==="public",r=!!s;let i;if(e.asymmetricKeyType==="x25519"){switch(t){case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":break;default:throw new TypeError(ns)}i=e.toCryptoKey(e.asymmetricKeyType,r,s?[]:["deriveBits"])}if(e.asymmetricKeyType==="ed25519"){if(t!=="EdDSA"&&t!=="Ed25519")throw new TypeError(ns);i=e.toCryptoKey(e.asymmetricKeyType,r,[s?"verify":"sign"])}switch(e.asymmetricKeyType){case"ml-dsa-44":case"ml-dsa-65":case"ml-dsa-87":{if(t!==e.asymmetricKeyType.toUpperCase())throw new TypeError(ns);i=e.toCryptoKey(e.asymmetricKeyType,r,[s?"verify":"sign"])}}if(e.asymmetricKeyType==="rsa"){let a;switch(t){case"RSA-OAEP":a="SHA-1";break;case"RS256":case"PS256":case"RSA-OAEP-256":a="SHA-256";break;case"RS384":case"PS384":case"RSA-OAEP-384":a="SHA-384";break;case"RS512":case"PS512":case"RSA-OAEP-512":a="SHA-512";break;default:throw new TypeError(ns)}if(t.startsWith("RSA-OAEP"))return e.toCryptoKey({name:"RSA-OAEP",hash:a},r,s?["encrypt"]:["decrypt"]);i=e.toCryptoKey({name:t.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:a},r,[s?"verify":"sign"])}if(e.asymmetricKeyType==="ec"){const o=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(e.asymmetricKeyDetails?.namedCurve);if(!o)throw new TypeError(ns);const c={ES256:"P-256",ES384:"P-384",ES512:"P-521"};c[t]&&o===c[t]&&(i=e.toCryptoKey({name:"ECDSA",namedCurve:o},r,[s?"verify":"sign"])),t.startsWith("ECDH-ES")&&(i=e.toCryptoKey({name:"ECDH",namedCurve:o},r,s?[]:["deriveBits"]))}if(!i)throw new TypeError(ns);return n?n[t]=i:Ts.set(e,{[t]:i}),i};async function xp(e,t){if(e instanceof Uint8Array||Tp(e))return e;if(kp(e)){if(e.type==="secret")return e.export();if("toCryptoKey"in e&&typeof e.toCryptoKey=="function")try{return Yw(e,t)}catch(s){if(s instanceof TypeError)throw s}let n=e.export({format:"jwk"});return Tl(e,n,t)}if(lc(e))return e.k?oc(e.k):Tl(e,e,t,!0);throw new Error("unreachable")}function Op(e,t,n,s,r){if(r.crit!==void 0&&s?.crit===void 0)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!s||s.crit===void 0)return new Set;if(!Array.isArray(s.crit)||s.crit.length===0||s.crit.some(a=>typeof a!="string"||a.length===0))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let i;n!==void 0?i=new Map([...Object.entries(n),...t.entries()]):i=t;for(const a of s.crit){if(!i.has(a))throw new Rn(`Extension Header Parameter "${a}" is not recognized`);if(r[a]===void 0)throw new e(`Extension Header Parameter "${a}" is missing`);if(i.get(a)&&s[a]===void 0)throw new e(`Extension Header Parameter "${a}" MUST be integrity protected`)}return new Set(s.crit)}function Kw(e,t){if(t!==void 0&&(!Array.isArray(t)||t.some(n=>typeof n!="string")))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)}const os=e=>e?.[Symbol.toStringTag],wo=(e,t,n)=>{if(t.use!==void 0){let s;switch(n){case"sign":case"verify":s="sig";break;case"encrypt":case"decrypt":s="enc";break}if(t.use!==s)throw new TypeError(`Invalid key for this operation, its "use" must be "${s}" when present`)}if(t.alg!==void 0&&t.alg!==e)throw new TypeError(`Invalid key for this operation, its "alg" must be "${e}" when present`);if(Array.isArray(t.key_ops)){let s;switch(!0){case(n==="sign"||n==="verify"):case e==="dir":case e.includes("CBC-HS"):s=n;break;case e.startsWith("PBES2"):s="deriveBits";break;case/^A\d{3}(?:GCM)?(?:KW)?$/.test(e):!e.includes("GCM")&&e.endsWith("KW")?s=n==="encrypt"?"wrapKey":"unwrapKey":s=n;break;case(n==="encrypt"&&e.startsWith("RSA")):s="wrapKey";break;case n==="decrypt":s=e.startsWith("RSA")?"unwrapKey":"deriveBits";break}if(s&&t.key_ops?.includes?.(s)===!1)throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${s}" when present`)}return!0},Xw=(e,t,n)=>{if(!(t instanceof Uint8Array)){if(lc(t)){if(zw(t)&&wo(e,t,n))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!_p(t))throw new TypeError(yp(e,t,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if(t.type!=="secret")throw new TypeError(`${os(t)} instances for symmetric algorithms must be of type "secret"`)}},Qw=(e,t,n)=>{if(lc(t))switch(n){case"decrypt":case"sign":if(Ww(t)&&wo(e,t,n))return;throw new TypeError("JSON Web Key for this operation must be a private JWK");case"encrypt":case"verify":if(Gw(t)&&wo(e,t,n))return;throw new TypeError("JSON Web Key for this operation must be a public JWK")}if(!_p(t))throw new TypeError(yp(e,t,"CryptoKey","KeyObject","JSON Web Key"));if(t.type==="secret")throw new TypeError(`${os(t)} instances for asymmetric algorithms must not be of type "secret"`);if(t.type==="public")switch(n){case"sign":throw new TypeError(`${os(t)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw new TypeError(`${os(t)} instances for asymmetric algorithm decryption must be of type "private"`)}if(t.type==="private")switch(n){case"verify":throw new TypeError(`${os(t)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw new TypeError(`${os(t)} instances for asymmetric algorithm encryption must be of type "public"`)}};function Np(e,t,n){switch(e.substring(0,2)){case"A1":case"A2":case"di":case"HS":case"PB":Xw(e,t,n);break;default:Qw(e,t,n)}}async function ey(e,t,n){if(!yr(e))throw new ve("Flattened JWS must be an object");if(e.protected===void 0&&e.header===void 0)throw new ve('Flattened JWS must have either of the "protected" or "header" members');if(e.protected!==void 0&&typeof e.protected!="string")throw new ve("JWS Protected Header incorrect type");if(e.payload===void 0)throw new ve("JWS Payload missing");if(typeof e.signature!="string")throw new ve("JWS Signature missing or incorrect type");if(e.header!==void 0&&!yr(e.header))throw new ve("JWS Unprotected Header incorrect type");let s={};if(e.protected)try{const b=oc(e.protected);s=JSON.parse(wr.decode(b))}catch{throw new ve("JWS Protected Header is invalid")}if(!Ep(s,e.header))throw new ve("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const r={...s,...e.header},i=Op(ve,new Map([["b64",!0]]),n?.crit,s,r);let a=!0;if(i.has("b64")&&(a=s.b64,typeof a!="boolean"))throw new ve('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:o}=r;if(typeof o!="string"||!o)throw new ve('JWS "alg" (Algorithm) Header Parameter missing or invalid');const c=n&&Kw("algorithms",n.algorithms);if(c&&!c.has(o))throw new Lw('"alg" (Algorithm) Header Parameter value not allowed');if(a){if(typeof e.payload!="string")throw new ve("JWS Payload must be a string")}else if(typeof e.payload!="string"&&!(e.payload instanceof Uint8Array))throw new ve("JWS Payload must be a string or an Uint8Array instance");let l=!1;typeof t=="function"&&(t=await t(s,e),l=!0),Np(o,t,"verify");const u=bp(e.protected!==void 0?ys(e.protected):new Uint8Array,ys("."),typeof e.payload=="string"?a?ys(e.payload):Oi.encode(e.payload):e.payload),d=yl(e.signature,"signature",ve),h=await xp(t,o);if(!await Hw(o,h,d,u))throw new Vw;let m;a?m=yl(e.payload,"payload",ve):typeof e.payload=="string"?m=Oi.encode(e.payload):m=e.payload;const v={payload:m};return e.protected!==void 0&&(v.protectedHeader=s),e.header!==void 0&&(v.unprotectedHeader=e.header),l?{...v,key:h}:v}async function ty(e,t,n){if(e instanceof Uint8Array&&(e=wr.decode(e)),typeof e!="string")throw new ve("Compact JWS must be a string or Uint8Array");const{0:s,1:r,2:i,length:a}=e.split(".");if(a!==3)throw new ve("Invalid Compact JWS");const o=await ey({payload:r,protected:s,signature:i},t,n),c={payload:o.payload,protectedHeader:o.protectedHeader};return typeof t=="function"?{...c,key:o.key}:c}const pn=e=>Math.floor(e.getTime()/1e3),Rp=60,Cp=Rp*60,uc=Cp*24,ny=uc*7,sy=uc*365.25,ry=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;function ir(e){const t=ry.exec(e);if(!t||t[4]&&t[1])throw new TypeError("Invalid time period format");const n=parseFloat(t[2]),s=t[3].toLowerCase();let r;switch(s){case"sec":case"secs":case"second":case"seconds":case"s":r=Math.round(n);break;case"minute":case"minutes":case"min":case"mins":case"m":r=Math.round(n*Rp);break;case"hour":case"hours":case"hr":case"hrs":case"h":r=Math.round(n*Cp);break;case"day":case"days":case"d":r=Math.round(n*uc);break;case"week":case"weeks":case"w":r=Math.round(n*ny);break;default:r=Math.round(n*sy);break}return t[1]==="-"||t[4]==="ago"?-r:r}function Sn(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}const kl=e=>e.includes("/")?e.toLowerCase():`application/${e.toLowerCase()}`,iy=(e,t)=>typeof e=="string"?t.includes(e):Array.isArray(e)?t.some(Set.prototype.has.bind(new Set(e))):!1;function ay(e,t,n={}){let s;try{s=JSON.parse(wr.decode(t))}catch{}if(!yr(s))throw new cc("JWT Claims Set must be a top-level JSON object");const{typ:r}=n;if(r&&(typeof e.typ!="string"||kl(e.typ)!==kl(r)))throw new Ot('unexpected "typ" JWT header value',s,"typ","check_failed");const{requiredClaims:i=[],issuer:a,subject:o,audience:c,maxTokenAge:l}=n,u=[...i];l!==void 0&&u.push("iat"),c!==void 0&&u.push("aud"),o!==void 0&&u.push("sub"),a!==void 0&&u.push("iss");for(const m of new Set(u.reverse()))if(!(m in s))throw new Ot(`missing required "${m}" claim`,s,m,"missing");if(a&&!(Array.isArray(a)?a:[a]).includes(s.iss))throw new Ot('unexpected "iss" claim value',s,"iss","check_failed");if(o&&s.sub!==o)throw new Ot('unexpected "sub" claim value',s,"sub","check_failed");if(c&&!iy(s.aud,typeof c=="string"?[c]:c))throw new Ot('unexpected "aud" claim value',s,"aud","check_failed");let d;switch(typeof n.clockTolerance){case"string":d=ir(n.clockTolerance);break;case"number":d=n.clockTolerance;break;case"undefined":d=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:h}=n,f=pn(h||new Date);if((s.iat!==void 0||l)&&typeof s.iat!="number")throw new Ot('"iat" claim must be a number',s,"iat","invalid");if(s.nbf!==void 0){if(typeof s.nbf!="number")throw new Ot('"nbf" claim must be a number',s,"nbf","invalid");if(s.nbf>f+d)throw new Ot('"nbf" claim timestamp check failed',s,"nbf","check_failed")}if(s.exp!==void 0){if(typeof s.exp!="number")throw new Ot('"exp" claim must be a number',s,"exp","invalid");if(s.exp<=f-d)throw new bl('"exp" claim timestamp check failed',s,"exp","check_failed")}if(l){const m=f-s.iat,v=typeof l=="number"?l:ir(l);if(m-d>v)throw new bl('"iat" claim timestamp check failed (too far in the past)',s,"iat","check_failed");if(m<0-d)throw new Ot('"iat" claim timestamp check failed (it should be in the past)',s,"iat","check_failed")}return s}class oy{#e;constructor(t){if(!yr(t))throw new TypeError("JWT Claims Set MUST be an object");this.#e=structuredClone(t)}data(){return Oi.encode(JSON.stringify(this.#e))}get iss(){return this.#e.iss}set iss(t){this.#e.iss=t}get sub(){return this.#e.sub}set sub(t){this.#e.sub=t}get aud(){return this.#e.aud}set aud(t){this.#e.aud=t}set jti(t){this.#e.jti=t}set nbf(t){typeof t=="number"?this.#e.nbf=Sn("setNotBefore",t):t instanceof Date?this.#e.nbf=Sn("setNotBefore",pn(t)):this.#e.nbf=pn(new Date)+ir(t)}set exp(t){typeof t=="number"?this.#e.exp=Sn("setExpirationTime",t):t instanceof Date?this.#e.exp=Sn("setExpirationTime",pn(t)):this.#e.exp=pn(new Date)+ir(t)}set iat(t){t===void 0?this.#e.iat=pn(new Date):t instanceof Date?this.#e.iat=Sn("setIssuedAt",pn(t)):typeof t=="string"?this.#e.iat=Sn("setIssuedAt",pn(new Date)+ir(t)):this.#e.iat=Sn("setIssuedAt",t)}}async function cy(e,t,n){const s=await ty(e,t,n);if(s.protectedHeader.crit?.includes("b64")&&s.protectedHeader.b64===!1)throw new cc("JWTs MUST NOT use unencoded payload");const i={payload:ay(s.protectedHeader,s.payload,n),protectedHeader:s.protectedHeader};return typeof t=="function"?{...i,key:s.key}:i}class ly{#e;#t;#s;constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this.#e=t}setProtectedHeader(t){return wl(this.#t,"setProtectedHeader"),this.#t=t,this}setUnprotectedHeader(t){return wl(this.#s,"setUnprotectedHeader"),this.#s=t,this}async sign(t,n){if(!this.#t&&!this.#s)throw new ve("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!Ep(this.#t,this.#s))throw new ve("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const s={...this.#t,...this.#s},r=Op(ve,new Map([["b64",!0]]),n?.crit,this.#t,s);let i=!0;if(r.has("b64")&&(i=this.#t.b64,typeof i!="boolean"))throw new ve('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:a}=s;if(typeof a!="string"||!a)throw new ve('JWS "alg" (Algorithm) Header Parameter missing or invalid');Np(a,t,"sign");let o,c;i?(o=Ua(this.#e),c=ys(o)):(c=this.#e,o="");let l,u;this.#t?(l=Ua(JSON.stringify(this.#t)),u=ys(l)):(l="",u=new Uint8Array);const d=bp(u,ys("."),c),h=await xp(t,a),f=await qw(a,h,d),m={signature:Ua(f),payload:o};return this.#s&&(m.header=this.#s),this.#t&&(m.protected=l),m}}class uy{#e;constructor(t){this.#e=new ly(t)}setProtectedHeader(t){return this.#e.setProtectedHeader(t),this}async sign(t,n){const s=await this.#e.sign(t,n);if(s.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${s.protected}.${s.payload}.${s.signature}`}}class dy{#e;#t;constructor(t={}){this.#t=new oy(t)}setIssuer(t){return this.#t.iss=t,this}setSubject(t){return this.#t.sub=t,this}setAudience(t){return this.#t.aud=t,this}setJti(t){return this.#t.jti=t,this}setNotBefore(t){return this.#t.nbf=t,this}setExpirationTime(t){return this.#t.exp=t,this}setIssuedAt(t){return this.#t.iat=t,this}setProtectedHeader(t){return this.#e=t,this}async sign(t,n){const s=new uy(this.#t.data());if(s.setProtectedHeader(this.#e),Array.isArray(this.#e?.crit)&&this.#e.crit.includes("b64")&&this.#e.b64===!1)throw new cc("JWTs MUST NOT use unencoded payload");return s.sign(t,n)}}const py=C({address:W(),publicKey:W(),label:Fe(W())}),hy=C({exp:Me(),iat:Me(),iss:W(),aud:W(),payload:C({accounts:te(py)})});async function fy(e,t){return await new dy({payload:e}).setProtectedHeader({alg:"HS256"}).setExpirationTime(t.expirationTime).setIssuedAt().setIssuer(t.issuer).setAudience(t.audience).sign(t.secretKey)}async function my(e,t){const n=await cy(e,t,{algorithms:["HS256"]});return ue(hy,n.payload)}const Ni=Ai(()=>dt([W(),Me(),Ln(),ip(),yn(W(),Ni),te(Ni)])),gy=ap("type",[C({type:ne("connect")}),C({type:ne("sign-transaction"),transaction:W("`transaction` is required"),address:W("`address` is required"),chain:W("`chain` is required"),session:W("`session` is required")}),C({type:ne("sign-and-execute-transaction"),transaction:W("`transaction` is required"),address:W("`address` is required"),chain:W("`chain` is required"),session:W("`session` is required")}),C({type:ne("sign-personal-message"),chain:W("`chain` is required"),message:W("`message` is required"),address:W("`address` is required"),session:W("`session` is required")})]),_l=C({version:ne("1"),requestId:Ce(W("`requestId` is required"),rp()),appUrl:Ce(W(),sp("`appUrl` must be a valid URL")),appName:W("`appName` is required"),payload:gy,metadata:Fe(yn(W(),Ni)),extraRequestOptions:Fe(yn(W(),Ni))});var vy=class yo{#e;#t=!1;constructor(t){if(typeof window>"u"||!window.opener)throw new Error("This functionality requires a window opened through `window.open`. `window.opener` is not available.");this.#e=t}static fromPayload(t){return new yo(ue(_l,t))}static fromUrlHash(t=window.location.hash.slice(1)){const n=atob(decodeURIComponent(t));return new yo(ue(_l,JSON.parse(n)))}getRequestData(){return this.#e}async verifyJwtSession(t){if(!("session"in this.#e.payload))return null;const n=await my(this.#e.payload.session,t);if(n.aud!==new URL(this.#e.appUrl).origin)throw new Error("App and session origin mismatch");const s=this.#e.payload.address;if(!n.payload.accounts.find(r=>r.address===s))throw new Error("Requested account not found in session");return n}sendMessage(t){if(this.#t)throw new Error("sendMessage() can only be called once");this.#t=!0,window.opener.postMessage({id:this.#e.requestId,source:"web-wallet-channel",payload:t,version:this.#e.version},this.#e.appUrl)}close(t){t&&this.sendMessage(t),window.close()}};function ea(e){return e.split(":")[1]}const by="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0Ij4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0id2FsbGV0R3JhZCIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMTAwJSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0eWxlPSJzdG9wLWNvbG9yOiM2MzY2RjEiIC8+CiAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3R5bGU9InN0b3AtY29sb3I6IzI1NjNFQiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImZsYXBHcmFkIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3R5bGU9InN0b3AtY29sb3I6IzgxOENGOCIgLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdHlsZT0ic3RvcC1jb2xvcjojNEY0NkU1IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPCEtLSBTaGFkb3cgLS0+CiAgPHJlY3QgeD0iOSIgeT0iMjEiIHdpZHRoPSI1MCIgaGVpZ2h0PSIzNiIgcng9IjYiIHJ5PSI2IiBmaWxsPSIjMDAwIiBvcGFjaXR5PSIwLjEiIC8+CiAgPCEtLSBXYWxsZXQgYm9keSAtLT4KICA8cmVjdCB4PSI2IiB5PSIxOCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjM2IiByeD0iNiIgcnk9IjYiIGZpbGw9InVybCgjd2FsbGV0R3JhZCkiIC8+CiAgPCEtLSBGbGFwIC0tPgogIDxwYXRoIGQ9Ik02IDI2IEw2IDIyIEM2IDE1IDggMTIgMTQgMTIgTDQ2IDEyIEM1MiAxMiA1NiAxNSA1NiAyMiBMNTYgMjYgWiIgZmlsbD0idXJsKCNmbGFwR3JhZCkiIC8+CiAgPCEtLSBDbGFzcCAtLT4KICA8cmVjdCB4PSI0MiIgeT0iMzAiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjQiIHJ5PSI0IiBmaWxsPSIjNDMzOENBIiAvPgogIDwhLS0gR29sZCBjb2luIGluIGNsYXNwIC0tPgogIDxjaXJjbGUgY3g9IjQ4IiBjeT0iMzYiIHI9IjMuNSIgZmlsbD0iI0ZDRDM0RCIgLz4KICA8Y2lyY2xlIGN4PSI0OCIgY3k9IjM2IiByPSIyIiBmaWxsPSIjRjU5RTBCIiAvPgogIDwhLS0gRW1ib3NzZWQgRFcgdGV4dCAtLT4KICA8dGV4dCB4PSIyNiIgeT0iNDUiIGZvbnQtZmFtaWx5PSJBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBmb250LXdlaWdodD0iOTAwIiBmb250LXNpemU9IjE4IiBmaWxsPSIjMzczMEEzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiBsZXR0ZXItc3BhY2luZz0iMiI+RFc8L3RleHQ+CiAgPHRleHQgeD0iMjYiIHk9IjQ0IiBmb250LWZhbWlseT0iQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIgZm9udC13ZWlnaHQ9IjkwMCIgZm9udC1zaXplPSIxOCIgZmlsbD0iI0M3RDJGRSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGxlIiBsZXR0ZXItc3BhY2luZz0iMiI+RFc8L3RleHQ+Cjwvc3ZnPgo=";async function Up({type:e,signer:t,data:n,client:s}){switch(e){case"sign-personal-message":{if(!(n instanceof Uint8Array))throw new Error("sign-personal-message expects data to be a Uint8Array");const{bytes:r,signature:i}=await t.signPersonalMessage(n);return{type:e,bytes:r,signature:i}}case"sign-transaction":{if(!s)throw new Error("No client provided for sign-transaction");if(typeof n!="string")throw new Error("sign-transaction expects data to be a JSON string");const r=bo.from(n),{bytes:i,signature:a}=await r.sign({client:s,signer:t});return{type:e,bytes:i,signature:a}}case"sign-and-execute-transaction":{if(!s)throw new Error("No client provided for sign-and-execute-transaction");if(typeof n!="string")throw new Error("sign-and-execute-transaction expects data to be a JSON string");const r=bo.from(n),{bytes:i,signature:a}=await r.sign({client:s,signer:t}),o=await s.core.executeTransaction({transaction:Q(i),signatures:[a],include:{effects:!0}}),c=o.Transaction??o.FailedTransaction;if(!c)throw new Error("Transaction execution returned empty result");if(!c.status.success)throw new Error(c.status.error?.message??"Transaction execution failed");return{type:e,bytes:i,signature:a,digest:c.digest,effects:c.effects?.bcs?ee(c.effects.bcs):""}}}}function wy(e){if(!e.hash&&typeof window>"u")throw new Error("parseWalletRequest requires either options.hash or a browser environment with window.location");const t=e.hash??window.location.hash.slice(1),n=vy.fromUrlHash(t),s=n.getRequestData(),r=s.payload;if(r.type==="connect")return{type:"connect",appName:s.appName,appUrl:s.appUrl,async approve(a){const o=e.adapters.flatMap(d=>d.getAccounts().map(h=>({address:h.address,publicKey:ee(h.signer.getPublicKey().toSuiBytes()),label:h.label}))),c=a?.selectedAddresses,l=c?o.filter(d=>c.includes(d.address)):o,u=await fy({accounts:l},{secretKey:e.jwtSecretKey,expirationTime:"7d",issuer:"dev-wallet",audience:new URL(s.appUrl).origin});n.sendMessage({type:"resolve",data:{type:"connect",session:u}})},reject(a){n.sendMessage({type:"reject",reason:a})}};const i=r.type==="sign-personal-message"?Q(r.message):r.transaction;return{type:r.type,appName:s.appName,appUrl:s.appUrl,address:r.address,chain:r.chain,data:i,async approve(){try{await n.verifyJwtSession(e.jwtSecretKey)}catch(o){n.sendMessage({type:"reject",reason:`Session verification failed: ${o instanceof Error?o.message:String(o)}`});return}let a;for(const o of e.adapters)if(a=o.getAccount(r.address),a)break;if(!a){n.sendMessage({type:"reject",reason:`Account ${r.address} not found`});return}try{const o=r.chain?ea(r.chain):void 0,c=o?e.getClient?.(o):void 0,l=await Up({type:r.type,signer:a.signer,data:i,client:c}),u=l.type==="sign-and-execute-transaction"?{...l,effects:l.effects??""}:l;n.sendMessage({type:"resolve",data:u})}catch(o){n.sendMessage({type:"reject",reason:o instanceof Error?o.message:String(o)})}},reject(a){n.sendMessage({type:"reject",reason:a})}}}var yy=class $p{#e;#t;constructor({prefix:t,cache:n}={}){this.#e=t??[],this.#t=n??new Map}read(t,n){const s=[this.#e,...t].join(":");if(this.#t.has(s))return this.#t.get(s);const r=n();return this.#t.set(s,r),typeof r=="object"&&r!==null&&"then"in r?Promise.resolve(r).then(i=>(this.#t.set(s,i),i)).catch(i=>{throw this.#t.delete(s),i}):r}readSync(t,n){const s=[this.#e,...t].join(":");if(this.#t.has(s))return this.#t.get(s);const r=n();return this.#t.set(s,r),r}clear(t){const n=[...this.#e,...t??[]].join(":");if(!n){this.#t.clear();return}for(const s of this.#t.keys())s.startsWith(n)&&this.#t.delete(s)}scope(t){return new $p({prefix:[...this.#e,...Array.isArray(t)?t:[t]],cache:this.#t})}},Dp=class{constructor({network:e,base:t,cache:n=t?.cache??new yy}){this.network=e,this.base=t??this,this.cache=n}$extend(...e){const t=Object.fromEntries(e.map(s=>[s.name,s.register(this)])),n=new Map;return new Proxy(this,{get(s,r,i){if(typeof r=="string"&&r in t)return t[r];const a=Reflect.get(s,r,i);return typeof a=="function"?r==="$extend"?a.bind(i):(n.has(r)||n.set(r,a.bind(s)),n.get(r)):a}})}};const Ty={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};var ky=class extends Dp{constructor(e){super(e),this.core=this,this.mvr=new lw({cache:this.cache.scope("core.mvr"),url:e.mvr?.url??Ty[this.network],pageSize:e.mvr?.pageSize,overrides:e.mvr?.overrides})}async getObject(e){const{objectId:t}=e,{objects:[n]}=await this.getObjects({objectIds:[t],signal:e.signal,include:e.include});if(n instanceof Error)throw n;return{object:n}}async getDynamicField(e){const t=mr.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),n=Vg(e.parentId,t,e.name.bcs),{objects:[s]}=await this.getObjects({objectIds:[n],signal:e.signal,include:{previousTransaction:!0,content:!0}});if(s instanceof Error)throw s;const r=Ye(s.type),i=await s.content,a=r.typeParams[0],o=typeof a!="string"&&a.module==="dynamic_object_field"&&a.name==="Wrapper",c=i.slice(Ms+e.name.bcs.length),l=typeof r.typeParams[1]=="string"?r.typeParams[1]:ut(r.typeParams[1]);return{dynamicField:{$kind:o?"DynamicObject":"DynamicField",fieldId:s.objectId,digest:s.digest,version:s.version,type:s.type,previousTransaction:s.previousTransaction,name:{type:typeof a=="string"?a:ut(a),bcs:e.name.bcs},value:{type:l,bcs:c},childId:o?G.Address.parse(c):void 0}}}async getDynamicObjectField(e){const t=`0x2::dynamic_object_field::Wrapper<${(await this.core.mvr.resolveType({type:e.name.type})).type}>`,{dynamicField:n}=await this.getDynamicField({parentId:e.parentId,name:{type:t,bcs:e.name.bcs},signal:e.signal}),{object:s}=await this.getObject({objectId:n.childId,signal:e.signal,include:e.include});return{object:s}}async waitForTransaction(e){const{signal:t,timeout:n=60*1e3,include:s}=e,r="result"in e&&e.result?(e.result.Transaction??e.result.FailedTransaction).digest:e.digest,i=t?AbortSignal.any([AbortSignal.timeout(n),t]):AbortSignal.timeout(n),a=new Promise((o,c)=>{i.addEventListener("abort",()=>c(i.reason))});for(a.catch(()=>{});;){i.throwIfAborted();try{return await this.getTransaction({digest:r,include:s,signal:i})}catch{await Promise.race([new Promise(o=>setTimeout(o,2e3)),a])}}}async signAndExecuteTransaction({transaction:e,signer:t,additionalSignatures:n=[],...s}){let r;e instanceof Uint8Array?r=e:(e.setSenderIfNotSet(t.toSuiAddress()),r=await e.build({client:this}));const{signature:i}=await t.signTransaction(r);return this.executeTransaction({transaction:r,signatures:[i,...n],...s})}};const _y=new Intl.PluralRules("en-US",{type:"ordinal"}),Ey=new Map([["one","st"],["two","nd"],["few","rd"],["other","th"]]);function Sy(e){return`${e}${Ey.get(_y.select(e))}`}function Iy(e){const{command:t,location:n,abortCode:s,cleverError:r}=e,i=[];if(t!=null?i.push(`MoveAbort in ${Sy(t+1)} command`):i.push("MoveAbort"),r?.constantName){const a=r.value?`'${r.constantName}': ${r.value}`:`'${r.constantName}'`;i.push(a)}else i.push(`abort code: ${s}`);if(n?.package&&n?.module){const a=[`in '${[n.package.startsWith("0x")?n.package:`0x${n.package}`,n.module,n.functionName].filter(Boolean).join("::")}'`];r?.lineNumber!=null?a.push(`(line ${r.lineNumber})`):n.instruction!=null&&a.push(`(instruction ${n.instruction})`),i.push(a.join(" "))}return i.join(", ")}const El=G.struct("MinimalEffectsWithError",{status:Lo});G.enum("MinimalTransactionEffectsWithError",{V1:El,V2:El});const Ay=G.enum("MinimalExecutionStatusNoError",{Success:null,Failed:null}),Sl=G.struct("MinimalEffectsNoError",{status:Ay});G.enum("MinimalTransactionEffectsNoError",{V1:Sl,V2:Sl});function tn(e){let t=typeof e;if(t=="object"){if(Array.isArray(e))return"array";if(e===null)return"null"}return t}function Ri(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}let Zt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ta=[];for(let e=0;e<Zt.length;e++)ta[Zt[e].charCodeAt(0)]=e;ta[45]=Zt.indexOf("+");ta[95]=Zt.indexOf("/");function Mp(e){let t=e.length*3/4;e[e.length-2]=="="?t-=2:e[e.length-1]=="="&&(t-=1);let n=new Uint8Array(t),s=0,r=0,i,a=0;for(let o=0;o<e.length;o++){if(i=ta[e.charCodeAt(o)],i===void 0)switch(e[o]){case"=":r=0;case`
10
- `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:a=i,r=1;break;case 1:n[s++]=a<<2|(i&48)>>4,a=i,r=2;break;case 2:n[s++]=(a&15)<<4|(i&60)>>2,a=i,r=3;break;case 3:n[s++]=(a&3)<<6|i,r=0;break}}if(r==1)throw Error("invalid base64 string.");return n.subarray(0,s)}function Bp(e){let t="",n=0,s,r=0;for(let i=0;i<e.length;i++)switch(s=e[i],n){case 0:t+=Zt[s>>2],r=(s&3)<<4,n=1;break;case 1:t+=Zt[r|s>>4],r=(s&15)<<2,n=2;break;case 2:t+=Zt[r|s>>6],t+=Zt[s&63],n=0;break}return n&&(t+=Zt[r],t+="=",n==1&&(t+="=")),t}var Ci;(function(e){e.symbol=Symbol.for("protobuf-ts/unknown"),e.onRead=(n,s,r,i,a)=>{(t(s)?s[e.symbol]:s[e.symbol]=[]).push({no:r,wireType:i,data:a})},e.onWrite=(n,s,r)=>{for(let{no:i,wireType:a,data:o}of e.list(s))r.tag(i,a).raw(o)},e.list=(n,s)=>{if(t(n)){let r=n[e.symbol];return s?r.filter(i=>i.no==s):r}return[]},e.last=(n,s)=>e.list(n,s).slice(-1)[0];const t=n=>n&&Array.isArray(n[e.symbol])})(Ci||(Ci={}));function xy(e,t){return Object.assign(Object.assign({},e),t)}var ke;(function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"})(ke||(ke={}));function Oy(){let e=0,t=0;for(let s=0;s<28;s+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<s,(r&128)==0)return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(n&15)<<28,t=(n&112)>>4,(n&128)==0)return this.assertBounds(),[e,t];for(let s=3;s<=31;s+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<s,(r&128)==0)return this.assertBounds(),[e,t]}throw new Error("invalid varint")}function Da(e,t,n){for(let i=0;i<28;i=i+7){const a=e>>>i,o=!(!(a>>>7)&&t==0),c=(o?a|128:a)&255;if(n.push(c),!o)return}const s=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n.push((r?s|128:s)&255),!!r){for(let i=3;i<31;i=i+7){const a=t>>>i,o=!!(a>>>7),c=(o?a|128:a)&255;if(n.push(c),!o)return}n.push(t>>>31&1)}}const ci=65536*65536;function jp(e){let t=e[0]=="-";t&&(e=e.slice(1));const n=1e6;let s=0,r=0;function i(a,o){const c=Number(e.slice(a,o));r*=n,s=s*n+c,s>=ci&&(r=r+(s/ci|0),s=s%ci)}return i(-24,-18),i(-18,-12),i(-12,-6),i(-6),[t,s,r]}function To(e,t){if(t>>>0<=2097151)return""+(ci*t+(e>>>0));let n=e&16777215,s=(e>>>24|t<<8)>>>0&16777215,r=t>>16&65535,i=n+s*6777216+r*6710656,a=s+r*8147497,o=r*2,c=1e7;i>=c&&(a+=Math.floor(i/c),i%=c),a>=c&&(o+=Math.floor(a/c),a%=c);function l(u,d){let h=u?String(u):"";return d?"0000000".slice(h.length)+h:h}return l(o,0)+l(a,o)+l(i,1)}function Il(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function Ny(){let e=this.buf[this.pos++],t=e&127;if((e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)==0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!=0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}let le;function Ry(){const e=new DataView(new ArrayBuffer(8));le=globalThis.BigInt!==void 0&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:e}:void 0}Ry();function Pp(e){if(!e)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}const Lp=/^-?[0-9]+$/,Ui=4294967296,Wr=2147483648;class Vp{constructor(t,n){this.lo=t|0,this.hi=n|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let t=this.hi*Ui+(this.lo>>>0);if(!Number.isSafeInteger(t))throw new Error("cannot convert to safe number");return t}}class We extends Vp{static from(t){if(le)switch(typeof t){case"string":if(t=="0")return this.ZERO;if(t=="")throw new Error("string is no integer");t=le.C(t);case"number":if(t===0)return this.ZERO;t=le.C(t);case"bigint":if(!t)return this.ZERO;if(t<le.UMIN)throw new Error("signed value for ulong");if(t>le.UMAX)throw new Error("ulong too large");return le.V.setBigUint64(0,t,!0),new We(le.V.getInt32(0,!0),le.V.getInt32(4,!0))}else switch(typeof t){case"string":if(t=="0")return this.ZERO;if(t=t.trim(),!Lp.test(t))throw new Error("string is no integer");let[n,s,r]=jp(t);if(n)throw new Error("signed value for ulong");return new We(s,r);case"number":if(t==0)return this.ZERO;if(!Number.isSafeInteger(t))throw new Error("number is no integer");if(t<0)throw new Error("signed value for ulong");return new We(t,t/Ui)}throw new Error("unknown value "+typeof t)}toString(){return le?this.toBigInt().toString():To(this.lo,this.hi)}toBigInt(){return Pp(le),le.V.setInt32(0,this.lo,!0),le.V.setInt32(4,this.hi,!0),le.V.getBigUint64(0,!0)}}We.ZERO=new We(0,0);class oe extends Vp{static from(t){if(le)switch(typeof t){case"string":if(t=="0")return this.ZERO;if(t=="")throw new Error("string is no integer");t=le.C(t);case"number":if(t===0)return this.ZERO;t=le.C(t);case"bigint":if(!t)return this.ZERO;if(t<le.MIN)throw new Error("signed long too small");if(t>le.MAX)throw new Error("signed long too large");return le.V.setBigInt64(0,t,!0),new oe(le.V.getInt32(0,!0),le.V.getInt32(4,!0))}else switch(typeof t){case"string":if(t=="0")return this.ZERO;if(t=t.trim(),!Lp.test(t))throw new Error("string is no integer");let[n,s,r]=jp(t);if(n){if(r>Wr||r==Wr&&s!=0)throw new Error("signed long too small")}else if(r>=Wr)throw new Error("signed long too large");let i=new oe(s,r);return n?i.negate():i;case"number":if(t==0)return this.ZERO;if(!Number.isSafeInteger(t))throw new Error("number is no integer");return t>0?new oe(t,t/Ui):new oe(-t,-t/Ui).negate()}throw new Error("unknown value "+typeof t)}isNegative(){return(this.hi&Wr)!==0}negate(){let t=~this.hi,n=this.lo;return n?n=~n+1:t+=1,new oe(n,t)}toString(){if(le)return this.toBigInt().toString();if(this.isNegative()){let t=this.negate();return"-"+To(t.lo,t.hi)}return To(this.lo,this.hi)}toBigInt(){return Pp(le),le.V.setInt32(0,this.lo,!0),le.V.setInt32(4,this.hi,!0),le.V.getBigInt64(0,!0)}}oe.ZERO=new oe(0,0);const Al={readUnknownField:!0,readerFactory:e=>new Uy(e)};function Cy(e){return e?Object.assign(Object.assign({},Al),e):Al}class Uy{constructor(t,n){this.varint64=Oy,this.uint32=Ny,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.textDecoder=n??new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let t=this.uint32(),n=t>>>3,s=t&7;if(n<=0||s<0||s>5)throw new Error("illegal tag: field no "+n+" wire type "+s);return[n,s]}skip(t){let n=this.pos;switch(t){case ke.Varint:for(;this.buf[this.pos++]&128;);break;case ke.Bit64:this.pos+=4;case ke.Bit32:this.pos+=4;break;case ke.LengthDelimited:let s=this.uint32();this.pos+=s;break;case ke.StartGroup:let r;for(;(r=this.tag()[1])!==ke.EndGroup;)this.skip(r);break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)}int64(){return new oe(...this.varint64())}uint64(){return new We(...this.varint64())}sint64(){let[t,n]=this.varint64(),s=-(t&1);return t=(t>>>1|(n&1)<<31)^s,n=n>>>1^s,new oe(t,n)}bool(){let[t,n]=this.varint64();return t!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new We(this.sfixed32(),this.sfixed32())}sfixed64(){return new oe(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let t=this.uint32(),n=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(n,n+t)}string(){return this.textDecoder.decode(this.bytes())}}function K(e,t){if(!e)throw new Error(t)}function $y(e,t){throw new Error("Unexpected object: "+e)}const Dy=34028234663852886e22,My=-34028234663852886e22,By=4294967295,jy=2147483647,Py=-2147483648;function ar(e){if(typeof e!="number")throw new Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>jy||e<Py)throw new Error("invalid int 32: "+e)}function $i(e){if(typeof e!="number")throw new Error("invalid uint 32: "+typeof e);if(!Number.isInteger(e)||e>By||e<0)throw new Error("invalid uint 32: "+e)}function dc(e){if(typeof e!="number")throw new Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>Dy||e<My))throw new Error("invalid float 32: "+e)}const xl={writeUnknownFields:!0,writerFactory:()=>new Vy};function Ly(e){return e?Object.assign(Object.assign({},xl),e):xl}class Vy{constructor(t){this.stack=[],this.textEncoder=t??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let t=0;for(let r=0;r<this.chunks.length;r++)t+=this.chunks[r].length;let n=new Uint8Array(t),s=0;for(let r=0;r<this.chunks.length;r++)n.set(this.chunks[r],s),s+=this.chunks[r].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let t=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(t.byteLength),this.raw(t)}tag(t,n){return this.uint32((t<<3|n)>>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for($i(t);t>127;)this.buf.push(t&127|128),t=t>>>7;return this.buf.push(t),this}int32(t){return ar(t),Il(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let n=this.textEncoder.encode(t);return this.uint32(n.byteLength),this.raw(n)}float(t){dc(t);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,t,!0),this.raw(n)}double(t){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,t,!0),this.raw(n)}fixed32(t){$i(t);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t,!0),this.raw(n)}sfixed32(t){ar(t);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,t,!0),this.raw(n)}sint32(t){return ar(t),t=(t<<1^t>>31)>>>0,Il(t,this.buf),this}sfixed64(t){let n=new Uint8Array(8),s=new DataView(n.buffer),r=oe.from(t);return s.setInt32(0,r.lo,!0),s.setInt32(4,r.hi,!0),this.raw(n)}fixed64(t){let n=new Uint8Array(8),s=new DataView(n.buffer),r=We.from(t);return s.setInt32(0,r.lo,!0),s.setInt32(4,r.hi,!0),this.raw(n)}int64(t){let n=oe.from(t);return Da(n.lo,n.hi,this.buf),this}sint64(t){let n=oe.from(t),s=n.hi>>31,r=n.lo<<1^s,i=(n.hi<<1|n.lo>>>31)^s;return Da(r,i,this.buf),this}uint64(t){let n=We.from(t);return Da(n.lo,n.hi,this.buf),this}}const Ol={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},Nl={ignoreUnknownFields:!1};function Fy(e){return e?Object.assign(Object.assign({},Nl),e):Nl}function Fp(e){return e?Object.assign(Object.assign({},Ol),e):Ol}function Wy(e,t){var n,s;let r=Object.assign(Object.assign({},e),t);return r.typeRegistry=[...(n=e?.typeRegistry)!==null&&n!==void 0?n:[],...(s=t?.typeRegistry)!==null&&s!==void 0?s:[]],r}const Wp=Symbol.for("protobuf-ts/message-type");function Di(e){let t=!1;const n=[];for(let s=0;s<e.length;s++){let r=e.charAt(s);r=="_"?t=!0:/\d/.test(r)?(n.push(r),t=!0):t?(n.push(r.toUpperCase()),t=!1):s==0?n.push(r.toLowerCase()):n.push(r)}return n.join("")}var T;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(T||(T={}));var $t;(function(e){e[e.BIGINT=0]="BIGINT",e[e.STRING=1]="STRING",e[e.NUMBER=2]="NUMBER"})($t||($t={}));var Mi;(function(e){e[e.NO=0]="NO",e[e.PACKED=1]="PACKED",e[e.UNPACKED=2]="UNPACKED"})(Mi||(Mi={}));function Gy(e){var t,n,s,r;return e.localName=(t=e.localName)!==null&&t!==void 0?t:Di(e.name),e.jsonName=(n=e.jsonName)!==null&&n!==void 0?n:Di(e.name),e.repeat=(s=e.repeat)!==null&&s!==void 0?s:Mi.NO,e.opt=(r=e.opt)!==null&&r!==void 0?r:e.repeat||e.oneof?!1:e.kind=="message",e}function zy(e){if(typeof e!="object"||e===null||!e.hasOwnProperty("oneofKind"))return!1;switch(typeof e.oneofKind){case"string":return e[e.oneofKind]===void 0?!1:Object.keys(e).length==2;case"undefined":return Object.keys(e).length==1;default:return!1}}class qy{constructor(t){var n;this.fields=(n=t.fields)!==null&&n!==void 0?n:[]}prepare(){if(this.data)return;const t=[],n=[],s=[];for(let r of this.fields)if(r.oneof)s.includes(r.oneof)||(s.push(r.oneof),t.push(r.oneof),n.push(r.oneof));else switch(n.push(r.localName),r.kind){case"scalar":case"enum":(!r.opt||r.repeat)&&t.push(r.localName);break;case"message":r.repeat&&t.push(r.localName);break;case"map":t.push(r.localName);break}this.data={req:t,known:n,oneofs:Object.values(s)}}is(t,n,s=!1){if(n<0)return!0;if(t==null||typeof t!="object")return!1;this.prepare();let r=Object.keys(t),i=this.data;if(r.length<i.req.length||i.req.some(a=>!r.includes(a))||!s&&r.some(a=>!i.known.includes(a)))return!1;if(n<1)return!0;for(const a of i.oneofs){const o=t[a];if(!zy(o))return!1;if(o.oneofKind===void 0)continue;const c=this.fields.find(l=>l.localName===o.oneofKind);if(!c||!this.field(o[o.oneofKind],c,s,n))return!1}for(const a of this.fields)if(a.oneof===void 0&&!this.field(t[a.localName],a,s,n))return!1;return!0}field(t,n,s,r){let i=n.repeat;switch(n.kind){case"scalar":return t===void 0?n.opt:i?this.scalars(t,n.T,r,n.L):this.scalar(t,n.T,n.L);case"enum":return t===void 0?n.opt:i?this.scalars(t,T.INT32,r):this.scalar(t,T.INT32);case"message":return t===void 0?!0:i?this.messages(t,n.T(),s,r):this.message(t,n.T(),s,r);case"map":if(typeof t!="object"||t===null)return!1;if(r<2)return!0;if(!this.mapKeys(t,n.K,r))return!1;switch(n.V.kind){case"scalar":return this.scalars(Object.values(t),n.V.T,r,n.V.L);case"enum":return this.scalars(Object.values(t),T.INT32,r);case"message":return this.messages(Object.values(t),n.V.T(),s,r)}break}return!0}message(t,n,s,r){return s?n.isAssignable(t,r):n.is(t,r)}messages(t,n,s,r){if(!Array.isArray(t))return!1;if(r<2)return!0;if(s){for(let i=0;i<t.length&&i<r;i++)if(!n.isAssignable(t[i],r-1))return!1}else for(let i=0;i<t.length&&i<r;i++)if(!n.is(t[i],r-1))return!1;return!0}scalar(t,n,s){let r=typeof t;switch(n){case T.UINT64:case T.FIXED64:case T.INT64:case T.SFIXED64:case T.SINT64:switch(s){case $t.BIGINT:return r=="bigint";case $t.NUMBER:return r=="number"&&!isNaN(t);default:return r=="string"}case T.BOOL:return r=="boolean";case T.STRING:return r=="string";case T.BYTES:return t instanceof Uint8Array;case T.DOUBLE:case T.FLOAT:return r=="number"&&!isNaN(t);default:return r=="number"&&Number.isInteger(t)}}scalars(t,n,s,r){if(!Array.isArray(t))return!1;if(s<2)return!0;if(Array.isArray(t)){for(let i=0;i<t.length&&i<s;i++)if(!this.scalar(t[i],n,r))return!1}return!0}mapKeys(t,n,s){let r=Object.keys(t);switch(n){case T.INT32:case T.FIXED32:case T.SFIXED32:case T.SINT32:case T.UINT32:return this.scalars(r.slice(0,s).map(i=>parseInt(i)),n,s);case T.BOOL:return this.scalars(r.slice(0,s).map(i=>i=="true"?!0:i=="false"?!1:i),n,s);default:return this.scalars(r,n,s,$t.STRING)}}}function Tt(e,t){switch(t){case $t.BIGINT:return e.toBigInt();case $t.NUMBER:return e.toNumber();default:return e.toString()}}class Hy{constructor(t){this.info=t}prepare(){var t;if(this.fMap===void 0){this.fMap={};const n=(t=this.info.fields)!==null&&t!==void 0?t:[];for(const s of n)this.fMap[s.name]=s,this.fMap[s.jsonName]=s,this.fMap[s.localName]=s}}assert(t,n,s){if(!t){let r=tn(s);throw(r=="number"||r=="boolean")&&(r=s.toString()),new Error(`Cannot parse JSON ${r} for ${this.info.typeName}#${n}`)}}read(t,n,s){this.prepare();const r=[];for(const[i,a]of Object.entries(t)){const o=this.fMap[i];if(!o){if(!s.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${i}`);continue}const c=o.localName;let l;if(o.oneof){if(a===null&&(o.kind!=="enum"||o.T()[0]!=="google.protobuf.NullValue"))continue;if(r.includes(o.oneof))throw new Error(`Multiple members of the oneof group "${o.oneof}" of ${this.info.typeName} are present in JSON.`);r.push(o.oneof),l=n[o.oneof]={oneofKind:c}}else l=n;if(o.kind=="map"){if(a===null)continue;this.assert(Ri(a),o.name,a);const u=l[c];for(const[d,h]of Object.entries(a)){this.assert(h!==null,o.name+" map value",null);let f;switch(o.V.kind){case"message":f=o.V.T().internalJsonRead(h,s);break;case"enum":if(f=this.enum(o.V.T(),h,o.name,s.ignoreUnknownFields),f===!1)continue;break;case"scalar":f=this.scalar(h,o.V.T,o.V.L,o.name);break}this.assert(f!==void 0,o.name+" map value",h);let m=d;o.K==T.BOOL&&(m=m=="true"?!0:m=="false"?!1:m),m=this.scalar(m,o.K,$t.STRING,o.name).toString(),u[m]=f}}else if(o.repeat){if(a===null)continue;this.assert(Array.isArray(a),o.name,a);const u=l[c];for(const d of a){this.assert(d!==null,o.name,null);let h;switch(o.kind){case"message":h=o.T().internalJsonRead(d,s);break;case"enum":if(h=this.enum(o.T(),d,o.name,s.ignoreUnknownFields),h===!1)continue;break;case"scalar":h=this.scalar(d,o.T,o.L,o.name);break}this.assert(h!==void 0,o.name,a),u.push(h)}}else switch(o.kind){case"message":if(a===null&&o.T().typeName!="google.protobuf.Value"){this.assert(o.oneof===void 0,o.name+" (oneof member)",null);continue}l[c]=o.T().internalJsonRead(a,s,l[c]);break;case"enum":if(a===null)continue;let u=this.enum(o.T(),a,o.name,s.ignoreUnknownFields);if(u===!1)continue;l[c]=u;break;case"scalar":if(a===null)continue;l[c]=this.scalar(a,o.T,o.L,o.name);break}}}enum(t,n,s,r){if(t[0]=="google.protobuf.NullValue"&&K(n===null||n==="NULL_VALUE",`Unable to parse field ${this.info.typeName}#${s}, enum ${t[0]} only accepts null.`),n===null)return 0;switch(typeof n){case"number":return K(Number.isInteger(n),`Unable to parse field ${this.info.typeName}#${s}, enum can only be integral number, got ${n}.`),n;case"string":let i=n;t[2]&&n.substring(0,t[2].length)===t[2]&&(i=n.substring(t[2].length));let a=t[1][i];return typeof a>"u"&&r?!1:(K(typeof a=="number",`Unable to parse field ${this.info.typeName}#${s}, enum ${t[0]} has no value for "${n}".`),a)}K(!1,`Unable to parse field ${this.info.typeName}#${s}, cannot parse enum value from ${typeof n}".`)}scalar(t,n,s,r){let i;try{switch(n){case T.DOUBLE:case T.FLOAT:if(t===null)return 0;if(t==="NaN")return Number.NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(t===""){i="empty string";break}if(typeof t=="string"&&t.trim().length!==t.length){i="extra whitespace";break}if(typeof t!="string"&&typeof t!="number")break;let a=Number(t);if(Number.isNaN(a)){i="not a number";break}if(!Number.isFinite(a)){i="too large or small";break}return n==T.FLOAT&&dc(a),a;case T.INT32:case T.FIXED32:case T.SFIXED32:case T.SINT32:case T.UINT32:if(t===null)return 0;let o;if(typeof t=="number"?o=t:t===""?i="empty string":typeof t=="string"&&(t.trim().length!==t.length?i="extra whitespace":o=Number(t)),o===void 0)break;return n==T.UINT32?$i(o):ar(o),o;case T.INT64:case T.SFIXED64:case T.SINT64:if(t===null)return Tt(oe.ZERO,s);if(typeof t!="number"&&typeof t!="string")break;return Tt(oe.from(t),s);case T.FIXED64:case T.UINT64:if(t===null)return Tt(We.ZERO,s);if(typeof t!="number"&&typeof t!="string")break;return Tt(We.from(t),s);case T.BOOL:if(t===null)return!1;if(typeof t!="boolean")break;return t;case T.STRING:if(t===null)return"";if(typeof t!="string"){i="extra whitespace";break}try{encodeURIComponent(t)}catch(c){c="invalid UTF8";break}return t;case T.BYTES:if(t===null||t==="")return new Uint8Array(0);if(typeof t!="string")break;return Mp(t)}}catch(a){i=a.message}this.assert(!1,r+(i?" - "+i:""),t)}}class Jy{constructor(t){var n;this.fields=(n=t.fields)!==null&&n!==void 0?n:[]}write(t,n){const s={},r=t;for(const i of this.fields){if(!i.oneof){let l=this.field(i,r[i.localName],n);l!==void 0&&(s[n.useProtoFieldName?i.name:i.jsonName]=l);continue}const a=r[i.oneof];if(a.oneofKind!==i.localName)continue;const o=i.kind=="scalar"||i.kind=="enum"?Object.assign(Object.assign({},n),{emitDefaultValues:!0}):n;let c=this.field(i,a[i.localName],o);K(c!==void 0),s[n.useProtoFieldName?i.name:i.jsonName]=c}return s}field(t,n,s){let r;if(t.kind=="map"){K(typeof n=="object"&&n!==null);const i={};switch(t.V.kind){case"scalar":for(const[c,l]of Object.entries(n)){const u=this.scalar(t.V.T,l,t.name,!1,!0);K(u!==void 0),i[c.toString()]=u}break;case"message":const a=t.V.T();for(const[c,l]of Object.entries(n)){const u=this.message(a,l,t.name,s);K(u!==void 0),i[c.toString()]=u}break;case"enum":const o=t.V.T();for(const[c,l]of Object.entries(n)){K(l===void 0||typeof l=="number");const u=this.enum(o,l,t.name,!1,!0,s.enumAsInteger);K(u!==void 0),i[c.toString()]=u}break}(s.emitDefaultValues||Object.keys(i).length>0)&&(r=i)}else if(t.repeat){K(Array.isArray(n));const i=[];switch(t.kind){case"scalar":for(let c=0;c<n.length;c++){const l=this.scalar(t.T,n[c],t.name,t.opt,!0);K(l!==void 0),i.push(l)}break;case"enum":const a=t.T();for(let c=0;c<n.length;c++){K(n[c]===void 0||typeof n[c]=="number");const l=this.enum(a,n[c],t.name,t.opt,!0,s.enumAsInteger);K(l!==void 0),i.push(l)}break;case"message":const o=t.T();for(let c=0;c<n.length;c++){const l=this.message(o,n[c],t.name,s);K(l!==void 0),i.push(l)}break}(s.emitDefaultValues||i.length>0||s.emitDefaultValues)&&(r=i)}else switch(t.kind){case"scalar":r=this.scalar(t.T,n,t.name,t.opt,s.emitDefaultValues);break;case"enum":r=this.enum(t.T(),n,t.name,t.opt,s.emitDefaultValues,s.enumAsInteger);break;case"message":r=this.message(t.T(),n,t.name,s);break}return r}enum(t,n,s,r,i,a){if(t[0]=="google.protobuf.NullValue")return!i&&!r?void 0:null;if(n===void 0){K(r);return}if(!(n===0&&!i&&!r))return K(typeof n=="number"),K(Number.isInteger(n)),a||!t[1].hasOwnProperty(n)?n:t[2]?t[2]+t[1][n]:t[1][n]}message(t,n,s,r){return n===void 0?r.emitDefaultValues?null:void 0:t.internalJsonWrite(n,r)}scalar(t,n,s,r,i){if(n===void 0){K(r);return}const a=i||r;switch(t){case T.INT32:case T.SFIXED32:case T.SINT32:return n===0?a?0:void 0:(ar(n),n);case T.FIXED32:case T.UINT32:return n===0?a?0:void 0:($i(n),n);case T.FLOAT:dc(n);case T.DOUBLE:return n===0?a?0:void 0:(K(typeof n=="number"),Number.isNaN(n)?"NaN":n===Number.POSITIVE_INFINITY?"Infinity":n===Number.NEGATIVE_INFINITY?"-Infinity":n);case T.STRING:return n===""?a?"":void 0:(K(typeof n=="string"),n);case T.BOOL:return n===!1?a?!1:void 0:(K(typeof n=="boolean"),n);case T.UINT64:case T.FIXED64:K(typeof n=="number"||typeof n=="string"||typeof n=="bigint");let o=We.from(n);return o.isZero()&&!a?void 0:o.toString();case T.INT64:case T.SFIXED64:case T.SINT64:K(typeof n=="number"||typeof n=="string"||typeof n=="bigint");let c=oe.from(n);return c.isZero()&&!a?void 0:c.toString();case T.BYTES:return K(n instanceof Uint8Array),n.byteLength?Bp(n):a?"":void 0}}}function ko(e,t=$t.STRING){switch(e){case T.BOOL:return!1;case T.UINT64:case T.FIXED64:return Tt(We.ZERO,t);case T.INT64:case T.SFIXED64:case T.SINT64:return Tt(oe.ZERO,t);case T.DOUBLE:case T.FLOAT:return 0;case T.BYTES:return new Uint8Array(0);case T.STRING:return"";default:return 0}}class Zy{constructor(t){this.info=t}prepare(){var t;if(!this.fieldNoToField){const n=(t=this.info.fields)!==null&&t!==void 0?t:[];this.fieldNoToField=new Map(n.map(s=>[s.no,s]))}}read(t,n,s,r){this.prepare();const i=r===void 0?t.len:t.pos+r;for(;t.pos<i;){const[a,o]=t.tag(),c=this.fieldNoToField.get(a);if(!c){let h=s.readUnknownField;if(h=="throw")throw new Error(`Unknown field ${a} (wire type ${o}) for ${this.info.typeName}`);let f=t.skip(o);h!==!1&&(h===!0?Ci.onRead:h)(this.info.typeName,n,a,o,f);continue}let l=n,u=c.repeat,d=c.localName;switch(c.oneof&&(l=l[c.oneof],l.oneofKind!==d&&(l=n[c.oneof]={oneofKind:d})),c.kind){case"scalar":case"enum":let h=c.kind=="enum"?T.INT32:c.T,f=c.kind=="scalar"?c.L:void 0;if(u){let b=l[d];if(o==ke.LengthDelimited&&h!=T.STRING&&h!=T.BYTES){let w=t.uint32()+t.pos;for(;t.pos<w;)b.push(this.scalar(t,h,f))}else b.push(this.scalar(t,h,f))}else l[d]=this.scalar(t,h,f);break;case"message":if(u){let b=l[d],w=c.T().internalBinaryRead(t,t.uint32(),s);b.push(w)}else l[d]=c.T().internalBinaryRead(t,t.uint32(),s,l[d]);break;case"map":let[m,v]=this.mapEntry(c,t,s);l[d][m]=v;break}}}mapEntry(t,n,s){let r=n.uint32(),i=n.pos+r,a,o;for(;n.pos<i;){let[c,l]=n.tag();switch(c){case 1:t.K==T.BOOL?a=n.bool().toString():a=this.scalar(n,t.K,$t.STRING);break;case 2:switch(t.V.kind){case"scalar":o=this.scalar(n,t.V.T,t.V.L);break;case"enum":o=n.int32();break;case"message":o=t.V.T().internalBinaryRead(n,n.uint32(),s);break}break;default:throw new Error(`Unknown field ${c} (wire type ${l}) in map entry for ${this.info.typeName}#${t.name}`)}}if(a===void 0){let c=ko(t.K);a=t.K==T.BOOL?c.toString():c}if(o===void 0)switch(t.V.kind){case"scalar":o=ko(t.V.T,t.V.L);break;case"enum":o=0;break;case"message":o=t.V.T().create();break}return[a,o]}scalar(t,n,s){switch(n){case T.INT32:return t.int32();case T.STRING:return t.string();case T.BOOL:return t.bool();case T.DOUBLE:return t.double();case T.FLOAT:return t.float();case T.INT64:return Tt(t.int64(),s);case T.UINT64:return Tt(t.uint64(),s);case T.FIXED64:return Tt(t.fixed64(),s);case T.FIXED32:return t.fixed32();case T.BYTES:return t.bytes();case T.UINT32:return t.uint32();case T.SFIXED32:return t.sfixed32();case T.SFIXED64:return Tt(t.sfixed64(),s);case T.SINT32:return t.sint32();case T.SINT64:return Tt(t.sint64(),s)}}}class Yy{constructor(t){this.info=t}prepare(){if(!this.fields){const t=this.info.fields?this.info.fields.concat():[];this.fields=t.sort((n,s)=>n.no-s.no)}}write(t,n,s){this.prepare();for(const i of this.fields){let a,o,c=i.repeat,l=i.localName;if(i.oneof){const u=t[i.oneof];if(u.oneofKind!==l)continue;a=u[l],o=!0}else a=t[l],o=!1;switch(i.kind){case"scalar":case"enum":let u=i.kind=="enum"?T.INT32:i.T;if(c)if(K(Array.isArray(a)),c==Mi.PACKED)this.packed(n,u,i.no,a);else for(const d of a)this.scalar(n,u,i.no,d,!0);else a===void 0?K(i.opt):this.scalar(n,u,i.no,a,o||i.opt);break;case"message":if(c){K(Array.isArray(a));for(const d of a)this.message(n,s,i.T(),i.no,d)}else this.message(n,s,i.T(),i.no,a);break;case"map":K(typeof a=="object"&&a!==null);for(const[d,h]of Object.entries(a))this.mapEntry(n,s,i,d,h);break}}let r=s.writeUnknownFields;r!==!1&&(r===!0?Ci.onWrite:r)(this.info.typeName,t,n)}mapEntry(t,n,s,r,i){t.tag(s.no,ke.LengthDelimited),t.fork();let a=r;switch(s.K){case T.INT32:case T.FIXED32:case T.UINT32:case T.SFIXED32:case T.SINT32:a=Number.parseInt(r);break;case T.BOOL:K(r=="true"||r=="false"),a=r=="true";break}switch(this.scalar(t,s.K,1,a,!0),s.V.kind){case"scalar":this.scalar(t,s.V.T,2,i,!0);break;case"enum":this.scalar(t,T.INT32,2,i,!0);break;case"message":this.message(t,n,s.V.T(),2,i);break}t.join()}message(t,n,s,r,i){i!==void 0&&(s.internalBinaryWrite(i,t.tag(r,ke.LengthDelimited).fork(),n),t.join())}scalar(t,n,s,r,i){let[a,o,c]=this.scalarInfo(n,r);(!c||i)&&(t.tag(s,a),t[o](r))}packed(t,n,s,r){if(!r.length)return;K(n!==T.BYTES&&n!==T.STRING),t.tag(s,ke.LengthDelimited),t.fork();let[,i]=this.scalarInfo(n);for(let a=0;a<r.length;a++)t[i](r[a]);t.join()}scalarInfo(t,n){let s=ke.Varint,r,i=n===void 0,a=n===0;switch(t){case T.INT32:r="int32";break;case T.STRING:a=i||!n.length,s=ke.LengthDelimited,r="string";break;case T.BOOL:a=n===!1,r="bool";break;case T.UINT32:r="uint32";break;case T.DOUBLE:s=ke.Bit64,r="double";break;case T.FLOAT:s=ke.Bit32,r="float";break;case T.INT64:a=i||oe.from(n).isZero(),r="int64";break;case T.UINT64:a=i||We.from(n).isZero(),r="uint64";break;case T.FIXED64:a=i||We.from(n).isZero(),s=ke.Bit64,r="fixed64";break;case T.BYTES:a=i||!n.byteLength,s=ke.LengthDelimited,r="bytes";break;case T.FIXED32:s=ke.Bit32,r="fixed32";break;case T.SFIXED32:s=ke.Bit32,r="sfixed32";break;case T.SFIXED64:a=i||oe.from(n).isZero(),s=ke.Bit64,r="sfixed64";break;case T.SINT32:r="sint32";break;case T.SINT64:a=i||oe.from(n).isZero(),r="sint64";break}return[s,r,i||a]}}function Ky(e){const t=e.messagePrototype?Object.create(e.messagePrototype):Object.defineProperty({},Wp,{value:e});for(let n of e.fields){let s=n.localName;if(!n.opt)if(n.oneof)t[n.oneof]={oneofKind:void 0};else if(n.repeat)t[s]=[];else switch(n.kind){case"scalar":t[s]=ko(n.T,n.L);break;case"enum":t[s]=0;break;case"map":t[s]={};break}}return t}function Ma(e,t,n){let s,r=n,i;for(let a of e.fields){let o=a.localName;if(a.oneof){const c=r[a.oneof];if(c?.oneofKind==null)continue;if(s=c[o],i=t[a.oneof],i.oneofKind=c.oneofKind,s==null){delete i[o];continue}}else if(s=r[o],i=t,s==null)continue;switch(a.repeat&&(i[o].length=s.length),a.kind){case"scalar":case"enum":if(a.repeat)for(let l=0;l<s.length;l++)i[o][l]=s[l];else i[o]=s;break;case"message":let c=a.T();if(a.repeat)for(let l=0;l<s.length;l++)i[o][l]=c.create(s[l]);else i[o]===void 0?i[o]=c.create(s):c.mergePartial(i[o],s);break;case"map":switch(a.V.kind){case"scalar":case"enum":Object.assign(i[o],s);break;case"message":let l=a.V.T();for(let u of Object.keys(s))i[o][u]=l.create(s[u]);break}break}}}function Xy(e,t,n){if(t===n)return!0;if(!t||!n)return!1;for(let s of e.fields){let r=s.localName,i=s.oneof?t[s.oneof][r]:t[r],a=s.oneof?n[s.oneof][r]:n[r];switch(s.kind){case"enum":case"scalar":let o=s.kind=="enum"?T.INT32:s.T;if(!(s.repeat?Rl(o,i,a):Gp(o,i,a)))return!1;break;case"map":if(!(s.V.kind=="message"?Cl(s.V.T(),Gr(i),Gr(a)):Rl(s.V.kind=="enum"?T.INT32:s.V.T,Gr(i),Gr(a))))return!1;break;case"message":let c=s.T();if(!(s.repeat?Cl(c,i,a):c.equals(i,a)))return!1;break}}return!0}const Gr=Object.values;function Gp(e,t,n){if(t===n)return!0;if(e!==T.BYTES)return!1;let s=t,r=n;if(s.length!==r.length)return!1;for(let i=0;i<s.length;i++)if(s[i]!=r[i])return!1;return!0}function Rl(e,t,n){if(t.length!==n.length)return!1;for(let s=0;s<t.length;s++)if(!Gp(e,t[s],n[s]))return!1;return!0}function Cl(e,t,n){if(t.length!==n.length)return!1;for(let s=0;s<t.length;s++)if(!e.equals(t[s],n[s]))return!1;return!0}const zp=Object.getOwnPropertyDescriptors(Object.getPrototypeOf({})),Qy=zp[Wp]={};class g{constructor(t,n,s){this.defaultCheckDepth=16,this.typeName=t,this.fields=n.map(Gy),this.options=s??{},Qy.value=this,this.messagePrototype=Object.create(null,zp),this.refTypeCheck=new qy(this),this.refJsonReader=new Hy(this),this.refJsonWriter=new Jy(this),this.refBinReader=new Zy(this),this.refBinWriter=new Yy(this)}create(t){let n=Ky(this);return t!==void 0&&Ma(this,n,t),n}clone(t){let n=this.create();return Ma(this,n,t),n}equals(t,n){return Xy(this,t,n)}is(t,n=this.defaultCheckDepth){return this.refTypeCheck.is(t,n,!1)}isAssignable(t,n=this.defaultCheckDepth){return this.refTypeCheck.is(t,n,!0)}mergePartial(t,n){Ma(this,t,n)}fromBinary(t,n){let s=Cy(n);return this.internalBinaryRead(s.readerFactory(t),t.byteLength,s)}fromJson(t,n){return this.internalJsonRead(t,Fy(n))}fromJsonString(t,n){let s=JSON.parse(t);return this.fromJson(s,n)}toJson(t,n){return this.internalJsonWrite(t,Fp(n))}toJsonString(t,n){var s;let r=this.toJson(t,n);return JSON.stringify(r,null,(s=n?.prettySpaces)!==null&&s!==void 0?s:0)}toBinary(t,n){let s=Ly(n);return this.internalBinaryWrite(t,s.writerFactory(),s).finish()}internalJsonRead(t,n,s){if(t!==null&&typeof t=="object"&&!Array.isArray(t)){let r=s??this.create();return this.refJsonReader.read(t,r,n),r}throw new Error(`Unable to parse message ${this.typeName} from JSON ${tn(t)}.`)}internalJsonWrite(t,n){return this.refJsonWriter.write(t,n)}internalBinaryWrite(t,n,s){return this.refBinWriter.write(t,n,s),n}internalBinaryRead(t,n,s,r){let i=r??this.create();return this.refBinReader.read(t,i,s,n),i}}let Ul=(function(e){return e[e.NULL_VALUE=0]="NULL_VALUE",e})({});var e0=class extends g{constructor(){super("google.protobuf.Struct",[{no:1,name:"fields",kind:"map",K:9,V:{kind:"message",T:()=>je}}])}internalJsonWrite(e,t){let n={};for(let[s,r]of Object.entries(e.fields))n[s]=je.toJson(r);return n}internalJsonRead(e,t,n){if(!Ri(e))throw new globalThis.Error("Unable to parse message "+this.typeName+" from JSON "+tn(e)+".");n||(n=this.create());for(let[s,r]of globalThis.Object.entries(e))n.fields[s]=je.fromJson(r);return n}};const $l=new e0;var t0=class extends g{constructor(){super("google.protobuf.Value",[{no:1,name:"null_value",kind:"enum",oneof:"kind",T:()=>["google.protobuf.NullValue",Ul]},{no:2,name:"number_value",kind:"scalar",oneof:"kind",T:1},{no:3,name:"string_value",kind:"scalar",oneof:"kind",T:9},{no:4,name:"bool_value",kind:"scalar",oneof:"kind",T:8},{no:5,name:"struct_value",kind:"message",oneof:"kind",T:()=>$l},{no:6,name:"list_value",kind:"message",oneof:"kind",T:()=>Dl}])}internalJsonWrite(e,t){if(e.kind.oneofKind===void 0)throw new globalThis.Error;switch(e.kind.oneofKind){case void 0:throw new globalThis.Error;case"boolValue":return e.kind.boolValue;case"nullValue":return null;case"numberValue":let n=e.kind.numberValue;if(typeof n=="number"&&!Number.isFinite(n))throw new globalThis.Error;return n;case"stringValue":return e.kind.stringValue;case"listValue":let s=this.fields.find(i=>i.no===6);if(s?.kind!=="message")throw new globalThis.Error;return s.T().toJson(e.kind.listValue);case"structValue":let r=this.fields.find(i=>i.no===5);if(r?.kind!=="message")throw new globalThis.Error;return r.T().toJson(e.kind.structValue)}}internalJsonRead(e,t,n){switch(n||(n=this.create()),typeof e){case"number":n.kind={oneofKind:"numberValue",numberValue:e};break;case"string":n.kind={oneofKind:"stringValue",stringValue:e};break;case"boolean":n.kind={oneofKind:"boolValue",boolValue:e};break;case"object":e===null?n.kind={oneofKind:"nullValue",nullValue:Ul.NULL_VALUE}:globalThis.Array.isArray(e)?n.kind={oneofKind:"listValue",listValue:Dl.fromJson(e)}:n.kind={oneofKind:"structValue",structValue:$l.fromJson(e)};break;default:throw new globalThis.Error("Unable to parse "+this.typeName+" from JSON "+tn(e))}return n}};const je=new t0;var n0=class extends g{constructor(){super("google.protobuf.ListValue",[{no:1,name:"values",kind:"message",repeat:1,T:()=>je}])}internalJsonWrite(e,t){return e.values.map(n=>je.toJson(n))}internalJsonRead(e,t,n){if(!globalThis.Array.isArray(e))throw new globalThis.Error("Unable to parse "+this.typeName+" from JSON "+tn(e));n||(n=this.create());let s=e.map(r=>je.fromJson(r));return n.values.push(...s),n}};const Dl=new n0;let s0=(function(e){return e[e.DATATYPE_KIND_UNKNOWN=0]="DATATYPE_KIND_UNKNOWN",e[e.STRUCT=1]="STRUCT",e[e.ENUM=2]="ENUM",e})({}),tt=(function(e){return e[e.TYPE_UNKNOWN=0]="TYPE_UNKNOWN",e[e.ADDRESS=1]="ADDRESS",e[e.BOOL=2]="BOOL",e[e.U8=3]="U8",e[e.U16=4]="U16",e[e.U32=5]="U32",e[e.U64=6]="U64",e[e.U128=7]="U128",e[e.U256=8]="U256",e[e.VECTOR=9]="VECTOR",e[e.DATATYPE=10]="DATATYPE",e[e.TYPE_PARAMETER=11]="TYPE_PARAMETER",e})({}),li=(function(e){return e[e.VISIBILITY_UNKNOWN=0]="VISIBILITY_UNKNOWN",e[e.PRIVATE=1]="PRIVATE",e[e.PUBLIC=2]="PUBLIC",e[e.FRIEND=3]="FRIEND",e})({}),_o=(function(e){return e[e.REFERENCE_UNKNOWN=0]="REFERENCE_UNKNOWN",e[e.IMMUTABLE=1]="IMMUTABLE",e[e.MUTABLE=2]="MUTABLE",e})({}),vs=(function(e){return e[e.ABILITY_UNKNOWN=0]="ABILITY_UNKNOWN",e[e.COPY=1]="COPY",e[e.DROP=2]="DROP",e[e.STORE=3]="STORE",e[e.KEY=4]="KEY",e})({});var r0=class extends g{constructor(){super("sui.rpc.v2.Package",[{no:1,name:"storage_id",kind:"scalar",opt:!0,T:9},{no:2,name:"original_id",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"modules",kind:"message",repeat:1,T:()=>a0},{no:5,name:"type_origins",kind:"message",repeat:1,T:()=>g0},{no:6,name:"linkage",kind:"message",repeat:1,T:()=>b0}])}};const qp=new r0;var i0=class extends g{constructor(){super("sui.rpc.v2.Module",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"contents",kind:"scalar",opt:!0,T:12},{no:3,name:"datatypes",kind:"message",repeat:1,T:()=>Hp},{no:4,name:"functions",kind:"message",repeat:1,T:()=>Yp}])}};const a0=new i0;var o0=class extends g{constructor(){super("sui.rpc.v2.DatatypeDescriptor",[{no:1,name:"type_name",kind:"scalar",opt:!0,T:9},{no:2,name:"defining_id",kind:"scalar",opt:!0,T:9},{no:3,name:"module",kind:"scalar",opt:!0,T:9},{no:4,name:"name",kind:"scalar",opt:!0,T:9},{no:5,name:"abilities",kind:"enum",repeat:1,T:()=>["sui.rpc.v2.Ability",vs]},{no:6,name:"type_parameters",kind:"message",repeat:1,T:()=>Jp},{no:7,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.DatatypeDescriptor.DatatypeKind",s0]},{no:8,name:"fields",kind:"message",repeat:1,T:()=>Zp},{no:9,name:"variants",kind:"message",repeat:1,T:()=>d0}])}};const Hp=new o0;var c0=class extends g{constructor(){super("sui.rpc.v2.TypeParameter",[{no:1,name:"constraints",kind:"enum",repeat:1,T:()=>["sui.rpc.v2.Ability",vs]},{no:2,name:"is_phantom",kind:"scalar",opt:!0,T:8}])}};const Jp=new c0;var l0=class extends g{constructor(){super("sui.rpc.v2.FieldDescriptor",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"position",kind:"scalar",opt:!0,T:13},{no:3,name:"type",kind:"message",T:()=>pc}])}};const Zp=new l0;var u0=class extends g{constructor(){super("sui.rpc.v2.VariantDescriptor",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"position",kind:"scalar",opt:!0,T:13},{no:3,name:"fields",kind:"message",repeat:1,T:()=>Zp}])}};const d0=new u0;var p0=class extends g{constructor(){super("sui.rpc.v2.OpenSignatureBody",[{no:1,name:"type",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.OpenSignatureBody.Type",tt]},{no:2,name:"type_name",kind:"scalar",opt:!0,T:9},{no:3,name:"type_parameter_instantiation",kind:"message",repeat:1,T:()=>pc},{no:4,name:"type_parameter",kind:"scalar",opt:!0,T:13}])}};const pc=new p0;var h0=class extends g{constructor(){super("sui.rpc.v2.FunctionDescriptor",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:5,name:"visibility",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.FunctionDescriptor.Visibility",li]},{no:6,name:"is_entry",kind:"scalar",opt:!0,T:8},{no:7,name:"type_parameters",kind:"message",repeat:1,T:()=>Jp},{no:8,name:"parameters",kind:"message",repeat:1,T:()=>Ml},{no:9,name:"returns",kind:"message",repeat:1,T:()=>Ml}])}};const Yp=new h0;var f0=class extends g{constructor(){super("sui.rpc.v2.OpenSignature",[{no:1,name:"reference",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.OpenSignature.Reference",_o]},{no:2,name:"body",kind:"message",T:()=>pc}])}};const Ml=new f0;var m0=class extends g{constructor(){super("sui.rpc.v2.TypeOrigin",[{no:1,name:"module_name",kind:"scalar",opt:!0,T:9},{no:2,name:"datatype_name",kind:"scalar",opt:!0,T:9},{no:3,name:"package_id",kind:"scalar",opt:!0,T:9}])}};const g0=new m0;var v0=class extends g{constructor(){super("sui.rpc.v2.Linkage",[{no:1,name:"original_id",kind:"scalar",opt:!0,T:9},{no:2,name:"upgraded_id",kind:"scalar",opt:!0,T:9},{no:3,name:"upgraded_version",kind:"scalar",opt:!0,T:4,L:0}])}};const b0=new v0;let cs=(function(e){return e[e.OWNER_KIND_UNKNOWN=0]="OWNER_KIND_UNKNOWN",e[e.ADDRESS=1]="ADDRESS",e[e.OBJECT=2]="OBJECT",e[e.SHARED=3]="SHARED",e[e.IMMUTABLE=4]="IMMUTABLE",e[e.CONSENSUS_ADDRESS=5]="CONSENSUS_ADDRESS",e})({});var w0=class extends g{constructor(){super("sui.rpc.v2.Owner",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Owner.OwnerKind",cs]},{no:2,name:"address",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}};const Eo=new w0;let wn=(function(e){return e[e.ARGUMENT_KIND_UNKNOWN=0]="ARGUMENT_KIND_UNKNOWN",e[e.GAS=1]="GAS",e[e.INPUT=2]="INPUT",e[e.RESULT=3]="RESULT",e})({});var y0=class extends g{constructor(){super("sui.rpc.v2.Argument",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Argument.ArgumentKind",wn]},{no:2,name:"input",kind:"scalar",opt:!0,T:13},{no:3,name:"result",kind:"scalar",opt:!0,T:13},{no:4,name:"subresult",kind:"scalar",opt:!0,T:13}])}};const Mt=new y0;let kt=(function(e){return e[e.INPUT_KIND_UNKNOWN=0]="INPUT_KIND_UNKNOWN",e[e.PURE=1]="PURE",e[e.IMMUTABLE_OR_OWNED=2]="IMMUTABLE_OR_OWNED",e[e.SHARED=3]="SHARED",e[e.RECEIVING=4]="RECEIVING",e[e.FUNDS_WITHDRAWAL=5]="FUNDS_WITHDRAWAL",e})({}),T0=(function(e){return e[e.MUTABILITY_UNKNOWN=0]="MUTABILITY_UNKNOWN",e[e.IMMUTABLE=1]="IMMUTABLE",e[e.MUTABLE=2]="MUTABLE",e[e.NON_EXCLUSIVE_WRITE=3]="NON_EXCLUSIVE_WRITE",e})({}),Bi=(function(e){return e[e.SOURCE_UNKNOWN=0]="SOURCE_UNKNOWN",e[e.SENDER=1]="SENDER",e[e.SPONSOR=2]="SPONSOR",e})({});var k0=class extends g{constructor(){super("sui.rpc.v2.Input",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Input.InputKind",kt]},{no:2,name:"pure",kind:"scalar",opt:!0,T:12},{no:3,name:"object_id",kind:"scalar",opt:!0,T:9},{no:4,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"digest",kind:"scalar",opt:!0,T:9},{no:6,name:"mutable",kind:"scalar",opt:!0,T:8},{no:7,name:"mutability",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.Input.Mutability",T0]},{no:8,name:"funds_withdrawal",kind:"message",T:()=>S0},{no:1e3,name:"literal",kind:"message",T:()=>je}])}};const _0=new k0;var E0=class extends g{constructor(){super("sui.rpc.v2.FundsWithdrawal",[{no:1,name:"amount",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:3,name:"source",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.FundsWithdrawal.Source",Bi]}])}};const S0=new E0;var I0=class extends g{constructor(){super("google.protobuf.Duration",[{no:1,name:"seconds",kind:"scalar",T:3,L:0},{no:2,name:"nanos",kind:"scalar",T:5}])}internalJsonWrite(e,t){let n=oe.from(e.seconds).toNumber();if(n>315576e6||n<-315576e6)throw new Error("Duration value out of range.");let s=e.seconds.toString();if(n===0&&e.nanos<0&&(s="-"+s),e.nanos!==0){let r=Math.abs(e.nanos).toString();r="0".repeat(9-r.length)+r,r.substring(3)==="000000"?r=r.substring(0,3):r.substring(6)==="000"&&(r=r.substring(0,6)),s+="."+r}return s+"s"}internalJsonRead(e,t,n){if(typeof e!="string")throw new Error("Unable to parse Duration from JSON "+tn(e)+". Expected string.");let s=e.match(/^(-?)([0-9]+)(?:\.([0-9]+))?s/);if(s===null)throw new Error("Unable to parse Duration from JSON string. Invalid format.");n||(n=this.create());let[,r,i,a]=s,o=oe.from(r+i);if(o.toNumber()>315576e6||o.toNumber()<-315576e6)throw new Error("Unable to parse Duration from JSON string. Value out of range.");if(n.seconds=o.toBigInt(),typeof a=="string"){let c=r+a+"0".repeat(9-a.length);n.nanos=parseInt(c)}return n}};const A0=new I0;var x0=class extends g{constructor(){super("sui.rpc.v2.JwkId",[{no:1,name:"iss",kind:"scalar",opt:!0,T:9},{no:2,name:"kid",kind:"scalar",opt:!0,T:9}])}};const Kp=new x0;var O0=class extends g{constructor(){super("sui.rpc.v2.Jwk",[{no:1,name:"kty",kind:"scalar",opt:!0,T:9},{no:2,name:"e",kind:"scalar",opt:!0,T:9},{no:3,name:"n",kind:"scalar",opt:!0,T:9},{no:4,name:"alg",kind:"scalar",opt:!0,T:9}])}};const N0=new O0;var R0=class extends g{constructor(){super("sui.rpc.v2.Bcs",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"value",kind:"scalar",opt:!0,T:12}])}};const it=new R0;var C0=class extends g{constructor(){super("sui.rpc.v2.Object",[{no:1,name:"bcs",kind:"message",T:()=>it},{no:2,name:"object_id",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"digest",kind:"scalar",opt:!0,T:9},{no:5,name:"owner",kind:"message",T:()=>Eo},{no:6,name:"object_type",kind:"scalar",opt:!0,T:9},{no:7,name:"has_public_transfer",kind:"scalar",opt:!0,T:8},{no:8,name:"contents",kind:"message",T:()=>it},{no:9,name:"package",kind:"message",T:()=>qp},{no:10,name:"previous_transaction",kind:"scalar",opt:!0,T:9},{no:11,name:"storage_rebate",kind:"scalar",opt:!0,T:4,L:0},{no:100,name:"json",kind:"message",T:()=>je},{no:101,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:102,name:"display",kind:"message",T:()=>D0}])}};const Fn=new C0;var U0=class extends g{constructor(){super("sui.rpc.v2.ObjectSet",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>Fn}])}};const Xp=new U0;var $0=class extends g{constructor(){super("sui.rpc.v2.Display",[{no:1,name:"output",kind:"message",T:()=>je},{no:2,name:"errors",kind:"message",T:()=>je}])}};const D0=new $0;var M0=class extends g{constructor(){super("google.protobuf.Timestamp",[{no:1,name:"seconds",kind:"scalar",T:3,L:0},{no:2,name:"nanos",kind:"scalar",T:5}])}now(){const e=this.create(),t=Date.now();return e.seconds=oe.from(Math.floor(t/1e3)).toBigInt(),e.nanos=t%1e3*1e6,e}toDate(e){return new Date(oe.from(e.seconds).toNumber()*1e3+Math.ceil(e.nanos/1e6))}fromDate(e){const t=this.create(),n=e.getTime();return t.seconds=oe.from(Math.floor(n/1e3)).toBigInt(),t.nanos=(n%1e3+(n<0&&n%1e3!==0?1e3:0))*1e6,t}internalJsonWrite(e,t){let n=oe.from(e.seconds).toNumber()*1e3;if(n<Date.parse("0001-01-01T00:00:00Z")||n>Date.parse("9999-12-31T23:59:59Z"))throw new Error("Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");if(e.nanos<0)throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");let s="Z";if(e.nanos>0){let r=(e.nanos+1e9).toString().substring(1);r.substring(3)==="000000"?s="."+r.substring(0,3)+"Z":r.substring(6)==="000"?s="."+r.substring(0,6)+"Z":s="."+r+"Z"}return new Date(n).toISOString().replace(".000Z",s)}internalJsonRead(e,t,n){if(typeof e!="string")throw new Error("Unable to parse Timestamp from JSON "+tn(e)+".");let s=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!s)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let r=Date.parse(s[1]+"-"+s[2]+"-"+s[3]+"T"+s[4]+":"+s[5]+":"+s[6]+(s[8]?s[8]:"Z"));if(Number.isNaN(r))throw new Error("Unable to parse Timestamp from JSON. Invalid value.");if(r<Date.parse("0001-01-01T00:00:00Z")||r>Date.parse("9999-12-31T23:59:59Z"))throw new globalThis.Error("Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");return n||(n=this.create()),n.seconds=oe.from(r/1e3).toBigInt(),n.nanos=0,s[7]&&(n.nanos=parseInt("1"+s[7]+"0".repeat(9-s[7].length))-1e9),n}};const Bt=new M0;var B0=class extends g{constructor(){super("sui.rpc.v2.ObjectReference",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"digest",kind:"scalar",opt:!0,T:9}])}};const Qp=new B0;let jn=(function(e){return e[e.TRANSACTION_EXPIRATION_KIND_UNKNOWN=0]="TRANSACTION_EXPIRATION_KIND_UNKNOWN",e[e.NONE=1]="NONE",e[e.EPOCH=2]="EPOCH",e[e.VALID_DURING=3]="VALID_DURING",e})({}),j0=(function(e){return e[e.KIND_UNKNOWN=0]="KIND_UNKNOWN",e[e.PROGRAMMABLE_TRANSACTION=1]="PROGRAMMABLE_TRANSACTION",e[e.CHANGE_EPOCH=2]="CHANGE_EPOCH",e[e.GENESIS=3]="GENESIS",e[e.CONSENSUS_COMMIT_PROLOGUE_V1=4]="CONSENSUS_COMMIT_PROLOGUE_V1",e[e.AUTHENTICATOR_STATE_UPDATE=5]="AUTHENTICATOR_STATE_UPDATE",e[e.END_OF_EPOCH=6]="END_OF_EPOCH",e[e.RANDOMNESS_STATE_UPDATE=7]="RANDOMNESS_STATE_UPDATE",e[e.CONSENSUS_COMMIT_PROLOGUE_V2=8]="CONSENSUS_COMMIT_PROLOGUE_V2",e[e.CONSENSUS_COMMIT_PROLOGUE_V3=9]="CONSENSUS_COMMIT_PROLOGUE_V3",e[e.CONSENSUS_COMMIT_PROLOGUE_V4=10]="CONSENSUS_COMMIT_PROLOGUE_V4",e[e.PROGRAMMABLE_SYSTEM_TRANSACTION=11]="PROGRAMMABLE_SYSTEM_TRANSACTION",e})({}),P0=(function(e){return e[e.KIND_UNKNOWN=0]="KIND_UNKNOWN",e[e.CHANGE_EPOCH=1]="CHANGE_EPOCH",e[e.AUTHENTICATOR_STATE_CREATE=2]="AUTHENTICATOR_STATE_CREATE",e[e.AUTHENTICATOR_STATE_EXPIRE=3]="AUTHENTICATOR_STATE_EXPIRE",e[e.RANDOMNESS_STATE_CREATE=4]="RANDOMNESS_STATE_CREATE",e[e.DENY_LIST_STATE_CREATE=5]="DENY_LIST_STATE_CREATE",e[e.BRIDGE_STATE_CREATE=6]="BRIDGE_STATE_CREATE",e[e.BRIDGE_COMMITTEE_INIT=7]="BRIDGE_COMMITTEE_INIT",e[e.STORE_EXECUTION_TIME_OBSERVATIONS=8]="STORE_EXECUTION_TIME_OBSERVATIONS",e[e.ACCUMULATOR_ROOT_CREATE=9]="ACCUMULATOR_ROOT_CREATE",e[e.COIN_REGISTRY_CREATE=10]="COIN_REGISTRY_CREATE",e[e.DISPLAY_REGISTRY_CREATE=11]="DISPLAY_REGISTRY_CREATE",e[e.ADDRESS_ALIAS_STATE_CREATE=12]="ADDRESS_ALIAS_STATE_CREATE",e[e.WRITE_ACCUMULATOR_STORAGE_COST=13]="WRITE_ACCUMULATOR_STORAGE_COST",e})({}),L0=(function(e){return e[e.EXECUTION_TIME_OBSERVATION_KIND_UNKNOWN=0]="EXECUTION_TIME_OBSERVATION_KIND_UNKNOWN",e[e.MOVE_ENTRY_POINT=1]="MOVE_ENTRY_POINT",e[e.TRANSFER_OBJECTS=2]="TRANSFER_OBJECTS",e[e.SPLIT_COINS=3]="SPLIT_COINS",e[e.MERGE_COINS=4]="MERGE_COINS",e[e.PUBLISH=5]="PUBLISH",e[e.MAKE_MOVE_VECTOR=6]="MAKE_MOVE_VECTOR",e[e.UPGRADE=7]="UPGRADE",e})({});var V0=class extends g{constructor(){super("sui.rpc.v2.Transaction",[{no:1,name:"bcs",kind:"message",T:()=>it},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:5},{no:4,name:"kind",kind:"message",T:()=>H0},{no:5,name:"sender",kind:"scalar",opt:!0,T:9},{no:6,name:"gas_payment",kind:"message",T:()=>W0},{no:7,name:"expiration",kind:"message",T:()=>z0}])}};const hc=new V0;var F0=class extends g{constructor(){super("sui.rpc.v2.GasPayment",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>Qp},{no:2,name:"owner",kind:"scalar",opt:!0,T:9},{no:3,name:"price",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"budget",kind:"scalar",opt:!0,T:4,L:0}])}};const W0=new F0;var G0=class extends g{constructor(){super("sui.rpc.v2.TransactionExpiration",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.TransactionExpiration.TransactionExpirationKind",jn]},{no:2,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"min_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"min_timestamp",kind:"message",T:()=>Bt},{no:5,name:"max_timestamp",kind:"message",T:()=>Bt},{no:6,name:"chain",kind:"scalar",opt:!0,T:9},{no:7,name:"nonce",kind:"scalar",opt:!0,T:13}])}};const z0=new G0;var q0=class extends g{constructor(){super("sui.rpc.v2.TransactionKind",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.TransactionKind.Kind",j0]},{no:2,name:"programmable_transaction",kind:"message",oneof:"data",T:()=>Z0},{no:3,name:"change_epoch",kind:"message",oneof:"data",T:()=>th},{no:4,name:"genesis",kind:"message",oneof:"data",T:()=>vT},{no:5,name:"consensus_commit_prologue",kind:"message",oneof:"data",T:()=>wT},{no:6,name:"authenticator_state_update",kind:"message",oneof:"data",T:()=>AT},{no:7,name:"end_of_epoch",kind:"message",oneof:"data",T:()=>NT},{no:8,name:"randomness_state_update",kind:"message",oneof:"data",T:()=>pT}])}};const H0=new q0;var J0=class extends g{constructor(){super("sui.rpc.v2.ProgrammableTransaction",[{no:1,name:"inputs",kind:"message",repeat:1,T:()=>_0},{no:2,name:"commands",kind:"message",repeat:1,T:()=>K0}])}};const Z0=new J0;var Y0=class extends g{constructor(){super("sui.rpc.v2.Command",[{no:1,name:"move_call",kind:"message",oneof:"command",T:()=>eh},{no:2,name:"transfer_objects",kind:"message",oneof:"command",T:()=>eT},{no:3,name:"split_coins",kind:"message",oneof:"command",T:()=>nT},{no:4,name:"merge_coins",kind:"message",oneof:"command",T:()=>rT},{no:5,name:"publish",kind:"message",oneof:"command",T:()=>aT},{no:6,name:"make_move_vector",kind:"message",oneof:"command",T:()=>cT},{no:7,name:"upgrade",kind:"message",oneof:"command",T:()=>uT}])}};const K0=new Y0;var X0=class extends g{constructor(){super("sui.rpc.v2.MoveCall",[{no:1,name:"package",kind:"scalar",opt:!0,T:9},{no:2,name:"module",kind:"scalar",opt:!0,T:9},{no:3,name:"function",kind:"scalar",opt:!0,T:9},{no:4,name:"type_arguments",kind:"scalar",repeat:2,T:9},{no:5,name:"arguments",kind:"message",repeat:1,T:()=>Mt}])}};const eh=new X0;var Q0=class extends g{constructor(){super("sui.rpc.v2.TransferObjects",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>Mt},{no:2,name:"address",kind:"message",T:()=>Mt}])}};const eT=new Q0;var tT=class extends g{constructor(){super("sui.rpc.v2.SplitCoins",[{no:1,name:"coin",kind:"message",T:()=>Mt},{no:2,name:"amounts",kind:"message",repeat:1,T:()=>Mt}])}};const nT=new tT;var sT=class extends g{constructor(){super("sui.rpc.v2.MergeCoins",[{no:1,name:"coin",kind:"message",T:()=>Mt},{no:2,name:"coins_to_merge",kind:"message",repeat:1,T:()=>Mt}])}};const rT=new sT;var iT=class extends g{constructor(){super("sui.rpc.v2.Publish",[{no:1,name:"modules",kind:"scalar",repeat:2,T:12},{no:2,name:"dependencies",kind:"scalar",repeat:2,T:9}])}};const aT=new iT;var oT=class extends g{constructor(){super("sui.rpc.v2.MakeMoveVector",[{no:1,name:"element_type",kind:"scalar",opt:!0,T:9},{no:2,name:"elements",kind:"message",repeat:1,T:()=>Mt}])}};const cT=new oT;var lT=class extends g{constructor(){super("sui.rpc.v2.Upgrade",[{no:1,name:"modules",kind:"scalar",repeat:2,T:12},{no:2,name:"dependencies",kind:"scalar",repeat:2,T:9},{no:3,name:"package",kind:"scalar",opt:!0,T:9},{no:4,name:"ticket",kind:"message",T:()=>Mt}])}};const uT=new lT;var dT=class extends g{constructor(){super("sui.rpc.v2.RandomnessStateUpdate",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"randomness_round",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"random_bytes",kind:"scalar",opt:!0,T:12},{no:4,name:"randomness_object_initial_shared_version",kind:"scalar",opt:!0,T:4,L:0}])}};const pT=new dT;var hT=class extends g{constructor(){super("sui.rpc.v2.ChangeEpoch",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"storage_charge",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"computation_charge",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"storage_rebate",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"non_refundable_storage_fee",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"epoch_start_timestamp",kind:"message",T:()=>Bt},{no:8,name:"system_packages",kind:"message",repeat:1,T:()=>mT}])}};const th=new hT;var fT=class extends g{constructor(){super("sui.rpc.v2.SystemPackage",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"modules",kind:"scalar",repeat:2,T:12},{no:3,name:"dependencies",kind:"scalar",repeat:2,T:9}])}};const mT=new fT;var gT=class extends g{constructor(){super("sui.rpc.v2.GenesisTransaction",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>Fn}])}};const vT=new gT;var bT=class extends g{constructor(){super("sui.rpc.v2.ConsensusCommitPrologue",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"round",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"commit_timestamp",kind:"message",T:()=>Bt},{no:4,name:"consensus_commit_digest",kind:"scalar",opt:!0,T:9},{no:5,name:"sub_dag_index",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"consensus_determined_version_assignments",kind:"message",T:()=>ST},{no:7,name:"additional_state_digest",kind:"scalar",opt:!0,T:9}])}};const wT=new bT;var yT=class extends g{constructor(){super("sui.rpc.v2.VersionAssignment",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"start_version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}};const TT=new yT;var kT=class extends g{constructor(){super("sui.rpc.v2.CanceledTransaction",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"version_assignments",kind:"message",repeat:1,T:()=>TT}])}};const _T=new kT;var ET=class extends g{constructor(){super("sui.rpc.v2.ConsensusDeterminedVersionAssignments",[{no:1,name:"version",kind:"scalar",opt:!0,T:5},{no:3,name:"canceled_transactions",kind:"message",repeat:1,T:()=>_T}])}};const ST=new ET;var IT=class extends g{constructor(){super("sui.rpc.v2.AuthenticatorStateUpdate",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"round",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"new_active_jwks",kind:"message",repeat:1,T:()=>nh},{no:4,name:"authenticator_object_initial_shared_version",kind:"scalar",opt:!0,T:4,L:0}])}};const AT=new IT;var xT=class extends g{constructor(){super("sui.rpc.v2.ActiveJwk",[{no:1,name:"id",kind:"message",T:()=>Kp},{no:2,name:"jwk",kind:"message",T:()=>N0},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0}])}};const nh=new xT;var OT=class extends g{constructor(){super("sui.rpc.v2.EndOfEpochTransaction",[{no:1,name:"transactions",kind:"message",repeat:1,T:()=>CT}])}};const NT=new OT;var RT=class extends g{constructor(){super("sui.rpc.v2.EndOfEpochTransactionKind",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.EndOfEpochTransactionKind.Kind",P0]},{no:2,name:"change_epoch",kind:"message",oneof:"data",T:()=>th},{no:3,name:"authenticator_state_expire",kind:"message",oneof:"data",T:()=>$T},{no:4,name:"execution_time_observations",kind:"message",oneof:"data",T:()=>MT},{no:5,name:"bridge_chain_id",kind:"scalar",oneof:"data",T:9},{no:6,name:"bridge_object_version",kind:"scalar",oneof:"data",T:4,L:0},{no:7,name:"storage_cost",kind:"scalar",oneof:"data",T:4,L:0}])}};const CT=new RT;var UT=class extends g{constructor(){super("sui.rpc.v2.AuthenticatorStateExpire",[{no:1,name:"min_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"authenticator_object_initial_shared_version",kind:"scalar",opt:!0,T:4,L:0}])}};const $T=new UT;var DT=class extends g{constructor(){super("sui.rpc.v2.ExecutionTimeObservations",[{no:1,name:"version",kind:"scalar",opt:!0,T:5},{no:2,name:"observations",kind:"message",repeat:1,T:()=>jT}])}};const MT=new DT;var BT=class extends g{constructor(){super("sui.rpc.v2.ExecutionTimeObservation",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ExecutionTimeObservation.ExecutionTimeObservationKind",L0]},{no:2,name:"move_entry_point",kind:"message",T:()=>eh},{no:3,name:"validator_observations",kind:"message",repeat:1,T:()=>LT}])}};const jT=new BT;var PT=class extends g{constructor(){super("sui.rpc.v2.ValidatorExecutionTimeObservation",[{no:1,name:"validator",kind:"scalar",opt:!0,T:12},{no:2,name:"duration",kind:"message",T:()=>A0}])}};const LT=new PT;function VT(e){switch(e.$kind){case"Pure":return{kind:kt.PURE,pure:Q(e.Pure.bytes)};case"Object":if(e.Object.$kind==="ImmOrOwnedObject")return{kind:kt.IMMUTABLE_OR_OWNED,objectId:e.Object.ImmOrOwnedObject.objectId,version:BigInt(e.Object.ImmOrOwnedObject.version),digest:e.Object.ImmOrOwnedObject.digest};if(e.Object.$kind==="SharedObject")return{kind:kt.SHARED,objectId:e.Object.SharedObject.objectId,version:BigInt(e.Object.SharedObject.initialSharedVersion),mutable:e.Object.SharedObject.mutable};if(e.Object.$kind==="Receiving")return{kind:kt.RECEIVING,objectId:e.Object.Receiving.objectId,version:BigInt(e.Object.Receiving.version),digest:e.Object.Receiving.digest};throw new Error(`Unknown Object kind: ${JSON.stringify(e.Object)}`);case"UnresolvedObject":const t=e.UnresolvedObject;return{objectId:t.objectId,version:t.version?BigInt(t.version):t.initialSharedVersion?BigInt(t.initialSharedVersion):void 0,digest:t.digest??void 0,mutable:t.mutable??void 0};case"UnresolvedPure":throw new Error("UnresolvedPure arguments must be resolved before converting to gRPC format");case"FundsWithdrawal":{const n=e.FundsWithdrawal;return{kind:kt.FUNDS_WITHDRAWAL,fundsWithdrawal:{amount:n.reservation.$kind==="MaxAmountU64"?BigInt(n.reservation.MaxAmountU64):void 0,coinType:n.typeArg.$kind==="Balance"?n.typeArg.Balance:void 0,source:n.withdrawFrom.$kind==="Sponsor"?Bi.SPONSOR:Bi.SENDER}}}default:throw new Error(`Unknown CallArg kind: ${JSON.stringify(e)}`)}}function Gt(e){if("GasCoin"in e)return{kind:wn.GAS};if("Input"in e)return{kind:wn.INPUT,input:e.Input};if("Result"in e)return{kind:wn.RESULT,result:e.Result};if("NestedResult"in e)return{kind:wn.RESULT,result:e.NestedResult[0],subresult:e.NestedResult[1]};throw new Error(`Unknown Argument: ${JSON.stringify(e)}`)}function FT(e){switch(e.$kind){case"MoveCall":return{command:{oneofKind:"moveCall",moveCall:{package:e.MoveCall.package,module:e.MoveCall.module,function:e.MoveCall.function,typeArguments:e.MoveCall.typeArguments,arguments:e.MoveCall.arguments.map(Gt)}}};case"TransferObjects":return{command:{oneofKind:"transferObjects",transferObjects:{objects:e.TransferObjects.objects.map(Gt),address:Gt(e.TransferObjects.address)}}};case"SplitCoins":return{command:{oneofKind:"splitCoins",splitCoins:{coin:Gt(e.SplitCoins.coin),amounts:e.SplitCoins.amounts.map(Gt)}}};case"MergeCoins":return{command:{oneofKind:"mergeCoins",mergeCoins:{coin:Gt(e.MergeCoins.destination),coinsToMerge:e.MergeCoins.sources.map(Gt)}}};case"Publish":return{command:{oneofKind:"publish",publish:{modules:e.Publish.modules.map(t=>Q(t)),dependencies:e.Publish.dependencies}}};case"MakeMoveVec":return{command:{oneofKind:"makeMoveVector",makeMoveVector:{elementType:e.MakeMoveVec.type??void 0,elements:e.MakeMoveVec.elements.map(Gt)}}};case"Upgrade":return{command:{oneofKind:"upgrade",upgrade:{modules:e.Upgrade.modules.map(t=>Q(t)),dependencies:e.Upgrade.dependencies,package:e.Upgrade.package,ticket:Gt(e.Upgrade.ticket)}}};default:throw new Error(`Unknown Command kind: ${JSON.stringify(e)}`)}}function sh(e){const t={version:1,kind:{data:{oneofKind:"programmableTransaction",programmableTransaction:{inputs:e.inputs.map(VT),commands:e.commands.map(FT)}}}};e.sender&&(t.sender=e.sender);const n=e.gasData.owner??e.sender;if(t.gasPayment={objects:e.gasData.payment?e.gasData.payment.map(s=>({objectId:s.objectId,version:BigInt(s.version),digest:s.digest})):[],price:e.gasData.price?BigInt(e.gasData.price):void 0,budget:e.gasData.budget?BigInt(e.gasData.budget):void 0},n&&(t.gasPayment.owner=n),e.expiration){if("None"in e.expiration)t.expiration={kind:jn.NONE};else if(e.expiration.$kind==="Epoch")t.expiration={kind:jn.EPOCH,epoch:BigInt(e.expiration.Epoch)};else if(e.expiration.$kind==="ValidDuring"){const s=e.expiration.ValidDuring;t.expiration={kind:jn.VALID_DURING,minEpoch:s.minEpoch!=null?BigInt(s.minEpoch):void 0,epoch:s.maxEpoch!=null?BigInt(s.maxEpoch):void 0,chain:s.chain,nonce:s.nonce}}}return t}function WT(e,t,n){const s=rh(t);n?.onlyTransactionKind?e.applyResolvedData({...s,gasData:{budget:null,owner:null,payment:null,price:null},expiration:null}):e.applyResolvedData(s)}function GT(e){const t=e.getData();return t.sender||(t.sender="0x0000000000000000000000000000000000000000000000000000000000000000"),sh(t)}function zT(e){switch(e.kind){case kt.PURE:return{$kind:"Pure",Pure:{bytes:ee(e.pure)}};case kt.IMMUTABLE_OR_OWNED:return{$kind:"Object",Object:{$kind:"ImmOrOwnedObject",ImmOrOwnedObject:{objectId:e.objectId,version:e.version.toString(),digest:e.digest}}};case kt.SHARED:return{$kind:"Object",Object:{$kind:"SharedObject",SharedObject:{objectId:e.objectId,initialSharedVersion:e.version.toString(),mutable:e.mutable??!1}}};case kt.RECEIVING:return{$kind:"Object",Object:{$kind:"Receiving",Receiving:{objectId:e.objectId,version:e.version.toString(),digest:e.digest}}};case kt.FUNDS_WITHDRAWAL:return{$kind:"FundsWithdrawal",FundsWithdrawal:{reservation:{$kind:"MaxAmountU64",MaxAmountU64:e.fundsWithdrawal?.amount?.toString()??"0"},typeArg:{$kind:"Balance",Balance:e.fundsWithdrawal?.coinType??"0x2::sui::SUI"},withdrawFrom:e.fundsWithdrawal?.source===Bi.SPONSOR?{$kind:"Sponsor",Sponsor:!0}:{$kind:"Sender",Sender:!0}}};default:throw new Error(`Unknown Input kind: ${JSON.stringify(e)}`)}}function zt(e){switch(e.kind){case wn.GAS:return{$kind:"GasCoin",GasCoin:!0};case wn.INPUT:return{$kind:"Input",Input:e.input};case wn.RESULT:return e.subresult!=null?{$kind:"NestedResult",NestedResult:[e.result,e.subresult]}:{$kind:"Result",Result:e.result};default:throw new Error(`Unknown Argument kind: ${JSON.stringify(e)}`)}}function qT(e){const t=e.command;if(!t)throw new Error("Command is missing");switch(t.oneofKind){case"moveCall":return{$kind:"MoveCall",MoveCall:{package:t.moveCall.package,module:t.moveCall.module,function:t.moveCall.function,typeArguments:t.moveCall.typeArguments??[],arguments:t.moveCall.arguments.map(zt)}};case"transferObjects":return{$kind:"TransferObjects",TransferObjects:{objects:t.transferObjects.objects.map(zt),address:zt(t.transferObjects.address)}};case"splitCoins":return{$kind:"SplitCoins",SplitCoins:{coin:zt(t.splitCoins.coin),amounts:t.splitCoins.amounts.map(zt)}};case"mergeCoins":return{$kind:"MergeCoins",MergeCoins:{destination:zt(t.mergeCoins.coin),sources:t.mergeCoins.coinsToMerge.map(zt)}};case"publish":return{$kind:"Publish",Publish:{modules:t.publish.modules.map(n=>ee(n)),dependencies:t.publish.dependencies??[]}};case"makeMoveVector":return{$kind:"MakeMoveVec",MakeMoveVec:{type:t.makeMoveVector.elementType??null,elements:t.makeMoveVector.elements.map(zt)}};case"upgrade":return{$kind:"Upgrade",Upgrade:{modules:t.upgrade.modules.map(n=>ee(n)),dependencies:t.upgrade.dependencies??[],package:t.upgrade.package,ticket:zt(t.upgrade.ticket)}};default:throw new Error(`Unknown Command kind: ${JSON.stringify(t)}`)}}function rh(e){const t=e.kind?.data;if(t?.oneofKind!=="programmableTransaction")throw new Error("Only programmable transactions are supported");const n=t.programmableTransaction.inputs.map(zT),s=t.programmableTransaction.commands.map(qT);let r=null;if(e.expiration)switch(e.expiration.kind){case jn.NONE:r={$kind:"None",None:!0};break;case jn.EPOCH:r={$kind:"Epoch",Epoch:e.expiration.epoch.toString()};break;case jn.VALID_DURING:r={$kind:"ValidDuring",ValidDuring:{minEpoch:e.expiration.minEpoch?.toString()??null,maxEpoch:e.expiration.epoch?.toString()??null,minTimestamp:null,maxTimestamp:null,chain:e.expiration.chain??"",nonce:e.expiration.nonce??0}};break}return{version:2,sender:e.sender??null,expiration:r,gasData:{budget:e.gasPayment?.budget?.toString()??null,owner:e.gasPayment?.owner??null,payment:e.gasPayment?.objects?.map(i=>({objectId:i.objectId,version:i.version.toString(),digest:i.digest}))??null,price:e.gasPayment?.price?.toString()??null},inputs:n,commands:s}}let HT=(function(e){return e[e.EXECUTION_ERROR_KIND_UNKNOWN=0]="EXECUTION_ERROR_KIND_UNKNOWN",e[e.INSUFFICIENT_GAS=1]="INSUFFICIENT_GAS",e[e.INVALID_GAS_OBJECT=2]="INVALID_GAS_OBJECT",e[e.INVARIANT_VIOLATION=3]="INVARIANT_VIOLATION",e[e.FEATURE_NOT_YET_SUPPORTED=4]="FEATURE_NOT_YET_SUPPORTED",e[e.OBJECT_TOO_BIG=5]="OBJECT_TOO_BIG",e[e.PACKAGE_TOO_BIG=6]="PACKAGE_TOO_BIG",e[e.CIRCULAR_OBJECT_OWNERSHIP=7]="CIRCULAR_OBJECT_OWNERSHIP",e[e.INSUFFICIENT_COIN_BALANCE=8]="INSUFFICIENT_COIN_BALANCE",e[e.COIN_BALANCE_OVERFLOW=9]="COIN_BALANCE_OVERFLOW",e[e.PUBLISH_ERROR_NON_ZERO_ADDRESS=10]="PUBLISH_ERROR_NON_ZERO_ADDRESS",e[e.SUI_MOVE_VERIFICATION_ERROR=11]="SUI_MOVE_VERIFICATION_ERROR",e[e.MOVE_PRIMITIVE_RUNTIME_ERROR=12]="MOVE_PRIMITIVE_RUNTIME_ERROR",e[e.MOVE_ABORT=13]="MOVE_ABORT",e[e.VM_VERIFICATION_OR_DESERIALIZATION_ERROR=14]="VM_VERIFICATION_OR_DESERIALIZATION_ERROR",e[e.VM_INVARIANT_VIOLATION=15]="VM_INVARIANT_VIOLATION",e[e.FUNCTION_NOT_FOUND=16]="FUNCTION_NOT_FOUND",e[e.ARITY_MISMATCH=17]="ARITY_MISMATCH",e[e.TYPE_ARITY_MISMATCH=18]="TYPE_ARITY_MISMATCH",e[e.NON_ENTRY_FUNCTION_INVOKED=19]="NON_ENTRY_FUNCTION_INVOKED",e[e.COMMAND_ARGUMENT_ERROR=20]="COMMAND_ARGUMENT_ERROR",e[e.TYPE_ARGUMENT_ERROR=21]="TYPE_ARGUMENT_ERROR",e[e.UNUSED_VALUE_WITHOUT_DROP=22]="UNUSED_VALUE_WITHOUT_DROP",e[e.INVALID_PUBLIC_FUNCTION_RETURN_TYPE=23]="INVALID_PUBLIC_FUNCTION_RETURN_TYPE",e[e.INVALID_TRANSFER_OBJECT=24]="INVALID_TRANSFER_OBJECT",e[e.EFFECTS_TOO_LARGE=25]="EFFECTS_TOO_LARGE",e[e.PUBLISH_UPGRADE_MISSING_DEPENDENCY=26]="PUBLISH_UPGRADE_MISSING_DEPENDENCY",e[e.PUBLISH_UPGRADE_DEPENDENCY_DOWNGRADE=27]="PUBLISH_UPGRADE_DEPENDENCY_DOWNGRADE",e[e.PACKAGE_UPGRADE_ERROR=28]="PACKAGE_UPGRADE_ERROR",e[e.WRITTEN_OBJECTS_TOO_LARGE=29]="WRITTEN_OBJECTS_TOO_LARGE",e[e.CERTIFICATE_DENIED=30]="CERTIFICATE_DENIED",e[e.SUI_MOVE_VERIFICATION_TIMEDOUT=31]="SUI_MOVE_VERIFICATION_TIMEDOUT",e[e.CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED=32]="CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED",e[e.INPUT_OBJECT_DELETED=33]="INPUT_OBJECT_DELETED",e[e.EXECUTION_CANCELED_DUE_TO_CONSENSUS_OBJECT_CONGESTION=34]="EXECUTION_CANCELED_DUE_TO_CONSENSUS_OBJECT_CONGESTION",e[e.ADDRESS_DENIED_FOR_COIN=35]="ADDRESS_DENIED_FOR_COIN",e[e.COIN_TYPE_GLOBAL_PAUSE=36]="COIN_TYPE_GLOBAL_PAUSE",e[e.EXECUTION_CANCELED_DUE_TO_RANDOMNESS_UNAVAILABLE=37]="EXECUTION_CANCELED_DUE_TO_RANDOMNESS_UNAVAILABLE",e[e.MOVE_VECTOR_ELEM_TOO_BIG=38]="MOVE_VECTOR_ELEM_TOO_BIG",e[e.MOVE_RAW_VALUE_TOO_BIG=39]="MOVE_RAW_VALUE_TOO_BIG",e[e.INVALID_LINKAGE=40]="INVALID_LINKAGE",e[e.INSUFFICIENT_FUNDS_FOR_WITHDRAW=41]="INSUFFICIENT_FUNDS_FOR_WITHDRAW",e[e.NON_EXCLUSIVE_WRITE_INPUT_OBJECT_MODIFIED=42]="NON_EXCLUSIVE_WRITE_INPUT_OBJECT_MODIFIED",e})({}),ih=(function(e){return e[e.COMMAND_ARGUMENT_ERROR_KIND_UNKNOWN=0]="COMMAND_ARGUMENT_ERROR_KIND_UNKNOWN",e[e.TYPE_MISMATCH=1]="TYPE_MISMATCH",e[e.INVALID_BCS_BYTES=2]="INVALID_BCS_BYTES",e[e.INVALID_USAGE_OF_PURE_ARGUMENT=3]="INVALID_USAGE_OF_PURE_ARGUMENT",e[e.INVALID_ARGUMENT_TO_PRIVATE_ENTRY_FUNCTION=4]="INVALID_ARGUMENT_TO_PRIVATE_ENTRY_FUNCTION",e[e.INDEX_OUT_OF_BOUNDS=5]="INDEX_OUT_OF_BOUNDS",e[e.SECONDARY_INDEX_OUT_OF_BOUNDS=6]="SECONDARY_INDEX_OUT_OF_BOUNDS",e[e.INVALID_RESULT_ARITY=7]="INVALID_RESULT_ARITY",e[e.INVALID_GAS_COIN_USAGE=8]="INVALID_GAS_COIN_USAGE",e[e.INVALID_VALUE_USAGE=9]="INVALID_VALUE_USAGE",e[e.INVALID_OBJECT_BY_VALUE=10]="INVALID_OBJECT_BY_VALUE",e[e.INVALID_OBJECT_BY_MUT_REF=11]="INVALID_OBJECT_BY_MUT_REF",e[e.CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED=12]="CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED",e[e.INVALID_ARGUMENT_ARITY=13]="INVALID_ARGUMENT_ARITY",e[e.INVALID_TRANSFER_OBJECT=14]="INVALID_TRANSFER_OBJECT",e[e.INVALID_MAKE_MOVE_VEC_NON_OBJECT_ARGUMENT=15]="INVALID_MAKE_MOVE_VEC_NON_OBJECT_ARGUMENT",e[e.ARGUMENT_WITHOUT_VALUE=16]="ARGUMENT_WITHOUT_VALUE",e[e.CANNOT_MOVE_BORROWED_VALUE=17]="CANNOT_MOVE_BORROWED_VALUE",e[e.CANNOT_WRITE_TO_EXTENDED_REFERENCE=18]="CANNOT_WRITE_TO_EXTENDED_REFERENCE",e[e.INVALID_REFERENCE_ARGUMENT=19]="INVALID_REFERENCE_ARGUMENT",e})({}),JT=(function(e){return e[e.PACKAGE_UPGRADE_ERROR_KIND_UNKNOWN=0]="PACKAGE_UPGRADE_ERROR_KIND_UNKNOWN",e[e.UNABLE_TO_FETCH_PACKAGE=1]="UNABLE_TO_FETCH_PACKAGE",e[e.NOT_A_PACKAGE=2]="NOT_A_PACKAGE",e[e.INCOMPATIBLE_UPGRADE=3]="INCOMPATIBLE_UPGRADE",e[e.DIGEST_DOES_NOT_MATCH=4]="DIGEST_DOES_NOT_MATCH",e[e.UNKNOWN_UPGRADE_POLICY=5]="UNKNOWN_UPGRADE_POLICY",e[e.PACKAGE_ID_DOES_NOT_MATCH=6]="PACKAGE_ID_DOES_NOT_MATCH",e})({}),ZT=(function(e){return e[e.TYPE_ARGUMENT_ERROR_KIND_UNKNOWN=0]="TYPE_ARGUMENT_ERROR_KIND_UNKNOWN",e[e.TYPE_NOT_FOUND=1]="TYPE_NOT_FOUND",e[e.CONSTRAINT_NOT_SATISFIED=2]="CONSTRAINT_NOT_SATISFIED",e})({});var YT=class extends g{constructor(){super("sui.rpc.v2.ExecutionStatus",[{no:1,name:"success",kind:"scalar",opt:!0,T:8},{no:2,name:"error",kind:"message",T:()=>QT}])}};const KT=new YT;var XT=class extends g{constructor(){super("sui.rpc.v2.ExecutionError",[{no:1,name:"description",kind:"scalar",opt:!0,T:9},{no:2,name:"command",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ExecutionError.ExecutionErrorKind",HT]},{no:4,name:"abort",kind:"message",oneof:"errorDetails",T:()=>tk},{no:5,name:"size_error",kind:"message",oneof:"errorDetails",T:()=>ok},{no:6,name:"command_argument_error",kind:"message",oneof:"errorDetails",T:()=>fk},{no:7,name:"type_argument_error",kind:"message",oneof:"errorDetails",T:()=>bk},{no:8,name:"package_upgrade_error",kind:"message",oneof:"errorDetails",T:()=>gk},{no:9,name:"index_error",kind:"message",oneof:"errorDetails",T:()=>ah},{no:10,name:"object_id",kind:"scalar",oneof:"errorDetails",T:9},{no:11,name:"coin_deny_list_error",kind:"message",oneof:"errorDetails",T:()=>uk},{no:12,name:"congested_objects",kind:"message",oneof:"errorDetails",T:()=>pk}])}};const QT=new XT;var ek=class extends g{constructor(){super("sui.rpc.v2.MoveAbort",[{no:1,name:"abort_code",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"location",kind:"message",T:()=>sk},{no:3,name:"clever_error",kind:"message",T:()=>ik}])}};const tk=new ek;var nk=class extends g{constructor(){super("sui.rpc.v2.MoveLocation",[{no:1,name:"package",kind:"scalar",opt:!0,T:9},{no:2,name:"module",kind:"scalar",opt:!0,T:9},{no:3,name:"function",kind:"scalar",opt:!0,T:13},{no:4,name:"instruction",kind:"scalar",opt:!0,T:13},{no:5,name:"function_name",kind:"scalar",opt:!0,T:9}])}};const sk=new nk;var rk=class extends g{constructor(){super("sui.rpc.v2.CleverError",[{no:1,name:"error_code",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"line_number",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"constant_name",kind:"scalar",opt:!0,T:9},{no:4,name:"constant_type",kind:"scalar",opt:!0,T:9},{no:5,name:"rendered",kind:"scalar",oneof:"value",T:9},{no:6,name:"raw",kind:"scalar",oneof:"value",T:12}])}};const ik=new rk;var ak=class extends g{constructor(){super("sui.rpc.v2.SizeError",[{no:1,name:"size",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"max_size",kind:"scalar",opt:!0,T:4,L:0}])}};const ok=new ak;var ck=class extends g{constructor(){super("sui.rpc.v2.IndexError",[{no:1,name:"index",kind:"scalar",opt:!0,T:13},{no:2,name:"subresult",kind:"scalar",opt:!0,T:13}])}};const ah=new ck;var lk=class extends g{constructor(){super("sui.rpc.v2.CoinDenyListError",[{no:1,name:"address",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9}])}};const uk=new lk;var dk=class extends g{constructor(){super("sui.rpc.v2.CongestedObjects",[{no:1,name:"objects",kind:"scalar",repeat:2,T:9}])}};const pk=new dk;var hk=class extends g{constructor(){super("sui.rpc.v2.CommandArgumentError",[{no:1,name:"argument",kind:"scalar",opt:!0,T:13},{no:2,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CommandArgumentError.CommandArgumentErrorKind",ih]},{no:3,name:"index_error",kind:"message",T:()=>ah}])}};const fk=new hk;var mk=class extends g{constructor(){super("sui.rpc.v2.PackageUpgradeError",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.PackageUpgradeError.PackageUpgradeErrorKind",JT]},{no:2,name:"package_id",kind:"scalar",opt:!0,T:9},{no:3,name:"digest",kind:"scalar",opt:!0,T:9},{no:4,name:"policy",kind:"scalar",opt:!0,T:13},{no:5,name:"ticket_id",kind:"scalar",opt:!0,T:9}])}};const gk=new mk;var vk=class extends g{constructor(){super("sui.rpc.v2.TypeArgumentError",[{no:1,name:"type_argument",kind:"scalar",opt:!0,T:13},{no:2,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.TypeArgumentError.TypeArgumentErrorKind",ZT]}])}};const bk=new vk;var wk=class extends g{constructor(){super("sui.rpc.v2.GasCostSummary",[{no:1,name:"computation_cost",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"storage_cost",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"storage_rebate",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"non_refundable_storage_fee",kind:"scalar",opt:!0,T:4,L:0}])}};const oh=new wk;let ui=(function(e){return e[e.UNKNOWN=0]="UNKNOWN",e[e.DOES_NOT_EXIST=1]="DOES_NOT_EXIST",e[e.EXISTS=2]="EXISTS",e})({}),ls=(function(e){return e[e.UNKNOWN=0]="UNKNOWN",e[e.DOES_NOT_EXIST=1]="DOES_NOT_EXIST",e[e.OBJECT_WRITE=2]="OBJECT_WRITE",e[e.PACKAGE_WRITE=3]="PACKAGE_WRITE",e[e.ACCUMULATOR_WRITE=4]="ACCUMULATOR_WRITE",e})({}),Zs=(function(e){return e[e.ID_OPERATION_UNKNOWN=0]="ID_OPERATION_UNKNOWN",e[e.NONE=1]="NONE",e[e.CREATED=2]="CREATED",e[e.DELETED=3]="DELETED",e})({}),yk=(function(e){return e[e.ACCUMULATOR_OPERATION_UNKNOWN=0]="ACCUMULATOR_OPERATION_UNKNOWN",e[e.MERGE=1]="MERGE",e[e.SPLIT=2]="SPLIT",e})({}),On=(function(e){return e[e.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN=0]="UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN",e[e.READ_ONLY_ROOT=1]="READ_ONLY_ROOT",e[e.MUTATE_CONSENSUS_STREAM_ENDED=2]="MUTATE_CONSENSUS_STREAM_ENDED",e[e.READ_CONSENSUS_STREAM_ENDED=3]="READ_CONSENSUS_STREAM_ENDED",e[e.CANCELED=4]="CANCELED",e[e.PER_EPOCH_CONFIG=5]="PER_EPOCH_CONFIG",e})({});var Tk=class extends g{constructor(){super("sui.rpc.v2.TransactionEffects",[{no:1,name:"bcs",kind:"message",T:()=>it},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:5},{no:4,name:"status",kind:"message",T:()=>KT},{no:5,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"gas_used",kind:"message",T:()=>oh},{no:7,name:"transaction_digest",kind:"scalar",opt:!0,T:9},{no:8,name:"gas_object",kind:"message",T:()=>Bl},{no:9,name:"events_digest",kind:"scalar",opt:!0,T:9},{no:10,name:"dependencies",kind:"scalar",repeat:2,T:9},{no:11,name:"lamport_version",kind:"scalar",opt:!0,T:4,L:0},{no:12,name:"changed_objects",kind:"message",repeat:1,T:()=>Bl},{no:13,name:"unchanged_consensus_objects",kind:"message",repeat:1,T:()=>Ak},{no:14,name:"auxiliary_data_digest",kind:"scalar",opt:!0,T:9},{no:15,name:"unchanged_loaded_runtime_objects",kind:"message",repeat:1,T:()=>Qp}])}};const kk=new Tk;var _k=class extends g{constructor(){super("sui.rpc.v2.ChangedObject",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"input_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ChangedObject.InputObjectState",ui,"INPUT_OBJECT_STATE_"]},{no:3,name:"input_version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"input_digest",kind:"scalar",opt:!0,T:9},{no:5,name:"input_owner",kind:"message",T:()=>Eo},{no:6,name:"output_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ChangedObject.OutputObjectState",ls,"OUTPUT_OBJECT_STATE_"]},{no:7,name:"output_version",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"output_digest",kind:"scalar",opt:!0,T:9},{no:9,name:"output_owner",kind:"message",T:()=>Eo},{no:12,name:"accumulator_write",kind:"message",T:()=>Sk},{no:10,name:"id_operation",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.ChangedObject.IdOperation",Zs]},{no:11,name:"object_type",kind:"scalar",opt:!0,T:9}])}};const Bl=new _k;var Ek=class extends g{constructor(){super("sui.rpc.v2.AccumulatorWrite",[{no:1,name:"address",kind:"scalar",opt:!0,T:9},{no:2,name:"accumulator_type",kind:"scalar",opt:!0,T:9},{no:3,name:"operation",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.AccumulatorWrite.AccumulatorOperation",yk]},{no:5,name:"value",kind:"scalar",opt:!0,T:4,L:0}])}};const Sk=new Ek;var Ik=class extends g{constructor(){super("sui.rpc.v2.UnchangedConsensusObject",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.UnchangedConsensusObject.UnchangedConsensusObjectKind",On]},{no:2,name:"object_id",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"digest",kind:"scalar",opt:!0,T:9},{no:5,name:"object_type",kind:"scalar",opt:!0,T:9}])}};const Ak=new Ik;var xk=class extends ky{#e;constructor({client:e,...t}){super(t),this.#e=e}async getObjects(e){const t=ki(e.objectIds,50),n=[],s=["owner","object_type","digest","version","object_id"];e.include?.content&&s.push("contents"),e.include?.previousTransaction&&s.push("previous_transaction"),e.include?.objectBcs&&s.push("bcs"),e.include?.json&&s.push("json"),e.include?.display&&s.push("display");for(const r of t){const i=await this.#e.ledgerService.batchGetObjects({requests:r.map(a=>({objectId:a})),readMask:{paths:s}});n.push(...i.response.objects.map(a=>{if(a.result.oneofKind==="error")return new Error(a.result.error.message);if(a.result.oneofKind!=="object")return new Error("Unexpected result type");const o=a.result.object.contents?.value??void 0,c=a.result.object.bcs?.value??void 0,l=a.result.object.objectType,u=l&&l.includes("::")?ut(l):l??"",d=e.include?.json?a.result.object.json?je.toJson(a.result.object.json):null:void 0,h=jl(e.include?.display,a.result.object.display);return{objectId:a.result.object.objectId,version:a.result.object.version?.toString(),digest:a.result.object.digest,content:o,owner:Dn(a.result.object.owner),type:u,previousTransaction:a.result.object.previousTransaction??void 0,objectBcs:c,json:d,display:h}}))}return{objects:n}}async listOwnedObjects(e){const t=["owner","object_type","digest","version","object_id"];e.include?.content&&t.push("contents"),e.include?.previousTransaction&&t.push("previous_transaction"),e.include?.objectBcs&&t.push("bcs"),e.include?.json&&t.push("json"),e.include?.display&&t.push("display");const n=await this.#e.stateService.listOwnedObjects({owner:e.owner,objectType:e.type?(await this.mvr.resolveType({type:e.type})).type:void 0,pageToken:e.cursor?Q(e.cursor):void 0,pageSize:e.limit,readMask:{paths:t}});return{objects:n.response.objects.map(s=>({objectId:s.objectId,version:s.version?.toString(),digest:s.digest,content:s.contents?.value,owner:Dn(s.owner),type:s.objectType,previousTransaction:s.previousTransaction??void 0,objectBcs:s.bcs?.value,json:e.include?.json?s.json?je.toJson(s.json):null:void 0,display:jl(e.include?.display,s.display)})),cursor:n.response.nextPageToken?ee(n.response.nextPageToken):null,hasNextPage:n.response.nextPageToken!==void 0}}async listCoins(e){const t=["owner","object_type","digest","version","object_id","balance"],n=e.coinType??no,s=await this.#e.stateService.listOwnedObjects({owner:e.owner,objectType:`0x2::coin::Coin<${(await this.mvr.resolveType({type:n})).type}>`,pageToken:e.cursor?Q(e.cursor):void 0,readMask:{paths:t}});return{objects:s.response.objects.map(r=>({objectId:r.objectId,version:r.version?.toString(),digest:r.digest,owner:Dn(r.owner),type:r.objectType,balance:r.balance?.toString()})),cursor:s.response.nextPageToken?ee(s.response.nextPageToken):null,hasNextPage:s.response.nextPageToken!==void 0}}async getBalance(e){const t=e.coinType??no,n=await this.#e.stateService.getBalance({owner:e.owner,coinType:(await this.mvr.resolveType({type:t})).type});return{balance:{balance:n.response.balance?.balance?.toString()??"0",coinType:n.response.balance?.coinType??t,coinBalance:n.response.balance?.coinBalance?.toString()??"0",addressBalance:n.response.balance?.addressBalance?.toString()??"0"}}}async getCoinMetadata(e){const t=(await this.mvr.resolveType({type:e.coinType})).type;let n;try{({response:n}=await this.#e.stateService.getCoinInfo({coinType:t}))}catch{return{coinMetadata:null}}return n.metadata?{coinMetadata:{id:n.metadata.id??null,decimals:n.metadata.decimals??0,name:n.metadata.name??"",symbol:n.metadata.symbol??"",description:n.metadata.description??"",iconUrl:n.metadata.iconUrl??null}}:{coinMetadata:null}}async listBalances(e){const t=await this.#e.stateService.listBalances({owner:e.owner,pageToken:e.cursor?Q(e.cursor):void 0,pageSize:e.limit});return{hasNextPage:!!t.response.nextPageToken,cursor:t.response.nextPageToken?ee(t.response.nextPageToken):null,balances:t.response.balances.map(n=>({balance:n.balance?.toString()??"0",coinType:n.coinType,coinBalance:n.coinBalance?.toString()??"0",addressBalance:n.addressBalance?.toString()??"0"}))}}async getTransaction(e){const t=["digest","transaction.digest","signatures","effects.status"];e.include?.transaction&&t.push("transaction.sender","transaction.gas_payment","transaction.expiration","transaction.kind"),e.include?.bcs&&t.push("transaction.bcs"),e.include?.balanceChanges&&t.push("balance_changes"),e.include?.effects&&t.push("effects"),e.include?.events&&t.push("events"),e.include?.objectTypes&&(t.push("effects.changed_objects.object_type"),t.push("effects.changed_objects.object_id"));const{response:n}=await this.#e.ledgerService.getTransaction({digest:e.digest,readMask:{paths:t}});if(!n.transaction)throw new Error(`Transaction ${e.digest} not found`);return Ba(n.transaction,e.include)}async executeTransaction(e){const t=["digest","transaction.digest","signatures","effects.status"];e.include?.transaction&&t.push("transaction.sender","transaction.gas_payment","transaction.expiration","transaction.kind"),e.include?.bcs&&t.push("transaction.bcs"),e.include?.balanceChanges&&t.push("balance_changes"),e.include?.effects&&t.push("effects"),e.include?.events&&t.push("events"),e.include?.objectTypes&&(t.push("effects.changed_objects.object_type"),t.push("effects.changed_objects.object_id"));const{response:n}=await this.#e.transactionExecutionService.executeTransaction({transaction:{bcs:{value:e.transaction}},signatures:e.signatures.map(s=>({bcs:{value:Q(s)},signature:{oneofKind:void 0}})),readMask:{paths:t}});return Ba(n.transaction,e.include)}async simulateTransaction(e){const t=["transaction.digest","transaction.transaction.digest","transaction.signatures","transaction.effects.status"];e.include?.transaction&&t.push("transaction.transaction.sender","transaction.transaction.gas_payment","transaction.transaction.expiration","transaction.transaction.kind"),e.include?.bcs&&t.push("transaction.transaction.bcs"),e.include?.balanceChanges&&t.push("transaction.balance_changes"),e.include?.effects&&t.push("transaction.effects"),e.include?.events&&t.push("transaction.events"),e.include?.objectTypes&&(t.push("transaction.effects.changed_objects.object_type"),t.push("transaction.effects.changed_objects.object_id")),e.include?.commandResults&&t.push("command_outputs"),e.transaction instanceof Uint8Array||await e.transaction.prepareForSerialization({client:this});const{response:n}=await this.#e.transactionExecutionService.simulateTransaction({transaction:e.transaction instanceof Uint8Array?{bcs:{value:e.transaction}}:GT(e.transaction),readMask:{paths:t},doGasSelection:!1}),s=Ba(n.transaction,e.include),r=e.include?.commandResults&&n.commandOutputs?n.commandOutputs.map(i=>({returnValues:(i.returnValues??[]).map(a=>({bcs:a.value?.value??null})),mutatedReferences:(i.mutatedByRef??[]).map(a=>({bcs:a.value?.value??null}))})):void 0;return s.$kind==="Transaction"?{$kind:"Transaction",Transaction:s.Transaction,commandResults:r}:{$kind:"FailedTransaction",FailedTransaction:s.FailedTransaction,commandResults:r}}async getReferenceGasPrice(){return{referenceGasPrice:(await this.#e.ledgerService.getEpoch({readMask:{paths:["reference_gas_price"]}})).response.epoch?.referenceGasPrice?.toString()??""}}async getCurrentSystemState(){const e=(await this.#e.ledgerService.getEpoch({readMask:{paths:["system_state.version","system_state.epoch","system_state.protocol_version","system_state.reference_gas_price","system_state.epoch_start_timestamp_ms","system_state.safe_mode","system_state.safe_mode_storage_rewards","system_state.safe_mode_computation_rewards","system_state.safe_mode_storage_rebates","system_state.safe_mode_non_refundable_storage_fee","system_state.parameters","system_state.storage_fund","system_state.stake_subsidy"]}})).response.epoch,t=e?.systemState;if(!t)throw new Error("System state not found in response");const n=e?.start?.seconds?Number(e.start.seconds)*1e3+Math.floor((e.start.nanos||0)/1e6):t.epochStartTimestampMs?Number(t.epochStartTimestampMs):null;return{systemState:{systemStateVersion:t.version?.toString()??null,epoch:t.epoch?.toString()??null,protocolVersion:t.protocolVersion?.toString()??null,referenceGasPrice:t.referenceGasPrice?.toString()??null,epochStartTimestampMs:n.toString(),safeMode:t.safeMode??!1,safeModeStorageRewards:t.safeModeStorageRewards?.toString()??null,safeModeComputationRewards:t.safeModeComputationRewards?.toString()??null,safeModeStorageRebates:t.safeModeStorageRebates?.toString()??null,safeModeNonRefundableStorageFee:t.safeModeNonRefundableStorageFee?.toString()??null,parameters:{epochDurationMs:t.parameters?.epochDurationMs?.toString()??null,stakeSubsidyStartEpoch:t.parameters?.stakeSubsidyStartEpoch?.toString()??null,maxValidatorCount:t.parameters?.maxValidatorCount?.toString()??null,minValidatorJoiningStake:t.parameters?.minValidatorJoiningStake?.toString()??null,validatorLowStakeThreshold:t.parameters?.validatorLowStakeThreshold?.toString()??null,validatorLowStakeGracePeriod:t.parameters?.validatorLowStakeGracePeriod?.toString()??null},storageFund:{totalObjectStorageRebates:t.storageFund?.totalObjectStorageRebates?.toString()??null,nonRefundableBalance:t.storageFund?.nonRefundableBalance?.toString()??null},stakeSubsidy:{balance:t.stakeSubsidy?.balance?.toString()??null,distributionCounter:t.stakeSubsidy?.distributionCounter?.toString()??null,currentDistributionAmount:t.stakeSubsidy?.currentDistributionAmount?.toString()??null,stakeSubsidyPeriodLength:t.stakeSubsidy?.stakeSubsidyPeriodLength?.toString()??null,stakeSubsidyDecreaseRate:t.stakeSubsidy?.stakeSubsidyDecreaseRate??null}}}}async listDynamicFields(e){return this.#e.listDynamicFields(e)}async verifyZkLoginSignature(e){const t=Q(e.bytes),n=e.intentScope==="PersonalMessage"?G.byteVector().serialize(t).toBytes():t,{response:s}=await this.#e.signatureVerificationService.verifySignature({message:{name:e.intentScope,value:n},signature:{bcs:{value:Q(e.signature)},signature:{oneofKind:void 0}},address:e.address,jwks:[]});return{success:s.isValid??!1,errors:s.reason?[s.reason]:[]}}async defaultNameServiceName(e){return{data:{name:(await this.#e.nameService.reverseLookupName({address:e.address})).response.record?.name??null}}}async getMoveFunction(e){const t=(await this.mvr.resolvePackage({package:e.packageId})).package,{response:n}=await this.#e.movePackageService.getFunction({packageId:t,moduleName:e.moduleName,name:e.name});let s="unknown";switch(n.function?.visibility){case li.PUBLIC:s="public";break;case li.PRIVATE:s="private";break;case li.FRIEND:s="friend";break}return{function:{packageId:re(t),moduleName:e.moduleName,name:n.function?.name,visibility:s,isEntry:n.function?.isEntry??!1,typeParameters:n.function?.typeParameters?.map(({constraints:r})=>({isPhantom:!1,constraints:r.map(i=>{switch(i){case vs.COPY:return"copy";case vs.DROP:return"drop";case vs.STORE:return"store";case vs.KEY:return"key";default:return"unknown"}})??[]}))??[],parameters:n.function?.parameters?.map(r=>Fl(r))??[],returns:n.function?.returns?.map(r=>Fl(r))??[]}}}async getChainIdentifier(e){return this.cache.read(["chainIdentifier"],async()=>{const{response:t}=await this.#e.ledgerService.getServiceInfo({});if(!t.chainId)throw new Error("Chain identifier not found in service info");return{chainIdentifier:t.chainId}})}resolveTransactionPlugin(){const e=this.#e;return async function(n,s,r){const i=n.snapshot();i.sender||(i.sender="0x0000000000000000000000000000000000000000000000000000000000000000");const a=sh(i);let o;try{o=(await e.transactionExecutionService.simulateTransaction({transaction:a,doGasSelection:!s.onlyTransactionKind&&(i.gasData.budget==null||i.gasData.payment==null),readMask:{paths:["transaction.transaction.sender","transaction.transaction.gas_payment","transaction.transaction.expiration","transaction.transaction.kind","transaction.effects.status"]}})).response}catch(c){throw c instanceof Error&&c.message?new mo(decodeURIComponent(c.message),{cause:c}):c}if(!s.onlyTransactionKind&&o.transaction?.effects?.status&&!o.transaction.effects.status.success){const c=o.transaction.effects.status.error?fc(o.transaction.effects.status.error):void 0;throw new mo(`Transaction resolution failed: ${c?.message??"Transaction failed"}`,{executionError:c})}if(!o.transaction?.transaction)throw new Error("simulateTransaction did not return resolved transaction data");return WT(n,o.transaction.transaction,s),await r()}}};function jl(e,t){if(e)return t===void 0?null:{output:t.output!==void 0?je.toJson(t.output):null,errors:t.errors!==void 0?je.toJson(t.errors):null}}function Dn(e){if(!e)return null;if(e.kind===cs.IMMUTABLE)return{$kind:"Immutable",Immutable:!0};if(e.kind===cs.ADDRESS)return{AddressOwner:e.address,$kind:"AddressOwner"};if(e.kind===cs.OBJECT)return{$kind:"ObjectOwner",ObjectOwner:e.address};if(e.kind===cs.SHARED)return{$kind:"Shared",Shared:{initialSharedVersion:e.version?.toString()}};if(e.kind===cs.CONSENSUS_ADDRESS)return{$kind:"ConsensusAddressOwner",ConsensusAddressOwner:{startVersion:e.version?.toString(),owner:e.address}};throw new Error(`Unknown owner kind ${JSON.stringify(e,(t,n)=>typeof n=="bigint"?n.toString():n)}`)}function fc(e){const t=e.description??"Unknown error",n=e.command!=null?Number(e.command):void 0,s=e.errorDetails;switch(s?.oneofKind){case"abort":{const r=s.abort,i=r.cleverError;return{$kind:"MoveAbort",message:Iy({command:n,location:r.location,abortCode:String(r.abortCode??0n),cleverError:i?{lineNumber:i.lineNumber!=null?Number(i.lineNumber):void 0,constantName:i.constantName,value:i.value?.oneofKind==="rendered"?i.value.rendered:void 0}:void 0}),command:n,MoveAbort:Ok(r)}}case"sizeError":return{$kind:"SizeError",message:t,command:n,SizeError:{name:In(e.kind),size:Number(s.sizeError.size??0n),maxSize:Number(s.sizeError.maxSize??0n)}};case"commandArgumentError":return{$kind:"CommandArgumentError",message:t,command:n,CommandArgumentError:{argument:s.commandArgumentError.argument??0,name:In(s.commandArgumentError.kind)}};case"typeArgumentError":return{$kind:"TypeArgumentError",message:t,command:n,TypeArgumentError:{typeArgument:s.typeArgumentError.typeArgument??0,name:In(s.typeArgumentError.kind)}};case"packageUpgradeError":return{$kind:"PackageUpgradeError",message:t,command:n,PackageUpgradeError:{name:In(s.packageUpgradeError.kind),packageId:s.packageUpgradeError.packageId,digest:s.packageUpgradeError.digest}};case"indexError":return{$kind:"IndexError",message:t,command:n,IndexError:{index:s.indexError.index,subresult:s.indexError.subresult}};case"coinDenyListError":return{$kind:"CoinDenyListError",message:t,command:n,CoinDenyListError:{name:In(e.kind),coinType:s.coinDenyListError.coinType,address:s.coinDenyListError.address}};case"congestedObjects":return{$kind:"CongestedObjects",message:t,command:n,CongestedObjects:{name:In(e.kind),objects:s.congestedObjects.objects}};case"objectId":return{$kind:"ObjectIdError",message:t,command:n,ObjectIdError:{name:In(e.kind),objectId:s.objectId}};default:return{$kind:"Unknown",message:t,command:n,Unknown:null}}}function Ok(e){return{abortCode:String(e.abortCode??0n),location:{...e.location},cleverError:e.cleverError?{errorCode:e.cleverError.errorCode!=null?Number(e.cleverError.errorCode):void 0,lineNumber:e.cleverError.lineNumber!=null?Number(e.cleverError.lineNumber):void 0,constantName:e.cleverError.constantName,constantType:e.cleverError.constantType,value:e.cleverError.value?.oneofKind==="rendered"?e.cleverError.value.rendered:e.cleverError.value?.oneofKind==="raw"?ee(e.cleverError.value.raw):void 0}:void 0}}function In(e){if(e==null)return"Unknown";const t=ih[e];return!t||t.endsWith("_UNKNOWN")?"Unknown":t.split("_").map(n=>n.charAt(0)+n.slice(1).toLowerCase()).join("")}function Pl(e){if(e==null)return null;switch(e){case Zs.CREATED:return"Created";case Zs.DELETED:return"Deleted";case Zs.NONE:case Zs.ID_OPERATION_UNKNOWN:return"None";default:return"Unknown"}}function Ll(e){if(e==null)return null;switch(e){case ui.EXISTS:return"Exists";case ui.DOES_NOT_EXIST:return"DoesNotExist";case ui.UNKNOWN:return"Unknown";default:return"Unknown"}}function Vl(e){if(e==null)return null;switch(e){case ls.OBJECT_WRITE:return"ObjectWrite";case ls.PACKAGE_WRITE:return"PackageWrite";case ls.DOES_NOT_EXIST:return"DoesNotExist";case ls.ACCUMULATOR_WRITE:return"AccumulatorWriteV1";case ls.UNKNOWN:return"Unknown";default:return"Unknown"}}function Nk(e){if(e==null)return null;switch(e){case On.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:return"Unknown";case On.READ_ONLY_ROOT:return"ReadOnlyRoot";case On.MUTATE_CONSENSUS_STREAM_ENDED:return"MutateConsensusStreamEnded";case On.READ_CONSENSUS_STREAM_ENDED:return"ReadConsensusStreamEnded";case On.CANCELED:return"Cancelled";case On.PER_EPOCH_CONFIG:return"PerEpochConfig";default:return"Unknown"}}function Rk({effects:e}){if(!e)return null;const t=e.changedObjects.map(n=>({objectId:n.objectId,inputState:Ll(n.inputState),inputVersion:n.inputVersion?.toString()??null,inputDigest:n.inputDigest??null,inputOwner:Dn(n.inputOwner),outputState:Vl(n.outputState),outputVersion:n.outputVersion?.toString()??null,outputDigest:n.outputDigest??null,outputOwner:Dn(n.outputOwner),idOperation:Pl(n.idOperation)}));return{bcs:e.bcs?.value,version:2,status:e.status?.success?{success:!0,error:null}:{success:!1,error:fc(e.status.error)},gasUsed:{computationCost:e.gasUsed?.computationCost?.toString(),storageCost:e.gasUsed?.storageCost?.toString(),storageRebate:e.gasUsed?.storageRebate?.toString(),nonRefundableStorageFee:e.gasUsed?.nonRefundableStorageFee?.toString()},transactionDigest:e.transactionDigest,gasObject:{objectId:e.gasObject?.objectId,inputState:Ll(e.gasObject?.inputState),inputVersion:e.gasObject?.inputVersion?.toString()??null,inputDigest:e.gasObject?.inputDigest??null,inputOwner:Dn(e.gasObject?.inputOwner),outputState:Vl(e.gasObject?.outputState),outputVersion:e.gasObject?.outputVersion?.toString()??null,outputDigest:e.gasObject?.outputDigest??null,outputOwner:Dn(e.gasObject?.outputOwner),idOperation:Pl(e.gasObject?.idOperation)},eventsDigest:e.eventsDigest??null,dependencies:e.dependencies,lamportVersion:e.lamportVersion?.toString()??null,changedObjects:t,unchangedConsensusObjects:e.unchangedConsensusObjects.map(n=>({kind:Nk(n.kind),objectId:n.objectId,version:n.version?.toString()??null,digest:n.digest??null})),auxiliaryDataDigest:e.auxiliaryDataDigest??null}}function Ba(e,t){const n={};t?.objectTypes&&e.effects?.changedObjects?.forEach(c=>{c.objectId&&c.objectType&&(n[c.objectId]=c.objectType)});let s;if(t?.transaction){const c=e.transaction;if(!c)throw new Error("Transaction data is required but missing from gRPC response");const l=rh(c);s={gasData:l.gasData,sender:l.sender,expiration:l.expiration,commands:l.commands,inputs:l.inputs,version:l.version}}const r=t?.bcs?e.transaction?.bcs?.value:void 0,i=t?.effects?Rk({effects:e.effects}):void 0,a=e.effects?.status?.success?{success:!0,error:null}:{success:!1,error:e.effects?.status?.error?fc(e.effects.status.error):{$kind:"Unknown",message:"Transaction failed",Unknown:null}},o={digest:e.digest,epoch:e.effects?.epoch?.toString()??null,status:a,effects:i,objectTypes:t?.objectTypes?n:void 0,transaction:s,bcs:r,signatures:e.signatures?.map(c=>ee(c.bcs?.value))??[],balanceChanges:t?.balanceChanges?e.balanceChanges?.map(c=>({coinType:c.coinType,address:c.address,amount:c.amount}))??[]:void 0,events:t?.events?e.events?.events.map(c=>({packageId:re(c.packageId),module:c.module,sender:re(c.sender),eventType:c.eventType,bcs:c.contents?.value??new Uint8Array,json:c.json?je.toJson(c.json):null}))??[]:void 0};return a.success?{$kind:"Transaction",Transaction:o}:{$kind:"FailedTransaction",FailedTransaction:o}}function Fl(e){let t=null;return e.reference===_o.IMMUTABLE?t="immutable":e.reference===_o.MUTABLE&&(t="mutable"),{reference:t,body:So(e.body)}}function So(e){switch(e.type){case tt.TYPE_UNKNOWN:return{$kind:"unknown"};case tt.ADDRESS:return{$kind:"address"};case tt.BOOL:return{$kind:"bool"};case tt.U8:return{$kind:"u8"};case tt.U16:return{$kind:"u16"};case tt.U32:return{$kind:"u32"};case tt.U64:return{$kind:"u64"};case tt.U128:return{$kind:"u128"};case tt.U256:return{$kind:"u256"};case tt.VECTOR:return{$kind:"vector",vector:So(e.typeParameterInstantiation[0])};case tt.DATATYPE:return{$kind:"datatype",datatype:{typeName:e.typeName,typeParameters:e.typeParameterInstantiation.map(t=>So(t))}};case tt.TYPE_PARAMETER:return{$kind:"typeParameter",index:e.typeParameter};default:return{$kind:"unknown"}}}let na=(function(e){return e[e.ED25519=0]="ED25519",e[e.SECP256K1=1]="SECP256K1",e[e.SECP256R1=2]="SECP256R1",e[e.MULTISIG=3]="MULTISIG",e[e.BLS12381=4]="BLS12381",e[e.ZKLOGIN=5]="ZKLOGIN",e[e.PASSKEY=6]="PASSKEY",e})({});var Ck=class extends g{constructor(){super("sui.rpc.v2.UserSignature",[{no:1,name:"bcs",kind:"message",T:()=>it},{no:2,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",na]},{no:3,name:"simple",kind:"message",oneof:"signature",T:()=>mc},{no:4,name:"multisig",kind:"message",oneof:"signature",T:()=>Fk},{no:5,name:"zklogin",kind:"message",oneof:"signature",T:()=>lh},{no:6,name:"passkey",kind:"message",oneof:"signature",T:()=>uh}])}};const sa=new Ck;var Uk=class extends g{constructor(){super("sui.rpc.v2.SimpleSignature",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",na]},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"public_key",kind:"scalar",opt:!0,T:12}])}};const mc=new Uk;var $k=class extends g{constructor(){super("sui.rpc.v2.ZkLoginPublicIdentifier",[{no:1,name:"iss",kind:"scalar",opt:!0,T:9},{no:2,name:"address_seed",kind:"scalar",opt:!0,T:9}])}};const ch=new $k;var Dk=class extends g{constructor(){super("sui.rpc.v2.MultisigMemberPublicKey",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",na]},{no:2,name:"public_key",kind:"scalar",opt:!0,T:12},{no:3,name:"zklogin",kind:"message",T:()=>ch}])}};const Mk=new Dk;var Bk=class extends g{constructor(){super("sui.rpc.v2.MultisigMember",[{no:1,name:"public_key",kind:"message",T:()=>Mk},{no:2,name:"weight",kind:"scalar",opt:!0,T:13}])}};const jk=new Bk;var Pk=class extends g{constructor(){super("sui.rpc.v2.MultisigCommittee",[{no:1,name:"members",kind:"message",repeat:1,T:()=>jk},{no:2,name:"threshold",kind:"scalar",opt:!0,T:13}])}};const Lk=new Pk;var Vk=class extends g{constructor(){super("sui.rpc.v2.MultisigAggregatedSignature",[{no:1,name:"signatures",kind:"message",repeat:1,T:()=>Gk},{no:2,name:"bitmap",kind:"scalar",opt:!0,T:13},{no:3,name:"legacy_bitmap",kind:"scalar",opt:!0,T:12},{no:4,name:"committee",kind:"message",T:()=>Lk}])}};const Fk=new Vk;var Wk=class extends g{constructor(){super("sui.rpc.v2.MultisigMemberSignature",[{no:1,name:"scheme",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SignatureScheme",na]},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"zklogin",kind:"message",T:()=>lh},{no:4,name:"passkey",kind:"message",T:()=>uh}])}};const Gk=new Wk;var zk=class extends g{constructor(){super("sui.rpc.v2.ZkLoginAuthenticator",[{no:1,name:"inputs",kind:"message",T:()=>Hk},{no:2,name:"max_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"signature",kind:"message",T:()=>mc},{no:4,name:"public_identifier",kind:"message",T:()=>ch},{no:5,name:"jwk_id",kind:"message",T:()=>Kp}])}};const lh=new zk;var qk=class extends g{constructor(){super("sui.rpc.v2.ZkLoginInputs",[{no:1,name:"proof_points",kind:"message",T:()=>Zk},{no:2,name:"iss_base64_details",kind:"message",T:()=>Kk},{no:3,name:"header_base64",kind:"scalar",opt:!0,T:9},{no:4,name:"address_seed",kind:"scalar",opt:!0,T:9}])}};const Hk=new qk;var Jk=class extends g{constructor(){super("sui.rpc.v2.ZkLoginProof",[{no:1,name:"a",kind:"message",T:()=>Wl},{no:2,name:"b",kind:"message",T:()=>e_},{no:3,name:"c",kind:"message",T:()=>Wl}])}};const Zk=new Jk;var Yk=class extends g{constructor(){super("sui.rpc.v2.ZkLoginClaim",[{no:1,name:"value",kind:"scalar",opt:!0,T:9},{no:2,name:"index_mod_4",kind:"scalar",opt:!0,T:13}])}};const Kk=new Yk;var Xk=class extends g{constructor(){super("sui.rpc.v2.CircomG1",[{no:1,name:"e0",kind:"scalar",opt:!0,T:9},{no:2,name:"e1",kind:"scalar",opt:!0,T:9},{no:3,name:"e2",kind:"scalar",opt:!0,T:9}])}};const Wl=new Xk;var Qk=class extends g{constructor(){super("sui.rpc.v2.CircomG2",[{no:1,name:"e00",kind:"scalar",opt:!0,T:9},{no:2,name:"e01",kind:"scalar",opt:!0,T:9},{no:3,name:"e10",kind:"scalar",opt:!0,T:9},{no:4,name:"e11",kind:"scalar",opt:!0,T:9},{no:5,name:"e20",kind:"scalar",opt:!0,T:9},{no:6,name:"e21",kind:"scalar",opt:!0,T:9}])}};const e_=new Qk;var t_=class extends g{constructor(){super("sui.rpc.v2.PasskeyAuthenticator",[{no:1,name:"authenticator_data",kind:"scalar",opt:!0,T:12},{no:2,name:"client_data_json",kind:"scalar",opt:!0,T:9},{no:3,name:"signature",kind:"message",T:()=>mc}])}};const uh=new t_;var n_=class extends g{constructor(){super("sui.rpc.v2.ValidatorCommittee",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"members",kind:"message",repeat:1,T:()=>dh}])}};const s_=new n_;var r_=class extends g{constructor(){super("sui.rpc.v2.ValidatorCommitteeMember",[{no:1,name:"public_key",kind:"scalar",opt:!0,T:12},{no:2,name:"weight",kind:"scalar",opt:!0,T:4,L:0}])}};const dh=new r_;var i_=class extends g{constructor(){super("sui.rpc.v2.ValidatorAggregatedSignature",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"signature",kind:"scalar",opt:!0,T:12},{no:3,name:"bitmap",kind:"scalar",opt:!0,T:12}])}};const a_=new i_;var o_=class extends g{constructor(){super("sui.rpc.v2.BalanceChange",[{no:1,name:"address",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:3,name:"amount",kind:"scalar",opt:!0,T:9}])}};const c_=new o_;var l_=class extends g{constructor(){super("sui.rpc.v2.TransactionEvents",[{no:1,name:"bcs",kind:"message",T:()=>it},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"events",kind:"message",repeat:1,T:()=>p_}])}};const u_=new l_;var d_=class extends g{constructor(){super("sui.rpc.v2.Event",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module",kind:"scalar",opt:!0,T:9},{no:3,name:"sender",kind:"scalar",opt:!0,T:9},{no:4,name:"event_type",kind:"scalar",opt:!0,T:9},{no:5,name:"contents",kind:"message",T:()=>it},{no:6,name:"json",kind:"message",T:()=>je}])}};const p_=new d_;var h_=class extends g{constructor(){super("sui.rpc.v2.ExecutedTransaction",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"transaction",kind:"message",T:()=>hc},{no:3,name:"signatures",kind:"message",repeat:1,T:()=>sa},{no:4,name:"effects",kind:"message",T:()=>kk},{no:5,name:"events",kind:"message",T:()=>u_},{no:6,name:"checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"timestamp",kind:"message",T:()=>Bt},{no:8,name:"balance_changes",kind:"message",repeat:1,T:()=>c_},{no:9,name:"objects",kind:"message",T:()=>Xp}])}};const Ur=new h_;var f_=class extends g{constructor(){super("google.protobuf.FieldMask",[{no:1,name:"paths",kind:"scalar",repeat:2,T:9}])}internalJsonWrite(e,t){const n=/[A-Z]|(_([.0-9_]|$))/g;return e.paths.map(s=>{if(n.test(s))throw new Error('Unable to encode FieldMask to JSON. lowerCamelCase of path name "'+s+'" is irreversible.');return Di(s)}).join(",")}internalJsonRead(e,t,n){if(typeof e!="string")throw new Error("Unable to parse FieldMask from JSON "+tn(e)+". Expected string.");if(n||(n=this.create()),e==="")return n;let s=r=>{if(r.includes("_"))throw new Error("Unable to parse FieldMask from JSON. Path names must be lowerCamelCase.");return r.replace(/[A-Z]/g,i=>"_"+i.toLowerCase())};return n.paths=e.split(",").map(s),n}};const It=new f_;function m_(e,t){var n,s,r;let i=e;return i.service=t,i.localName=(n=i.localName)!==null&&n!==void 0?n:Di(i.name),i.serverStreaming=!!i.serverStreaming,i.clientStreaming=!!i.clientStreaming,i.options=(s=i.options)!==null&&s!==void 0?s:{},i.idempotency=(r=i.idempotency)!==null&&r!==void 0?r:void 0,i}class Hn{constructor(t,n,s){this.typeName=t,this.methods=n.map(r=>m_(r,this)),this.options=s??{}}}class ce extends Error{constructor(t,n="UNKNOWN",s){super(t),this.name="RpcError",Object.setPrototypeOf(this,new.target.prototype),this.code=n,this.meta=s??{}}toString(){const t=[this.name+": "+this.message];this.code&&(t.push(""),t.push("Code: "+this.code)),this.serviceName&&this.methodName&&t.push("Method: "+this.serviceName+"/"+this.methodName);let n=Object.entries(this.meta);if(n.length){t.push(""),t.push("Meta:");for(let[s,r]of n)t.push(` ${s}: ${r}`)}return t.join(`
11
- `)}}function g_(e,t){if(!t)return e;let n={};zr(e,n),zr(t,n);for(let s of Object.keys(t)){let r=t[s];switch(s){case"jsonOptions":n.jsonOptions=Wy(e.jsonOptions,n.jsonOptions);break;case"binaryOptions":n.binaryOptions=xy(e.binaryOptions,n.binaryOptions);break;case"meta":n.meta={},zr(e.meta,n.meta),zr(t.meta,n.meta);break;case"interceptors":n.interceptors=e.interceptors?e.interceptors.concat(r):r.concat();break}}return n}function zr(e,t){if(!e)return;let n=t;for(let[s,r]of Object.entries(e))r instanceof Date?n[s]=new Date(r.getTime()):Array.isArray(r)?n[s]=r.concat():n[s]=r}var ot;(function(e){e[e.PENDING=0]="PENDING",e[e.REJECTED=1]="REJECTED",e[e.RESOLVED=2]="RESOLVED"})(ot||(ot={}));class hn{constructor(t=!0){this._state=ot.PENDING,this._promise=new Promise((n,s)=>{this._resolve=n,this._reject=s}),t&&this._promise.catch(n=>{})}get state(){return this._state}get promise(){return this._promise}resolve(t){if(this.state!==ot.PENDING)throw new Error(`cannot resolve ${ot[this.state].toLowerCase()}`);this._resolve(t),this._state=ot.RESOLVED}reject(t){if(this.state!==ot.PENDING)throw new Error(`cannot reject ${ot[this.state].toLowerCase()}`);this._reject(t),this._state=ot.REJECTED}resolvePending(t){this._state===ot.PENDING&&this.resolve(t)}rejectPending(t){this._state===ot.PENDING&&this.reject(t)}}class v_{constructor(){this._lis={nxt:[],msg:[],err:[],cmp:[]},this._closed=!1,this._itState={q:[]}}onNext(t){return this.addLis(t,this._lis.nxt)}onMessage(t){return this.addLis(t,this._lis.msg)}onError(t){return this.addLis(t,this._lis.err)}onComplete(t){return this.addLis(t,this._lis.cmp)}addLis(t,n){return n.push(t),()=>{let s=n.indexOf(t);s>=0&&n.splice(s,1)}}clearLis(){for(let t of Object.values(this._lis))t.splice(0,t.length)}get closed(){return this._closed!==!1}notifyNext(t,n,s){K((t?1:0)+(n?1:0)+(s?1:0)<=1,"only one emission at a time"),t&&this.notifyMessage(t),n&&this.notifyError(n),s&&this.notifyComplete()}notifyMessage(t){K(!this.closed,"stream is closed"),this.pushIt({value:t,done:!1}),this._lis.msg.forEach(n=>n(t)),this._lis.nxt.forEach(n=>n(t,void 0,!1))}notifyError(t){K(!this.closed,"stream is closed"),this._closed=t,this.pushIt(t),this._lis.err.forEach(n=>n(t)),this._lis.nxt.forEach(n=>n(void 0,t,!1)),this.clearLis()}notifyComplete(){K(!this.closed,"stream is closed"),this._closed=!0,this.pushIt({value:null,done:!0}),this._lis.cmp.forEach(t=>t()),this._lis.nxt.forEach(t=>t(void 0,void 0,!0)),this.clearLis()}[Symbol.asyncIterator](){return this._closed===!0?this.pushIt({value:null,done:!0}):this._closed!==!1&&this.pushIt(this._closed),{next:()=>{let t=this._itState;K(t,"bad state"),K(!t.p,"iterator contract broken");let n=t.q.shift();return n?"value"in n?Promise.resolve(n):Promise.reject(n):(t.p=new hn,t.p.promise)}}}pushIt(t){let n=this._itState;if(n.p){const s=n.p;K(s.state==ot.PENDING,"iterator contract broken"),"value"in t?s.resolve(t):s.reject(t),delete n.p}else n.q.push(t)}}var b_=function(e,t,n,s){function r(i){return i instanceof n?i:new n(function(a){a(i)})}return new(n||(n=Promise))(function(i,a){function o(u){try{l(s.next(u))}catch(d){a(d)}}function c(u){try{l(s.throw(u))}catch(d){a(d)}}function l(u){u.done?i(u.value):r(u.value).then(o,c)}l((s=s.apply(e,t||[])).next())})};class w_{constructor(t,n,s,r,i,a,o){this.method=t,this.requestHeaders=n,this.request=s,this.headers=r,this.response=i,this.status=a,this.trailers=o}then(t,n){return this.promiseFinished().then(s=>t?Promise.resolve(t(s)):s,s=>n?Promise.resolve(n(s)):Promise.reject(s))}promiseFinished(){return b_(this,void 0,void 0,function*(){let[t,n,s,r]=yield Promise.all([this.headers,this.response,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:t,response:n,status:s,trailers:r}})}}var y_=function(e,t,n,s){function r(i){return i instanceof n?i:new n(function(a){a(i)})}return new(n||(n=Promise))(function(i,a){function o(u){try{l(s.next(u))}catch(d){a(d)}}function c(u){try{l(s.throw(u))}catch(d){a(d)}}function l(u){u.done?i(u.value):r(u.value).then(o,c)}l((s=s.apply(e,t||[])).next())})};class T_{constructor(t,n,s,r,i,a,o){this.method=t,this.requestHeaders=n,this.request=s,this.headers=r,this.responses=i,this.status=a,this.trailers=o}then(t,n){return this.promiseFinished().then(s=>t?Promise.resolve(t(s)):s,s=>n?Promise.resolve(n(s)):Promise.reject(s))}promiseFinished(){return y_(this,void 0,void 0,function*(){let[t,n,s]=yield Promise.all([this.headers,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:t,status:n,trailers:s}})}}function ye(e,t,n,s,r){var i,a,o,c;if(e=="unary"){let l=(u,d,h)=>t.unary(u,d,h);for(const u of((i=s.interceptors)!==null&&i!==void 0?i:[]).filter(d=>d.interceptUnary).reverse()){const d=l;l=(h,f,m)=>u.interceptUnary(d,h,f,m)}return l(n,r,s)}if(e=="serverStreaming"){let l=(u,d,h)=>t.serverStreaming(u,d,h);for(const u of((a=s.interceptors)!==null&&a!==void 0?a:[]).filter(d=>d.interceptServerStreaming).reverse()){const d=l;l=(h,f,m)=>u.interceptServerStreaming(d,h,f,m)}return l(n,r,s)}if(e=="clientStreaming"){let l=(u,d)=>t.clientStreaming(u,d);for(const u of((o=s.interceptors)!==null&&o!==void 0?o:[]).filter(d=>d.interceptClientStreaming).reverse()){const d=l;l=(h,f)=>u.interceptClientStreaming(d,h,f)}return l(n,s)}if(e=="duplex"){let l=(u,d)=>t.duplex(u,d);for(const u of((c=s.interceptors)!==null&&c!==void 0?c:[]).filter(d=>d.interceptDuplex).reverse()){const d=l;l=(h,f)=>u.interceptDuplex(d,h,f)}return l(n,s)}$y(e)}let k_=(function(e){return e[e.ENABLED=0]="ENABLED",e[e.DISABLED=1]="DISABLED",e})({});var __=class extends g{constructor(){super("sui.rpc.v2.ExecuteTransactionRequest",[{no:1,name:"transaction",kind:"message",T:()=>hc},{no:2,name:"signatures",kind:"message",repeat:1,T:()=>sa},{no:3,name:"read_mask",kind:"message",T:()=>It}])}};const E_=new __;var S_=class extends g{constructor(){super("sui.rpc.v2.ExecuteTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>Ur}])}};const I_=new S_;var A_=class extends g{constructor(){super("sui.rpc.v2.SimulateTransactionRequest",[{no:1,name:"transaction",kind:"message",T:()=>hc},{no:2,name:"read_mask",kind:"message",T:()=>It},{no:3,name:"checks",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.SimulateTransactionRequest.TransactionChecks",k_]},{no:4,name:"do_gas_selection",kind:"scalar",opt:!0,T:8}])}};const x_=new A_;var O_=class extends g{constructor(){super("sui.rpc.v2.SimulateTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>Ur},{no:2,name:"command_outputs",kind:"message",repeat:1,T:()=>C_},{no:3,name:"suggested_gas_price",kind:"scalar",opt:!0,T:4,L:0}])}};const N_=new O_;var R_=class extends g{constructor(){super("sui.rpc.v2.CommandResult",[{no:1,name:"return_values",kind:"message",repeat:1,T:()=>Gl},{no:2,name:"mutated_by_ref",kind:"message",repeat:1,T:()=>Gl}])}};const C_=new R_;var U_=class extends g{constructor(){super("sui.rpc.v2.CommandOutput",[{no:1,name:"argument",kind:"message",T:()=>Mt},{no:2,name:"value",kind:"message",T:()=>it},{no:3,name:"json",kind:"message",T:()=>je}])}};const Gl=new U_,ja=new Hn("sui.rpc.v2.TransactionExecutionService",[{name:"ExecuteTransaction",options:{},I:E_,O:I_},{name:"SimulateTransaction",options:{},I:x_,O:N_}]);var $_=class{constructor(e){this._transport=e,this.typeName=ja.typeName,this.methods=ja.methods,this.options=ja.options}executeTransaction(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}simulateTransaction(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}},D_=class extends g{constructor(){super("sui.rpc.v2.ProtocolConfig",[{no:1,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"feature_flags",kind:"map",K:9,V:{kind:"scalar",T:8}},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}])}};const M_=new D_;var B_=class extends g{constructor(){super("sui.rpc.v2.SystemState",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"validators",kind:"message",T:()=>Z_},{no:5,name:"storage_fund",kind:"message",T:()=>H_},{no:6,name:"parameters",kind:"message",T:()=>F_},{no:7,name:"reference_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"validator_report_records",kind:"message",repeat:1,T:()=>L_},{no:9,name:"stake_subsidy",kind:"message",T:()=>z_},{no:10,name:"safe_mode",kind:"scalar",opt:!0,T:8},{no:11,name:"safe_mode_storage_rewards",kind:"scalar",opt:!0,T:4,L:0},{no:12,name:"safe_mode_computation_rewards",kind:"scalar",opt:!0,T:4,L:0},{no:13,name:"safe_mode_storage_rebates",kind:"scalar",opt:!0,T:4,L:0},{no:14,name:"safe_mode_non_refundable_storage_fee",kind:"scalar",opt:!0,T:4,L:0},{no:15,name:"epoch_start_timestamp_ms",kind:"scalar",opt:!0,T:4,L:0},{no:16,name:"extra_fields",kind:"message",T:()=>lt}])}};const j_=new B_;var P_=class extends g{constructor(){super("sui.rpc.v2.ValidatorReportRecord",[{no:1,name:"reported",kind:"scalar",opt:!0,T:9},{no:2,name:"reporters",kind:"scalar",repeat:2,T:9}])}};const L_=new P_;var V_=class extends g{constructor(){super("sui.rpc.v2.SystemParameters",[{no:1,name:"epoch_duration_ms",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"stake_subsidy_start_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"min_validator_count",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"max_validator_count",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"min_validator_joining_stake",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"validator_low_stake_threshold",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"validator_very_low_stake_threshold",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"validator_low_stake_grace_period",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"extra_fields",kind:"message",T:()=>lt}])}};const F_=new V_;var W_=class extends g{constructor(){super("sui.rpc.v2.MoveTable",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"size",kind:"scalar",opt:!0,T:4,L:0}])}};const lt=new W_;var G_=class extends g{constructor(){super("sui.rpc.v2.StakeSubsidy",[{no:1,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"distribution_counter",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"current_distribution_amount",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"stake_subsidy_period_length",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"stake_subsidy_decrease_rate",kind:"scalar",opt:!0,T:13},{no:6,name:"extra_fields",kind:"message",T:()=>lt}])}};const z_=new G_;var q_=class extends g{constructor(){super("sui.rpc.v2.StorageFund",[{no:1,name:"total_object_storage_rebates",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"non_refundable_balance",kind:"scalar",opt:!0,T:4,L:0}])}};const H_=new q_;var J_=class extends g{constructor(){super("sui.rpc.v2.ValidatorSet",[{no:1,name:"total_stake",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"active_validators",kind:"message",repeat:1,T:()=>K_},{no:3,name:"pending_active_validators",kind:"message",T:()=>lt},{no:4,name:"pending_removals",kind:"scalar",repeat:1,T:4,L:0},{no:5,name:"staking_pool_mappings",kind:"message",T:()=>lt},{no:6,name:"inactive_validators",kind:"message",T:()=>lt},{no:7,name:"validator_candidates",kind:"message",T:()=>lt},{no:8,name:"at_risk_validators",kind:"map",K:9,V:{kind:"scalar",T:4,L:0}},{no:9,name:"extra_fields",kind:"message",T:()=>lt}])}};const Z_=new J_;var Y_=class extends g{constructor(){super("sui.rpc.v2.Validator",[{no:1,name:"name",kind:"scalar",opt:!0,T:9},{no:2,name:"address",kind:"scalar",opt:!0,T:9},{no:3,name:"description",kind:"scalar",opt:!0,T:9},{no:4,name:"image_url",kind:"scalar",opt:!0,T:9},{no:5,name:"project_url",kind:"scalar",opt:!0,T:9},{no:7,name:"protocol_public_key",kind:"scalar",opt:!0,T:12},{no:8,name:"proof_of_possession",kind:"scalar",opt:!0,T:12},{no:10,name:"network_public_key",kind:"scalar",opt:!0,T:12},{no:12,name:"worker_public_key",kind:"scalar",opt:!0,T:12},{no:13,name:"network_address",kind:"scalar",opt:!0,T:9},{no:14,name:"p2p_address",kind:"scalar",jsonName:"p2pAddress",opt:!0,T:9},{no:15,name:"primary_address",kind:"scalar",opt:!0,T:9},{no:16,name:"worker_address",kind:"scalar",opt:!0,T:9},{no:18,name:"next_epoch_protocol_public_key",kind:"scalar",opt:!0,T:12},{no:19,name:"next_epoch_proof_of_possession",kind:"scalar",opt:!0,T:12},{no:21,name:"next_epoch_network_public_key",kind:"scalar",opt:!0,T:12},{no:23,name:"next_epoch_worker_public_key",kind:"scalar",opt:!0,T:12},{no:24,name:"next_epoch_network_address",kind:"scalar",opt:!0,T:9},{no:25,name:"next_epoch_p2p_address",kind:"scalar",jsonName:"nextEpochP2pAddress",opt:!0,T:9},{no:26,name:"next_epoch_primary_address",kind:"scalar",opt:!0,T:9},{no:27,name:"next_epoch_worker_address",kind:"scalar",opt:!0,T:9},{no:28,name:"metadata_extra_fields",kind:"message",T:()=>lt},{no:29,name:"voting_power",kind:"scalar",opt:!0,T:4,L:0},{no:30,name:"operation_cap_id",kind:"scalar",opt:!0,T:9},{no:31,name:"gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:32,name:"staking_pool",kind:"message",T:()=>Q_},{no:33,name:"commission_rate",kind:"scalar",opt:!0,T:4,L:0},{no:34,name:"next_epoch_stake",kind:"scalar",opt:!0,T:4,L:0},{no:35,name:"next_epoch_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:36,name:"next_epoch_commission_rate",kind:"scalar",opt:!0,T:4,L:0},{no:37,name:"extra_fields",kind:"message",T:()=>lt}])}};const K_=new Y_;var X_=class extends g{constructor(){super("sui.rpc.v2.StakingPool",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"activation_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"deactivation_epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"sui_balance",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"rewards_pool",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"pool_token_balance",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"exchange_rates",kind:"message",T:()=>lt},{no:8,name:"pending_stake",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"pending_total_sui_withdraw",kind:"scalar",opt:!0,T:4,L:0},{no:10,name:"pending_pool_token_withdraw",kind:"scalar",opt:!0,T:4,L:0},{no:11,name:"extra_fields",kind:"message",T:()=>lt}])}};const Q_=new X_;var eE=class extends g{constructor(){super("sui.rpc.v2.Epoch",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"committee",kind:"message",T:()=>s_},{no:3,name:"system_state",kind:"message",T:()=>j_},{no:4,name:"first_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"last_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"start",kind:"message",T:()=>Bt},{no:7,name:"end",kind:"message",T:()=>Bt},{no:8,name:"reference_gas_price",kind:"scalar",opt:!0,T:4,L:0},{no:9,name:"protocol_config",kind:"message",T:()=>M_}])}};const tE=new eE;var nE=class extends g{constructor(){super("sui.rpc.v2.CheckpointContents",[{no:1,name:"bcs",kind:"message",T:()=>it},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"version",kind:"scalar",opt:!0,T:5},{no:4,name:"transactions",kind:"message",repeat:1,T:()=>iE}])}};const sE=new nE;var rE=class extends g{constructor(){super("sui.rpc.v2.CheckpointedTransactionInfo",[{no:1,name:"transaction",kind:"scalar",opt:!0,T:9},{no:2,name:"effects",kind:"scalar",opt:!0,T:9},{no:3,name:"signatures",kind:"message",repeat:1,T:()=>sa},{no:4,name:"address_aliases_versions",kind:"message",repeat:1,T:()=>oE}])}};const iE=new rE;var aE=class extends g{constructor(){super("sui.rpc.v2.AddressAliasesVersion",[{no:1,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}};const oE=new aE;let cE=(function(e){return e[e.CHECKPOINT_COMMITMENT_KIND_UNKNOWN=0]="CHECKPOINT_COMMITMENT_KIND_UNKNOWN",e[e.ECMH_LIVE_OBJECT_SET=1]="ECMH_LIVE_OBJECT_SET",e[e.CHECKPOINT_ARTIFACTS=2]="CHECKPOINT_ARTIFACTS",e})({});var lE=class extends g{constructor(){super("sui.rpc.v2.CheckpointSummary",[{no:1,name:"bcs",kind:"message",T:()=>it},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"sequence_number",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"total_network_transactions",kind:"scalar",opt:!0,T:4,L:0},{no:6,name:"content_digest",kind:"scalar",opt:!0,T:9},{no:7,name:"previous_digest",kind:"scalar",opt:!0,T:9},{no:8,name:"epoch_rolling_gas_cost_summary",kind:"message",T:()=>oh},{no:9,name:"timestamp",kind:"message",T:()=>Bt},{no:10,name:"commitments",kind:"message",repeat:1,T:()=>ph},{no:11,name:"end_of_epoch_data",kind:"message",T:()=>pE},{no:12,name:"version_specific_data",kind:"scalar",opt:!0,T:12}])}};const uE=new lE;var dE=class extends g{constructor(){super("sui.rpc.v2.EndOfEpochData",[{no:1,name:"next_epoch_committee",kind:"message",repeat:1,T:()=>dh},{no:2,name:"next_epoch_protocol_version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"epoch_commitments",kind:"message",repeat:1,T:()=>ph}])}};const pE=new dE;var hE=class extends g{constructor(){super("sui.rpc.v2.CheckpointCommitment",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CheckpointCommitment.CheckpointCommitmentKind",cE]},{no:2,name:"digest",kind:"scalar",opt:!0,T:9}])}};const ph=new hE;var fE=class extends g{constructor(){super("sui.rpc.v2.Checkpoint",[{no:1,name:"sequence_number",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"digest",kind:"scalar",opt:!0,T:9},{no:3,name:"summary",kind:"message",T:()=>uE},{no:4,name:"signature",kind:"message",T:()=>a_},{no:5,name:"contents",kind:"message",T:()=>sE},{no:6,name:"transactions",kind:"message",repeat:1,T:()=>Ur},{no:7,name:"objects",kind:"message",T:()=>Xp}])}};const hh=new fE;var mE=class extends g{constructor(){super("google.protobuf.Any",[{no:1,name:"type_url",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:12}])}pack(e,t){return{typeUrl:this.typeNameToUrl(t.typeName),value:t.toBinary(e)}}unpack(e,t,n){if(!this.contains(e,t))throw new Error("Cannot unpack google.protobuf.Any with typeUrl '"+e.typeUrl+"' as "+t.typeName+".");return t.fromBinary(e.value,n)}contains(e,t){return e.typeUrl.length?(typeof t=="string"?t:t.typeName)===this.typeUrlToName(e.typeUrl):!1}internalJsonWrite(e,t){if(e.typeUrl==="")return{};let n=this.typeUrlToName(e.typeUrl),s=Fp(t),r=s.typeRegistry?.find(o=>o.typeName===n);if(!r)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+e.typeUrl+"' to JSON. The specified type "+n+" is not available in the type registry.");let i=r.fromBinary(e.value,{readUnknownField:!1}),a=r.internalJsonWrite(i,s);return(n.startsWith("google.protobuf.")||!Ri(a))&&(a={value:a}),a["@type"]=e.typeUrl,a}internalJsonRead(e,t,n){if(!Ri(e))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+tn(e)+".");if(typeof e["@type"]!="string"||e["@type"]=="")return this.create();let s=this.typeUrlToName(e["@type"]),r=t?.typeRegistry?.find(a=>a.typeName==s);if(!r)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+s+" is not available in the type registry.");let i;if(s.startsWith("google.protobuf.")&&e.hasOwnProperty("value"))i=r.fromJson(e.value,t);else{let a=Object.assign({},e);delete a["@type"],i=r.fromJson(a,t)}return n===void 0&&(n=this.create()),n.typeUrl=e["@type"],n.value=r.toBinary(i),n}typeNameToUrl(e){if(!e.length)throw new Error("invalid type name: "+e);return"type.googleapis.com/"+e}typeUrlToName(e){if(!e.length)throw new Error("invalid type url: "+e);let t=e.lastIndexOf("/"),n=t>0?e.substring(t+1):e;if(!n.length)throw new Error("invalid type url: "+e);return n}};const gE=new mE;var vE=class extends g{constructor(){super("google.rpc.Status",[{no:1,name:"code",kind:"scalar",T:5},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"details",kind:"message",repeat:1,T:()=>gE}])}};const fh=new vE;var bE=class extends g{constructor(){super("sui.rpc.v2.GetServiceInfoRequest",[])}};const wE=new bE;var yE=class extends g{constructor(){super("sui.rpc.v2.GetServiceInfoResponse",[{no:1,name:"chain_id",kind:"scalar",opt:!0,T:9},{no:2,name:"chain",kind:"scalar",opt:!0,T:9},{no:3,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"checkpoint_height",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"timestamp",kind:"message",T:()=>Bt},{no:6,name:"lowest_available_checkpoint",kind:"scalar",opt:!0,T:4,L:0},{no:7,name:"lowest_available_checkpoint_objects",kind:"scalar",opt:!0,T:4,L:0},{no:8,name:"server",kind:"scalar",opt:!0,T:9}])}};const TE=new yE;var kE=class extends g{constructor(){super("sui.rpc.v2.GetObjectRequest",[{no:1,name:"object_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"read_mask",kind:"message",T:()=>It}])}};const mh=new kE;var _E=class extends g{constructor(){super("sui.rpc.v2.GetObjectResponse",[{no:1,name:"object",kind:"message",T:()=>Fn}])}};const EE=new _E;var SE=class extends g{constructor(){super("sui.rpc.v2.BatchGetObjectsRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>mh},{no:2,name:"read_mask",kind:"message",T:()=>It}])}};const IE=new SE;var AE=class extends g{constructor(){super("sui.rpc.v2.BatchGetObjectsResponse",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>NE}])}};const xE=new AE;var OE=class extends g{constructor(){super("sui.rpc.v2.GetObjectResult",[{no:1,name:"object",kind:"message",oneof:"result",T:()=>Fn},{no:2,name:"error",kind:"message",oneof:"result",T:()=>fh}])}};const NE=new OE;var RE=class extends g{constructor(){super("sui.rpc.v2.GetTransactionRequest",[{no:1,name:"digest",kind:"scalar",opt:!0,T:9},{no:2,name:"read_mask",kind:"message",T:()=>It}])}};const CE=new RE;var UE=class extends g{constructor(){super("sui.rpc.v2.GetTransactionResponse",[{no:1,name:"transaction",kind:"message",T:()=>Ur}])}};const $E=new UE;var DE=class extends g{constructor(){super("sui.rpc.v2.BatchGetTransactionsRequest",[{no:1,name:"digests",kind:"scalar",repeat:2,T:9},{no:2,name:"read_mask",kind:"message",T:()=>It}])}};const ME=new DE;var BE=class extends g{constructor(){super("sui.rpc.v2.BatchGetTransactionsResponse",[{no:1,name:"transactions",kind:"message",repeat:1,T:()=>LE}])}};const jE=new BE;var PE=class extends g{constructor(){super("sui.rpc.v2.GetTransactionResult",[{no:1,name:"transaction",kind:"message",oneof:"result",T:()=>Ur},{no:2,name:"error",kind:"message",oneof:"result",T:()=>fh}])}};const LE=new PE;var VE=class extends g{constructor(){super("sui.rpc.v2.GetCheckpointRequest",[{no:1,name:"sequence_number",kind:"scalar",oneof:"checkpointId",T:4,L:0},{no:2,name:"digest",kind:"scalar",oneof:"checkpointId",T:9},{no:3,name:"read_mask",kind:"message",T:()=>It}])}};const FE=new VE;var WE=class extends g{constructor(){super("sui.rpc.v2.GetCheckpointResponse",[{no:1,name:"checkpoint",kind:"message",T:()=>hh}])}};const GE=new WE;var zE=class extends g{constructor(){super("sui.rpc.v2.GetEpochRequest",[{no:1,name:"epoch",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"read_mask",kind:"message",T:()=>It}])}};const qE=new zE;var HE=class extends g{constructor(){super("sui.rpc.v2.GetEpochResponse",[{no:1,name:"epoch",kind:"message",T:()=>tE}])}};const JE=new HE,Pa=new Hn("sui.rpc.v2.LedgerService",[{name:"GetServiceInfo",options:{},I:wE,O:TE},{name:"GetObject",options:{},I:mh,O:EE},{name:"BatchGetObjects",options:{},I:IE,O:xE},{name:"GetTransaction",options:{},I:CE,O:$E},{name:"BatchGetTransactions",options:{},I:ME,O:jE},{name:"GetCheckpoint",options:{},I:FE,O:GE},{name:"GetEpoch",options:{},I:qE,O:JE}]);var ZE=class{constructor(e){this._transport=e,this.typeName=Pa.typeName,this.methods=Pa.methods,this.options=Pa.options}getServiceInfo(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getObject(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}batchGetObjects(e,t){const n=this.methods[2],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getTransaction(e,t){const n=this.methods[3],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}batchGetTransactions(e,t){const n=this.methods[4],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getCheckpoint(e,t){const n=this.methods[5],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getEpoch(e,t){const n=this.methods[6],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}},YE=class extends g{constructor(){super("sui.rpc.v2.GetPackageRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9}])}};const KE=new YE;var XE=class extends g{constructor(){super("sui.rpc.v2.GetPackageResponse",[{no:1,name:"package",kind:"message",T:()=>qp}])}};const QE=new XE;var eS=class extends g{constructor(){super("sui.rpc.v2.GetDatatypeRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module_name",kind:"scalar",opt:!0,T:9},{no:3,name:"name",kind:"scalar",opt:!0,T:9}])}};const tS=new eS;var nS=class extends g{constructor(){super("sui.rpc.v2.GetDatatypeResponse",[{no:1,name:"datatype",kind:"message",T:()=>Hp}])}};const sS=new nS;var rS=class extends g{constructor(){super("sui.rpc.v2.GetFunctionRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"module_name",kind:"scalar",opt:!0,T:9},{no:3,name:"name",kind:"scalar",opt:!0,T:9}])}};const iS=new rS;var aS=class extends g{constructor(){super("sui.rpc.v2.GetFunctionResponse",[{no:1,name:"function",kind:"message",T:()=>Yp}])}};const oS=new aS;var cS=class extends g{constructor(){super("sui.rpc.v2.ListPackageVersionsRequest",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12}])}};const lS=new cS;var uS=class extends g{constructor(){super("sui.rpc.v2.ListPackageVersionsResponse",[{no:1,name:"versions",kind:"message",repeat:1,T:()=>hS},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const dS=new uS;var pS=class extends g{constructor(){super("sui.rpc.v2.PackageVersion",[{no:1,name:"package_id",kind:"scalar",opt:!0,T:9},{no:2,name:"version",kind:"scalar",opt:!0,T:4,L:0}])}};const hS=new pS,La=new Hn("sui.rpc.v2.MovePackageService",[{name:"GetPackage",options:{},I:KE,O:QE},{name:"GetDatatype",options:{},I:tS,O:sS},{name:"GetFunction",options:{},I:iS,O:oS},{name:"ListPackageVersions",options:{},I:lS,O:dS}]);var fS=class{constructor(e){this._transport=e,this.typeName=La.typeName,this.methods=La.methods,this.options=La.options}getPackage(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getDatatype(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getFunction(e,t){const n=this.methods[2],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}listPackageVersions(e,t){const n=this.methods[3],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}},mS=class extends g{constructor(){super("sui.rpc.v2.VerifySignatureRequest",[{no:1,name:"message",kind:"message",T:()=>it},{no:2,name:"signature",kind:"message",T:()=>sa},{no:3,name:"address",kind:"scalar",opt:!0,T:9},{no:4,name:"jwks",kind:"message",repeat:1,T:()=>nh}])}};const gS=new mS;var vS=class extends g{constructor(){super("sui.rpc.v2.VerifySignatureResponse",[{no:1,name:"is_valid",kind:"scalar",opt:!0,T:8},{no:2,name:"reason",kind:"scalar",opt:!0,T:9}])}};const bS=new vS,Va=new Hn("sui.rpc.v2.SignatureVerificationService",[{name:"VerifySignature",options:{},I:gS,O:bS}]);var wS=class{constructor(e){this._transport=e,this.typeName=Va.typeName,this.methods=Va.methods,this.options=Va.options}verifySignature(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}};let yS=(function(e){return e[e.METADATA_CAP_STATE_UNKNOWN=0]="METADATA_CAP_STATE_UNKNOWN",e[e.CLAIMED=1]="CLAIMED",e[e.UNCLAIMED=2]="UNCLAIMED",e[e.DELETED=3]="DELETED",e})({}),TS=(function(e){return e[e.SUPPLY_STATE_UNKNOWN=0]="SUPPLY_STATE_UNKNOWN",e[e.FIXED=1]="FIXED",e[e.BURN_ONLY=2]="BURN_ONLY",e})({}),kS=(function(e){return e[e.COIN_REGULATED_STATE_UNKNOWN=0]="COIN_REGULATED_STATE_UNKNOWN",e[e.REGULATED=1]="REGULATED",e[e.UNREGULATED=2]="UNREGULATED",e})({}),gh=(function(e){return e[e.DYNAMIC_FIELD_KIND_UNKNOWN=0]="DYNAMIC_FIELD_KIND_UNKNOWN",e[e.FIELD=1]="FIELD",e[e.OBJECT=2]="OBJECT",e})({});var _S=class extends g{constructor(){super("sui.rpc.v2.GetCoinInfoRequest",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9}])}};const ES=new _S;var SS=class extends g{constructor(){super("sui.rpc.v2.GetCoinInfoResponse",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:2,name:"metadata",kind:"message",T:()=>xS},{no:3,name:"treasury",kind:"message",T:()=>NS},{no:4,name:"regulated_metadata",kind:"message",T:()=>CS}])}};const IS=new SS;var AS=class extends g{constructor(){super("sui.rpc.v2.CoinMetadata",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"decimals",kind:"scalar",opt:!0,T:13},{no:3,name:"name",kind:"scalar",opt:!0,T:9},{no:4,name:"symbol",kind:"scalar",opt:!0,T:9},{no:5,name:"description",kind:"scalar",opt:!0,T:9},{no:6,name:"icon_url",kind:"scalar",opt:!0,T:9},{no:7,name:"metadata_cap_id",kind:"scalar",opt:!0,T:9},{no:8,name:"metadata_cap_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CoinMetadata.MetadataCapState",yS]}])}};const xS=new AS;var OS=class extends g{constructor(){super("sui.rpc.v2.CoinTreasury",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"total_supply",kind:"scalar",opt:!0,T:4,L:0},{no:3,name:"supply_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.CoinTreasury.SupplyState",TS]}])}};const NS=new OS;var RS=class extends g{constructor(){super("sui.rpc.v2.RegulatedCoinMetadata",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_metadata_object",kind:"scalar",opt:!0,T:9},{no:3,name:"deny_cap_object",kind:"scalar",opt:!0,T:9},{no:4,name:"allow_global_pause",kind:"scalar",opt:!0,T:8},{no:5,name:"variant",kind:"scalar",opt:!0,T:13},{no:6,name:"coin_regulated_state",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.RegulatedCoinMetadata.CoinRegulatedState",kS]}])}};const CS=new RS;var US=class extends g{constructor(){super("sui.rpc.v2.GetBalanceRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"coin_type",kind:"scalar",opt:!0,T:9}])}};const $S=new US;var DS=class extends g{constructor(){super("sui.rpc.v2.GetBalanceResponse",[{no:1,name:"balance",kind:"message",T:()=>vh}])}};const MS=new DS;var BS=class extends g{constructor(){super("sui.rpc.v2.ListBalancesRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12}])}};const jS=new BS;var PS=class extends g{constructor(){super("sui.rpc.v2.ListBalancesResponse",[{no:1,name:"balances",kind:"message",repeat:1,T:()=>vh},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const LS=new PS;var VS=class extends g{constructor(){super("sui.rpc.v2.Balance",[{no:1,name:"coin_type",kind:"scalar",opt:!0,T:9},{no:3,name:"balance",kind:"scalar",opt:!0,T:4,L:0},{no:4,name:"address_balance",kind:"scalar",opt:!0,T:4,L:0},{no:5,name:"coin_balance",kind:"scalar",opt:!0,T:4,L:0}])}};const vh=new VS;var FS=class extends g{constructor(){super("sui.rpc.v2.ListDynamicFieldsRequest",[{no:1,name:"parent",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12},{no:4,name:"read_mask",kind:"message",T:()=>It}])}};const WS=new FS;var GS=class extends g{constructor(){super("sui.rpc.v2.ListDynamicFieldsResponse",[{no:1,name:"dynamic_fields",kind:"message",repeat:1,T:()=>HS},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const zS=new GS;var qS=class extends g{constructor(){super("sui.rpc.v2.DynamicField",[{no:1,name:"kind",kind:"enum",opt:!0,T:()=>["sui.rpc.v2.DynamicField.DynamicFieldKind",gh]},{no:2,name:"parent",kind:"scalar",opt:!0,T:9},{no:3,name:"field_id",kind:"scalar",opt:!0,T:9},{no:4,name:"field_object",kind:"message",T:()=>Fn},{no:5,name:"name",kind:"message",T:()=>it},{no:6,name:"value",kind:"message",T:()=>it},{no:7,name:"value_type",kind:"scalar",opt:!0,T:9},{no:8,name:"child_id",kind:"scalar",opt:!0,T:9},{no:9,name:"child_object",kind:"message",T:()=>Fn}])}};const HS=new qS;var JS=class extends g{constructor(){super("sui.rpc.v2.ListOwnedObjectsRequest",[{no:1,name:"owner",kind:"scalar",opt:!0,T:9},{no:2,name:"page_size",kind:"scalar",opt:!0,T:13},{no:3,name:"page_token",kind:"scalar",opt:!0,T:12},{no:4,name:"read_mask",kind:"message",T:()=>It},{no:5,name:"object_type",kind:"scalar",opt:!0,T:9}])}};const ZS=new JS;var YS=class extends g{constructor(){super("sui.rpc.v2.ListOwnedObjectsResponse",[{no:1,name:"objects",kind:"message",repeat:1,T:()=>Fn},{no:2,name:"next_page_token",kind:"scalar",opt:!0,T:12}])}};const KS=new YS,Fa=new Hn("sui.rpc.v2.StateService",[{name:"ListDynamicFields",options:{},I:WS,O:zS},{name:"ListOwnedObjects",options:{},I:ZS,O:KS},{name:"GetCoinInfo",options:{},I:ES,O:IS},{name:"GetBalance",options:{},I:$S,O:MS},{name:"ListBalances",options:{},I:jS,O:LS}]);var XS=class{constructor(e){this._transport=e,this.typeName=Fa.typeName,this.methods=Fa.methods,this.options=Fa.options}listDynamicFields(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}listOwnedObjects(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getCoinInfo(e,t){const n=this.methods[2],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}getBalance(e,t){const n=this.methods[3],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}listBalances(e,t){const n=this.methods[4],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}},QS=class extends g{constructor(){super("sui.rpc.v2.SubscribeCheckpointsRequest",[{no:1,name:"read_mask",kind:"message",T:()=>It}])}};const e2=new QS;var t2=class extends g{constructor(){super("sui.rpc.v2.SubscribeCheckpointsResponse",[{no:1,name:"cursor",kind:"scalar",opt:!0,T:4,L:0},{no:2,name:"checkpoint",kind:"message",T:()=>hh}])}};const n2=new t2,Wa=new Hn("sui.rpc.v2.SubscriptionService",[{name:"SubscribeCheckpoints",serverStreaming:!0,options:{},I:e2,O:n2}]);var s2=class{constructor(e){this._transport=e,this.typeName=Wa.typeName,this.methods=Wa.methods,this.options=Wa.options}subscribeCheckpoints(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return ye("serverStreaming",this._transport,n,s,e)}},r2=class extends g{constructor(){super("sui.rpc.v2.LookupNameRequest",[{no:1,name:"name",kind:"scalar",opt:!0,T:9}])}};const i2=new r2;var a2=class extends g{constructor(){super("sui.rpc.v2.LookupNameResponse",[{no:1,name:"record",kind:"message",T:()=>bh}])}};const o2=new a2;var c2=class extends g{constructor(){super("sui.rpc.v2.ReverseLookupNameRequest",[{no:1,name:"address",kind:"scalar",opt:!0,T:9}])}};const l2=new c2;var u2=class extends g{constructor(){super("sui.rpc.v2.ReverseLookupNameResponse",[{no:1,name:"record",kind:"message",T:()=>bh}])}};const d2=new u2;var p2=class extends g{constructor(){super("sui.rpc.v2.NameRecord",[{no:1,name:"id",kind:"scalar",opt:!0,T:9},{no:2,name:"name",kind:"scalar",opt:!0,T:9},{no:3,name:"registration_nft_id",kind:"scalar",opt:!0,T:9},{no:4,name:"expiration_timestamp",kind:"message",T:()=>Bt},{no:5,name:"target_address",kind:"scalar",opt:!0,T:9},{no:6,name:"data",kind:"map",K:9,V:{kind:"scalar",T:9}}])}};const bh=new p2,Ga=new Hn("sui.rpc.v2.NameService",[{name:"LookupName",options:{},I:i2,O:o2},{name:"ReverseLookupName",options:{},I:l2,O:d2}]);var h2=class{constructor(e){this._transport=e,this.typeName=Ga.typeName,this.methods=Ga.methods,this.options=Ga.options}lookupName(e,t){const n=this.methods[0],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}reverseLookupName(e,t){const n=this.methods[1],s=this._transport.mergeOptions(t);return ye("unary",this._transport,n,s,e)}},O;(function(e){e[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS"})(O||(O={}));var f2=function(e,t,n,s){function r(i){return i instanceof n?i:new n(function(a){a(i)})}return new(n||(n=Promise))(function(i,a){function o(u){try{l(s.next(u))}catch(d){a(d)}}function c(u){try{l(s.throw(u))}catch(d){a(d)}}function l(u){u.done?i(u.value):r(u.value).then(o,c)}l((s=s.apply(e,t||[])).next())})};function zl(e,t,n,s,r){if(s)for(let[i,a]of Object.entries(s))if(typeof a=="string")e.append(i,a);else for(let o of a)e.append(i,o);if(e.set("Content-Type",t==="text"?"application/grpc-web-text":"application/grpc-web+proto"),t=="text"&&e.set("Accept","application/grpc-web-text"),e.set("X-Grpc-Web","1"),typeof n=="number"){if(n<=0)throw new ce(`timeout ${n} ms exceeded`,O[O.DEADLINE_EXCEEDED]);e.set("grpc-timeout",`${n}m`)}else if(n){const i=n.getTime(),a=Date.now();if(i<=a)throw new ce(`deadline ${n} exceeded`,O[O.DEADLINE_EXCEEDED]);e.set("grpc-timeout",`${i-a}m`)}return e}function ql(e,t){let n=new Uint8Array(5+e.length);n[0]=_t.DATA;for(let s=e.length,r=4;r>0;r--)n[r]=s%256,s>>>=8;return n.set(e,5),t==="binary"?n:Bp(n)}function Io(e,t,n){if(arguments.length===1){let c=e,l;try{l=c.type}catch{}switch(l){case"error":case"opaque":case"opaqueredirect":throw new ce(`fetch response type ${c.type}`,O[O.UNKNOWN])}return Io(b2(c.headers),c.status,c.statusText)}let s=e,r=t>=200&&t<300,i=yh(s),[a,o]=wh(s);return(a===void 0||a===O.OK)&&!r&&(a=w2(t),o=n),[a,o,i]}function Hl(e){let t=v2(e),[n,s]=wh(t),r=yh(t);return[n??O.OK,s,r]}var _t;(function(e){e[e.DATA=0]="DATA",e[e.TRAILER=128]="TRAILER"})(_t||(_t={}));function Jl(e,t,n){return f2(this,void 0,void 0,function*(){let s,r="",i=new Uint8Array(0),a=g2(t);if(m2(e)){let o=e.getReader();s={next:()=>o.read()}}else s=e[Symbol.asyncIterator]();for(;;){let o=yield s.next();if(o.value!==void 0){if(a==="text"){for(let l=0;l<o.value.length;l++)r+=String.fromCharCode(o.value[l]);let c=r.length-r.length%4;if(c===0)continue;i=Zl(i,Mp(r.substring(0,c))),r=r.substring(c)}else i=Zl(i,o.value);for(;i.length>=5&&i[0]===_t.DATA;){let c=0;for(let l=1;l<5;l++)c=(c<<8)+i[l];if(i.length-5>=c)n(_t.DATA,i.subarray(5,5+c)),i=i.subarray(5+c);else break}}if(o.done){if(i.length===0)break;if(i[0]!==_t.TRAILER||i.length<5)throw new ce("premature EOF",O[O.DATA_LOSS]);n(_t.TRAILER,i.subarray(5));break}}})}const m2=e=>typeof e.getReader=="function";function Zl(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function g2(e){switch(e){case"application/grpc-web-text":case"application/grpc-web-text+proto":return"text";case"application/grpc-web":case"application/grpc-web+proto":return"binary";case void 0:case null:throw new ce("missing response content type",O[O.INTERNAL]);default:throw new ce("unexpected response content type: "+e,O[O.INTERNAL])}}function wh(e){let t,n,s=e["grpc-message"];if(s!==void 0){if(Array.isArray(s))return[O.INTERNAL,"invalid grpc-web message"];n=s}let r=e["grpc-status"];if(r!==void 0){if(Array.isArray(r))return[O.INTERNAL,"invalid grpc-web status"];if(t=parseInt(r,10),O[t]===void 0)return[O.INTERNAL,"invalid grpc-web status"]}return[t,n]}function yh(e){let t={};for(let[n,s]of Object.entries(e))switch(n){case"grpc-message":case"grpc-status":case"content-type":break;default:t[n]=s}return t}function v2(e){let t={};for(let n of String.fromCharCode.apply(String,e).trim().split(`\r
12
- `)){if(n=="")continue;let[s,...r]=n.split(":");const i=r.join(":").trim();s=s.trim();let a=t[s];typeof a=="string"?t[s]=[a,i]:Array.isArray(a)?a.push(i):t[s]=i}return t}function b2(e){let t={};return e.forEach((n,s)=>{let r=t[s];typeof r=="string"?t[s]=[r,n]:Array.isArray(r)?r.push(n):t[s]=n}),t}function w2(e){switch(e){case 200:return O.OK;case 400:return O.INVALID_ARGUMENT;case 401:return O.UNAUTHENTICATED;case 403:return O.PERMISSION_DENIED;case 404:return O.NOT_FOUND;case 409:return O.ABORTED;case 412:return O.FAILED_PRECONDITION;case 429:return O.RESOURCE_EXHAUSTED;case 499:return O.CANCELLED;case 500:return O.UNKNOWN;case 501:return O.UNIMPLEMENTED;case 503:return O.UNAVAILABLE;case 504:return O.DEADLINE_EXCEEDED;default:return O.UNKNOWN}}class y2{constructor(t){this.defaultOptions=t}mergeOptions(t){return g_(this.defaultOptions,t)}makeUrl(t,n){let s=n.baseUrl;return s.endsWith("/")&&(s=s.substring(0,s.length-1)),`${s}/${t.service.typeName}/${t.name}`}clientStreaming(t){const n=new ce("Client streaming is not supported by grpc-web",O[O.UNIMPLEMENTED]);throw n.methodName=t.name,n.serviceName=t.service.typeName,n}duplex(t){const n=new ce("Duplex streaming is not supported by grpc-web",O[O.UNIMPLEMENTED]);throw n.methodName=t.name,n.serviceName=t.service.typeName,n}serverStreaming(t,n,s){var r,i,a,o,c;let l=s,u=(r=l.format)!==null&&r!==void 0?r:"text",d=(i=l.fetch)!==null&&i!==void 0?i:globalThis.fetch,h=(a=l.fetchInit)!==null&&a!==void 0?a:{},f=this.makeUrl(t,l),m=t.I.toBinary(n,l.binaryOptions),v=new hn,b=new v_,w=!0,x,I=new hn,B,q=new hn;return d(f,Object.assign(Object.assign({},h),{method:"POST",headers:zl(new globalThis.Headers,u,l.timeout,l.meta),body:ql(m,u),signal:(o=s.abort)!==null&&o!==void 0?o:null})).then($=>{let[U,A,S]=Io($);if(v.resolve(S),U!=null&&U!==O.OK)throw new ce(A??O[U],O[U],S);return U!=null&&(x={code:O[U],detail:A??O[U]}),$}).then($=>{if(!$.body)throw new ce("missing response body",O[O.INTERNAL]);return Jl($.body,$.headers.get("content-type"),(U,A)=>{switch(U){case _t.DATA:b.notifyMessage(t.O.fromBinary(A,l.binaryOptions)),w=!1;break;case _t.TRAILER:let S,F;[S,F,B]=Hl(A),x={code:O[S],detail:F??O[S]};break}})}).then(()=>{if(!B&&!w)throw new ce("missing trailers",O[O.DATA_LOSS]);if(!x)throw new ce("missing status",O[O.INTERNAL]);if(x.code!=="OK")throw new ce(x.detail,x.code,B);b.notifyComplete(),I.resolve(x),q.resolve(B||{})}).catch($=>{let U;$ instanceof ce?U=$:$ instanceof Error&&$.name==="AbortError"?U=new ce($.message,O[O.CANCELLED]):U=new ce($ instanceof Error?$.message:""+$,O[O.INTERNAL]),U.methodName=t.name,U.serviceName=t.service.typeName,v.rejectPending(U),b.notifyError(U),I.rejectPending(U),q.rejectPending(U)}),new T_(t,(c=l.meta)!==null&&c!==void 0?c:{},n,v.promise,b,I.promise,q.promise)}unary(t,n,s){var r,i,a,o,c;let l=s,u=(r=l.format)!==null&&r!==void 0?r:"text",d=(i=l.fetch)!==null&&i!==void 0?i:globalThis.fetch,h=(a=l.fetchInit)!==null&&a!==void 0?a:{},f=this.makeUrl(t,l),m=t.I.toBinary(n,l.binaryOptions),v=new hn,b,w=new hn,x,I=new hn,B,q=new hn;return d(f,Object.assign(Object.assign({},h),{method:"POST",headers:zl(new globalThis.Headers,u,l.timeout,l.meta),body:ql(m,u),signal:(o=s.abort)!==null&&o!==void 0?o:null})).then($=>{let[U,A,S]=Io($);if(v.resolve(S),U!=null&&U!==O.OK)throw new ce(A??O[U],O[U],S);return U!=null&&(x={code:O[U],detail:A??O[U]}),$}).then($=>{if(!$.body)throw new ce("missing response body",O[O.INTERNAL]);return Jl($.body,$.headers.get("content-type"),(U,A)=>{switch(U){case _t.DATA:if(b)throw new ce("unary call received 2nd message",O[O.DATA_LOSS]);b=t.O.fromBinary(A,l.binaryOptions);break;case _t.TRAILER:let S,F;[S,F,B]=Hl(A),x={code:O[S],detail:F??O[S]};break}})}).then(()=>{if(!B&&b)throw new ce("missing trailers",O[O.DATA_LOSS]);if(!x)throw new ce("missing status",O[O.INTERNAL]);if(!b&&x.code==="OK")throw new ce("expected error status",O[O.DATA_LOSS]);if(!b)throw new ce(x.detail,x.code,B);if(w.resolve(b),x.code!=="OK")throw new ce(x.detail,x.code,B);I.resolve(x),q.resolve(B||{})}).catch($=>{let U;$ instanceof ce?U=$:$ instanceof Error&&$.name==="AbortError"?U=new ce($.message,O[O.CANCELLED]):U=new ce($ instanceof Error?$.message:""+$,O[O.INTERNAL]),U.methodName=t.name,U.serviceName=t.service.typeName,v.rejectPending(U),w.rejectPending(U),I.rejectPending(U),q.rejectPending(U)}),new w_(t,(c=l.meta)!==null&&c!==void 0?c:{},n,v.promise,w.promise,I.promise,q.promise)}}const T2=Symbol.for("@mysten/SuiGrpcClient");var k2=class extends Dp{get mvr(){return this.core.mvr}get[T2](){return!0}constructor(e){super({network:e.network});const t=e.transport??new y2({baseUrl:e.baseUrl,fetchInit:e.fetchInit});this.transactionExecutionService=new $_(t),this.ledgerService=new ZE(t),this.stateService=new XS(t),this.subscriptionService=new s2(t),this.movePackageService=new fS(t),this.signatureVerificationService=new wS(t),this.nameService=new h2(t),this.core=new xk({client:this,base:this,network:e.network,mvr:e.mvr})}getObjects(e){return this.core.getObjects(e)}getObject(e){return this.core.getObject(e)}listCoins(e){return this.core.listCoins(e)}listOwnedObjects(e){return this.core.listOwnedObjects(e)}getBalance(e){return this.core.getBalance(e)}listBalances(e){return this.core.listBalances(e)}getCoinMetadata(e){return this.core.getCoinMetadata(e)}getTransaction(e){return this.core.getTransaction(e)}executeTransaction(e){return this.core.executeTransaction(e)}signAndExecuteTransaction(e){return this.core.signAndExecuteTransaction(e)}waitForTransaction(e){return this.core.waitForTransaction(e)}simulateTransaction(e){return this.core.simulateTransaction(e)}getReferenceGasPrice(){return this.core.getReferenceGasPrice()}async listDynamicFields(e){const t=e.include?.value??!1,n=["field_id","name","value_type","kind","child_id"];t&&n.push("value");const s=await this.stateService.listDynamicFields({parent:e.parentId,pageToken:e.cursor?Q(e.cursor):void 0,pageSize:e.limit,readMask:{paths:n}});return{dynamicFields:s.response.dynamicFields.map(r=>{const i=r.kind===gh.OBJECT,a=i?`0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${r.name?.name}>,0x2::object::ID>`:`0x2::dynamic_field::Field<${r.name?.name},${r.valueType}>`;return{$kind:i?"DynamicObject":"DynamicField",fieldId:r.fieldId,name:{type:r.name?.name,bcs:r.name?.value},valueType:r.valueType,type:ut(a),childId:r.childId,value:t?{type:r.valueType,bcs:r.value?.value??new Uint8Array}:void 0}}),cursor:s.response.nextPageToken?ee(s.response.nextPageToken):null,hasNextPage:s.response.nextPageToken!==void 0}}getDynamicField(e){return this.core.getDynamicField(e)}getMoveFunction(e){return this.core.getMoveFunction(e)}resolveTransactionPlugin(){return this.core.resolveTransactionPlugin()}verifyZkLoginSignature(e){return this.core.verifyZkLoginSignature(e)}defaultNameServiceName(e){return this.core.defaultNameServiceName(e)}};const _2="Dev Wallet",Yl="dev-wallet:networks",E2={devnet:"https://fullnode.devnet.sui.io:443",testnet:"https://fullnode.testnet.sui.io:443",localnet:"http://127.0.0.1:9000"};class S2{#e;#t;#s;#r;#i;#a;#o;#u;#n;#h;#d;#p;#f;#c;#m;#l;#g;#v=!1;constructor(t){t.adapters.length===0&&console.warn("[dev-wallet] No adapters provided. The wallet will have no accounts."),this.#e=t.adapters,this.#h=t.persistNetworks??!1,this.#t=this.#N(t.networks??E2),this.#s={},this.#r=t.activeNetwork??Object.keys(this.#t)[0]??"",this.#i=t.name??_2,this.#a=t.icon??by,this.#o=t.autoApprove??!1,this.#u=t.autoConnect??!1,this.#n=t.clientFactory??((n,s)=>new k2({baseUrl:s,network:n})),this.#d=this.#k(),this.#p=Sm(),this.#f=[],this.#c=null,this.#m=new Set,this.#l=null,this.#g=new Set,this.#S()}get version(){return"1.0.0"}get name(){return this.#i}get icon(){return this.#a}get chains(){return mp}get accounts(){return this.#d}get features(){return{"standard:connect":{version:"1.0.0",connect:this.#A},"standard:events":{version:"1.0.0",on:this.#I},"standard:disconnect":{version:"1.0.0",disconnect:this.#x},"sui:signPersonalMessage":{version:"1.1.0",signPersonalMessage:this.#U},"sui:signTransaction":{version:"2.0.0",signTransaction:this.#$},"sui:signAndExecuteTransaction":{version:"2.0.0",signAndExecuteTransaction:this.#D}}}get pendingRequest(){return this.#c}get adapters(){return this.#e}getAdapterForAccount(t){return this.#e.find(n=>n.getAccount(t)!==void 0)}get clients(){for(const t of Object.keys(this.#t))this.#w(t);return{...this.#s}}getClient(t){return this.#w(t)}get networkUrls(){return{...this.#t}}get activeNetwork(){return this.#r}get activeClient(){return!this.#r||!this.#t[this.#r]?null:this.#w(this.#r)}get availableNetworks(){return Object.keys(this.#t)}setActiveNetwork(t){if(!this.#t[t])throw new Error(`No client for network "${t}". Available: ${this.availableNetworks.join(", ")}`);this.#r=t,this.#p.emit("change",{accounts:this.#d})}addNetwork(t,n){let s;try{s=new URL(n)}catch{throw new Error(`Invalid URL: ${n}`)}if(s.protocol!=="http:"&&s.protocol!=="https:")throw new Error(`Invalid URL: must use http or https (got ${s.protocol})`);this.#t[t]=n,this.#s[t]=this.#n(t,n),this.#_(),this.#p.emit("change",{accounts:this.#d})}removeNetwork(t){delete this.#t[t],delete this.#s[t],this.#r===t&&(this.#r=Object.keys(this.#t)[0]??""),this.#_(),this.#p.emit("change",{accounts:this.#d})}register(){return typeof process<"u"&&console.warn("[@mysten-incubation/dev-wallet] DevWallet is intended for development only. Do not use in production."),ww().register(this)}destroy(){this.#v=!0;for(const t of this.#f)t();this.#f=[];for(const t of this.#e)t.destroy();this.#c&&(this.#c.reject(new Error("Wallet destroyed.")),this.#c=null),this.#l&&(this.#l.reject(new Error("Wallet destroyed.")),this.#l=null),this.#m.clear(),this.#g.clear(),this.#p.all.clear()}async approveRequest(){const t=this.#c;if(!t)throw new Error("No pending request to approve.");try{const n=await this.#E(t.type,t.account,t.chain,t.data);this.#c=null,this.#b(),t.resolve(n)}catch(n){this.#c=null,this.#b(),t.reject(n instanceof Error?n:new Error(String(n)))}}rejectRequest(t){const n=this.#c;if(!n)throw new Error("No pending request to reject.");this.#c=null,this.#b(),n.reject(new Error(t??"Request rejected by user."))}onRequestChange(t){return this.#m.add(t),()=>{this.#m.delete(t)}}get pendingConnect(){return this.#l}approveConnect(t){const n=this.#l;if(!n)throw new Error("No pending connect request to approve.");const s=t.length>0?this.#d.filter(r=>t.includes(r.address)):[...this.#d];this.#l=null,this.#y(),n.resolve({accounts:s})}rejectConnect(t){const n=this.#l;if(!n)throw new Error("No pending connect request to reject.");this.#l=null,this.#y(),n.reject(new Error(t??"Connection rejected by user."))}onConnectChange(t){return this.#g.add(t),()=>{this.#g.delete(t)}}#b(){const t=this.#c;for(const n of this.#m)n(t)}#y(){const t=this.#l;for(const n of this.#g)n(t)}#k(){return this.#e.flatMap(t=>t.getAccounts().map(n=>n.walletAccount))}#S(){for(const t of this.#e){const n=t.onAccountsChanged(()=>{this.#d=this.#k(),this.#p.emit("change",{accounts:this.#d})});this.#f.push(n)}}#I=(t,n)=>(this.#p.on(t,n),()=>this.#p.off(t,n));#A=async()=>this.#u?{accounts:this.accounts}:this.#l?Promise.reject(new Error("A connect request is already pending.")):new Promise((t,n)=>{this.#l={id:crypto.randomUUID(),resolve:t,reject:n},this.#y()});#x=async()=>{};#O(t){const n=ea(t);if(!n)throw new Error(`Invalid chain identifier: ${t}`);return this.#w(n)}#N(t){if(!this.#h||typeof localStorage>"u")return{...t};try{const n=localStorage.getItem(Yl);if(n){const s=JSON.parse(n);if(typeof s=="object"&&s!==null&&!Array.isArray(s))return s}}catch{}return{...t}}#_(){!this.#h||typeof localStorage>"u"||localStorage.setItem(Yl,JSON.stringify(this.#t))}#w(t){if(!this.#s[t]){const n=this.#t[t];if(!n)throw new Error(`No client for network "${t}". Available: ${this.availableNetworks.join(", ")}`);this.#s[t]=this.#n(t,n)}return this.#s[t]}#R(t){for(const s of this.#e){const r=s.getAccount(t);if(r)return r.signer}const n=this.#e.flatMap(s=>s.getAccounts().map(r=>r.address));throw new Error(`No account found for address "${t}". Available addresses: ${n.join(", ")}`)}#C(t,n,s,r){return this.getAdapterForAccount(n.address)?.allowAutoSign===!1?!1:this.#o===!0?!0:typeof this.#o=="function"?this.#o({type:t,account:n,chain:s,data:r}):!1}async#E(t,n,s,r){const i=this.#R(n.address),a=t!=="sign-personal-message"?this.#O(s):void 0;return Up({type:t,signer:i,data:r,client:a})}#T(t,n,s,r){return this.#v?Promise.reject(new Error("Wallet has been destroyed.")):this.#C(t,n,s,r)?this.#E(t,n,s,r):this.#c?Promise.reject(new Error("A signing request is already pending.")):new Promise((i,a)=>{this.#c={id:crypto.randomUUID(),type:t,account:n,chain:s,data:r,resolve:i,reject:a},this.#b()})}#U=async t=>this.#T("sign-personal-message",t.account,t.chain??"sui:unknown",t.message);#$=async t=>{const n=await t.transaction.toJSON();return this.#T("sign-transaction",t.account,t.chain,n)};#D=async t=>{const n=await t.transaction.toJSON();return this.#T("sign-and-execute-transaction",t.account,t.chain,n)}}const di=globalThis,gc=di.ShadowRoot&&(di.ShadyCSS===void 0||di.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,vc=Symbol(),Kl=new WeakMap;let Th=class{constructor(t,n,s){if(this._$cssResult$=!0,s!==vc)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=n}get styleSheet(){let t=this.o;const n=this.t;if(gc&&t===void 0){const s=n!==void 0&&n.length===1;s&&(t=Kl.get(n)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&Kl.set(n,t))}return t}toString(){return this.cssText}};const I2=e=>new Th(typeof e=="string"?e:e+"",void 0,vc),Te=(e,...t)=>{const n=e.length===1?e[0]:t.reduce((s,r,i)=>s+(a=>{if(a._$cssResult$===!0)return a.cssText;if(typeof a=="number")return a;throw Error("Value passed to 'css' function must be a 'css' function result: "+a+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+e[i+1],e[0]);return new Th(n,e,vc)},A2=(e,t)=>{if(gc)e.adoptedStyleSheets=t.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet);else for(const n of t){const s=document.createElement("style"),r=di.litNonce;r!==void 0&&s.setAttribute("nonce",r),s.textContent=n.cssText,e.appendChild(s)}},Xl=gc?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let n="";for(const s of t.cssRules)n+=s.cssText;return I2(n)})(e):e;const{is:x2,defineProperty:O2,getOwnPropertyDescriptor:N2,getOwnPropertyNames:R2,getOwnPropertySymbols:C2,getPrototypeOf:U2}=Object,ra=globalThis,Ql=ra.trustedTypes,$2=Ql?Ql.emptyScript:"",D2=ra.reactiveElementPolyfillSupport,or=(e,t)=>e,ji={toAttribute(e,t){switch(t){case Boolean:e=e?$2:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},bc=(e,t)=>!x2(e,t),eu={attribute:!0,type:String,converter:ji,reflect:!1,useDefault:!1,hasChanged:bc};Symbol.metadata??=Symbol("metadata"),ra.litPropertyMetadata??=new WeakMap;let us=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,n=eu){if(n.state&&(n.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((n=Object.create(n)).wrapped=!0),this.elementProperties.set(t,n),!n.noAccessor){const s=Symbol(),r=this.getPropertyDescriptor(t,s,n);r!==void 0&&O2(this.prototype,t,r)}}static getPropertyDescriptor(t,n,s){const{get:r,set:i}=N2(this.prototype,t)??{get(){return this[n]},set(a){this[n]=a}};return{get:r,set(a){const o=r?.call(this);i?.call(this,a),this.requestUpdate(t,o,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??eu}static _$Ei(){if(this.hasOwnProperty(or("elementProperties")))return;const t=U2(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(or("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(or("properties"))){const n=this.properties,s=[...R2(n),...C2(n)];for(const r of s)this.createProperty(r,n[r])}const t=this[Symbol.metadata];if(t!==null){const n=litPropertyMetadata.get(t);if(n!==void 0)for(const[s,r]of n)this.elementProperties.set(s,r)}this._$Eh=new Map;for(const[n,s]of this.elementProperties){const r=this._$Eu(n,s);r!==void 0&&this._$Eh.set(r,n)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const n=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const r of s)n.unshift(Xl(r))}else t!==void 0&&n.push(Xl(t));return n}static _$Eu(t,n){const s=n.attribute;return s===!1?void 0:typeof s=="string"?s:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,n=this.constructor.elementProperties;for(const s of n.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return A2(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,n,s){this._$AK(t,s)}_$ET(t,n){const s=this.constructor.elementProperties.get(t),r=this.constructor._$Eu(t,s);if(r!==void 0&&s.reflect===!0){const i=(s.converter?.toAttribute!==void 0?s.converter:ji).toAttribute(n,s.type);this._$Em=t,i==null?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(t,n){const s=this.constructor,r=s._$Eh.get(t);if(r!==void 0&&this._$Em!==r){const i=s.getPropertyOptions(r),a=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:ji;this._$Em=r;const o=a.fromAttribute(n,i.type);this[r]=o??this._$Ej?.get(r)??o,this._$Em=null}}requestUpdate(t,n,s,r=!1,i){if(t!==void 0){const a=this.constructor;if(r===!1&&(i=this[t]),s??=a.getPropertyOptions(t),!((s.hasChanged??bc)(i,n)||s.useDefault&&s.reflect&&i===this._$Ej?.get(t)&&!this.hasAttribute(a._$Eu(t,s))))return;this.C(t,n,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,n,{useDefault:s,reflect:r,wrapped:i},a){s&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,a??n??this[t]),i!==!0||a!==void 0)||(this._$AL.has(t)||(this.hasUpdated||s||(n=void 0),this._$AL.set(t,n)),r===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(n){Promise.reject(n)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[r,i]of this._$Ep)this[r]=i;this._$Ep=void 0}const s=this.constructor.elementProperties;if(s.size>0)for(const[r,i]of s){const{wrapped:a}=i,o=this[r];a!==!0||this._$AL.has(r)||o===void 0||this.C(r,void 0,i,o)}}let t=!1;const n=this._$AL;try{t=this.shouldUpdate(n),t?(this.willUpdate(n),this._$EO?.forEach(s=>s.hostUpdate?.()),this.update(n)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(n)}willUpdate(t){}_$AE(t){this._$EO?.forEach(n=>n.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(n=>this._$ET(n,this[n])),this._$EM()}updated(t){}firstUpdated(t){}};us.elementStyles=[],us.shadowRootOptions={mode:"open"},us[or("elementProperties")]=new Map,us[or("finalized")]=new Map,D2?.({ReactiveElement:us}),(ra.reactiveElementVersions??=[]).push("2.1.2");const wc=globalThis,tu=e=>e,Pi=wc.trustedTypes,nu=Pi?Pi.createPolicy("lit-html",{createHTML:e=>e}):void 0,kh="$lit$",vn=`lit$${Math.random().toFixed(9).slice(2)}$`,_h="?"+vn,M2=`<${_h}>`,Wn=document,Tr=()=>Wn.createComment(""),kr=e=>e===null||typeof e!="object"&&typeof e!="function",yc=Array.isArray,B2=e=>yc(e)||typeof e?.[Symbol.iterator]=="function",za=`[
13
- \f\r]`,zs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,su=/-->/g,ru=/>/g,An=RegExp(`>|${za}(?:([^\\s"'>=/]+)(${za}*=${za}*(?:[^
14
- \f\r"'\`<>=]|("|')|))|$)`,"g"),iu=/'/g,au=/"/g,Eh=/^(?:script|style|textarea|title)$/i,j2=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),y=j2(1),Cs=Symbol.for("lit-noChange"),M=Symbol.for("lit-nothing"),ou=new WeakMap,Mn=Wn.createTreeWalker(Wn,129);function Sh(e,t){if(!yc(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return nu!==void 0?nu.createHTML(t):t}const P2=(e,t)=>{const n=e.length-1,s=[];let r,i=t===2?"<svg>":t===3?"<math>":"",a=zs;for(let o=0;o<n;o++){const c=e[o];let l,u,d=-1,h=0;for(;h<c.length&&(a.lastIndex=h,u=a.exec(c),u!==null);)h=a.lastIndex,a===zs?u[1]==="!--"?a=su:u[1]!==void 0?a=ru:u[2]!==void 0?(Eh.test(u[2])&&(r=RegExp("</"+u[2],"g")),a=An):u[3]!==void 0&&(a=An):a===An?u[0]===">"?(a=r??zs,d=-1):u[1]===void 0?d=-2:(d=a.lastIndex-u[2].length,l=u[1],a=u[3]===void 0?An:u[3]==='"'?au:iu):a===au||a===iu?a=An:a===su||a===ru?a=zs:(a=An,r=void 0);const f=a===An&&e[o+1].startsWith("/>")?" ":"";i+=a===zs?c+M2:d>=0?(s.push(l),c.slice(0,d)+kh+c.slice(d)+vn+f):c+vn+(d===-2?o:f)}return[Sh(e,i+(e[n]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),s]};class _r{constructor({strings:t,_$litType$:n},s){let r;this.parts=[];let i=0,a=0;const o=t.length-1,c=this.parts,[l,u]=P2(t,n);if(this.el=_r.createElement(l,s),Mn.currentNode=this.el.content,n===2||n===3){const d=this.el.content.firstChild;d.replaceWith(...d.childNodes)}for(;(r=Mn.nextNode())!==null&&c.length<o;){if(r.nodeType===1){if(r.hasAttributes())for(const d of r.getAttributeNames())if(d.endsWith(kh)){const h=u[a++],f=r.getAttribute(d).split(vn),m=/([.?@])?(.*)/.exec(h);c.push({type:1,index:i,name:m[2],strings:f,ctor:m[1]==="."?V2:m[1]==="?"?F2:m[1]==="@"?W2:ia}),r.removeAttribute(d)}else d.startsWith(vn)&&(c.push({type:6,index:i}),r.removeAttribute(d));if(Eh.test(r.tagName)){const d=r.textContent.split(vn),h=d.length-1;if(h>0){r.textContent=Pi?Pi.emptyScript:"";for(let f=0;f<h;f++)r.append(d[f],Tr()),Mn.nextNode(),c.push({type:2,index:++i});r.append(d[h],Tr())}}}else if(r.nodeType===8)if(r.data===_h)c.push({type:2,index:i});else{let d=-1;for(;(d=r.data.indexOf(vn,d+1))!==-1;)c.push({type:7,index:i}),d+=vn.length-1}i++}}static createElement(t,n){const s=Wn.createElement("template");return s.innerHTML=t,s}}function Us(e,t,n=e,s){if(t===Cs)return t;let r=s!==void 0?n._$Co?.[s]:n._$Cl;const i=kr(t)?void 0:t._$litDirective$;return r?.constructor!==i&&(r?._$AO?.(!1),i===void 0?r=void 0:(r=new i(e),r._$AT(e,n,s)),s!==void 0?(n._$Co??=[])[s]=r:n._$Cl=r),r!==void 0&&(t=Us(e,r._$AS(e,t.values),r,s)),t}class L2{constructor(t,n){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:n},parts:s}=this._$AD,r=(t?.creationScope??Wn).importNode(n,!0);Mn.currentNode=r;let i=Mn.nextNode(),a=0,o=0,c=s[0];for(;c!==void 0;){if(a===c.index){let l;c.type===2?l=new $r(i,i.nextSibling,this,t):c.type===1?l=new c.ctor(i,c.name,c.strings,this,t):c.type===6&&(l=new G2(i,this,t)),this._$AV.push(l),c=s[++o]}a!==c?.index&&(i=Mn.nextNode(),a++)}return Mn.currentNode=Wn,r}p(t){let n=0;for(const s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(t,s,n),n+=s.strings.length-2):s._$AI(t[n])),n++}}class $r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,n,s,r){this.type=2,this._$AH=M,this._$AN=void 0,this._$AA=t,this._$AB=n,this._$AM=s,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&t?.nodeType===11&&(t=n.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,n=this){t=Us(this,t,n),kr(t)?t===M||t==null||t===""?(this._$AH!==M&&this._$AR(),this._$AH=M):t!==this._$AH&&t!==Cs&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):B2(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==M&&kr(this._$AH)?this._$AA.nextSibling.data=t:this.T(Wn.createTextNode(t)),this._$AH=t}$(t){const{values:n,_$litType$:s}=t,r=typeof s=="number"?this._$AC(t):(s.el===void 0&&(s.el=_r.createElement(Sh(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===r)this._$AH.p(n);else{const i=new L2(r,this),a=i.u(this.options);i.p(n),this.T(a),this._$AH=i}}_$AC(t){let n=ou.get(t.strings);return n===void 0&&ou.set(t.strings,n=new _r(t)),n}k(t){yc(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let s,r=0;for(const i of t)r===n.length?n.push(s=new $r(this.O(Tr()),this.O(Tr()),this,this.options)):s=n[r],s._$AI(i),r++;r<n.length&&(this._$AR(s&&s._$AB.nextSibling,r),n.length=r)}_$AR(t=this._$AA.nextSibling,n){for(this._$AP?.(!1,!0,n);t!==this._$AB;){const s=tu(t).nextSibling;tu(t).remove(),t=s}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}}class ia{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,n,s,r,i){this.type=1,this._$AH=M,this._$AN=void 0,this.element=t,this.name=n,this._$AM=r,this.options=i,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=M}_$AI(t,n=this,s,r){const i=this.strings;let a=!1;if(i===void 0)t=Us(this,t,n,0),a=!kr(t)||t!==this._$AH&&t!==Cs,a&&(this._$AH=t);else{const o=t;let c,l;for(t=i[0],c=0;c<i.length-1;c++)l=Us(this,o[s+c],n,c),l===Cs&&(l=this._$AH[c]),a||=!kr(l)||l!==this._$AH[c],l===M?t=M:t!==M&&(t+=(l??"")+i[c+1]),this._$AH[c]=l}a&&!r&&this.j(t)}j(t){t===M?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class V2 extends ia{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===M?void 0:t}}class F2 extends ia{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==M)}}class W2 extends ia{constructor(t,n,s,r,i){super(t,n,s,r,i),this.type=5}_$AI(t,n=this){if((t=Us(this,t,n,0)??M)===Cs)return;const s=this._$AH,r=t===M&&s!==M||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,i=t!==M&&(s===M||r);r&&this.element.removeEventListener(this.name,this,s),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class G2{constructor(t,n,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=n,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){Us(this,t)}}const z2=wc.litHtmlPolyfillSupport;z2?.(_r,$r),(wc.litHtmlVersions??=[]).push("3.3.2");const q2=(e,t,n)=>{const s=n?.renderBefore??t;let r=s._$litPart$;if(r===void 0){const i=n?.renderBefore??null;s._$litPart$=r=new $r(t.insertBefore(Tr(),i),i,void 0,n??{})}return r._$AI(e),r};const Tc=globalThis;class Ue extends us{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=q2(n,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Cs}}Ue._$litElement$=!0,Ue.finalized=!0,Tc.litElementHydrateSupport?.({LitElement:Ue});const H2=Tc.litElementPolyfillSupport;H2?.({LitElement:Ue});(Tc.litElementVersions??=[]).push("4.2.2");const Qe=e=>(t,n)=>{n!==void 0?n.addInitializer(()=>{customElements.define(e,t)}):customElements.define(e,t)};const J2={attribute:!0,type:String,converter:ji,reflect:!1,hasChanged:bc},Z2=(e=J2,t,n)=>{const{kind:s,metadata:r}=n;let i=globalThis.litPropertyMetadata.get(r);if(i===void 0&&globalThis.litPropertyMetadata.set(r,i=new Map),s==="setter"&&((e=Object.create(e)).wrapped=!0),i.set(n.name,e),s==="accessor"){const{name:a}=n;return{set(o){const c=t.get.call(this);t.set.call(this,o),this.requestUpdate(a,c,e,!0,o)},init(o){return o!==void 0&&this.C(a,void 0,e,o),o}}}if(s==="setter"){const{name:a}=n;return function(o){const c=this[a];t.call(this,o),this.requestUpdate(a,c,e,!0,o)}}throw Error("Unsupported decorator location: "+s)};function H(e){return(t,n)=>typeof n=="object"?Z2(e,t,n):((s,r,i)=>{const a=r.hasOwnProperty(i);return r.constructor.createProperty(i,s),a?Object.getOwnPropertyDescriptor(r,i):void 0})(e,t,n)}function Y(e){return H({...e,state:!0,attribute:!1})}const Y2=Te`
15
- * {
16
- box-sizing: border-box;
17
- -webkit-font-smoothing: antialiased;
18
- font-family: var(--dev-wallet-font-sans);
19
- }
20
-
21
- button {
22
- appearance: none;
23
- background-color: transparent;
24
- font-size: inherit;
25
- font-family: inherit;
26
- color: inherit;
27
- border: 0;
28
- padding: 0;
29
- margin: 0;
30
- cursor: pointer;
31
- outline-color: color-mix(in oklab, var(--dev-wallet-ring) 50%, transparent);
32
- }
33
-
34
- p,
35
- h1,
36
- h2,
37
- h3 {
38
- margin: 0;
39
- color: var(--dev-wallet-foreground);
40
- }
41
-
42
- :focus-visible {
43
- outline: 2px solid var(--dev-wallet-ring);
44
- outline-offset: 2px;
45
- }
46
- `,K2=Te`
47
- :host {
48
- /* Colors — OKLch dark theme */
49
- --dev-wallet-background: oklch(0.175 0.028 283);
50
- --dev-wallet-foreground: oklch(0.91 0 0);
51
- --dev-wallet-primary: oklch(0.55 0.24 265);
52
- --dev-wallet-primary-foreground: oklch(0.98 0 0);
53
- --dev-wallet-secondary: oklch(0.195 0.04 262);
54
- --dev-wallet-secondary-foreground: oklch(0.91 0 0);
55
- --dev-wallet-muted: oklch(0.25 0.035 280);
56
- --dev-wallet-muted-foreground: oklch(0.62 0.04 280);
57
- --dev-wallet-destructive: oklch(0.63 0.26 25);
58
- --dev-wallet-positive: oklch(0.72 0.19 145);
59
- --dev-wallet-warning: oklch(0.79 0.17 75);
60
- --dev-wallet-border: oklch(0.25 0.035 280);
61
- --dev-wallet-input: oklch(0.25 0.035 280);
62
- --dev-wallet-ring: oklch(0.55 0.24 265);
63
- --dev-wallet-status-connected: #22c55e;
64
- --dev-wallet-status-disconnected: #6b7280;
65
-
66
- /* Radius scale — derived from base */
67
- --dev-wallet-radius: 12px;
68
- --dev-wallet-radius-xs: calc(var(--dev-wallet-radius) - 6px);
69
- --dev-wallet-radius-sm: calc(var(--dev-wallet-radius) - 4px);
70
- --dev-wallet-radius-md: calc(var(--dev-wallet-radius) - 2px);
71
- --dev-wallet-radius-xl: calc(var(--dev-wallet-radius) + 4px);
72
- --dev-wallet-radius-2xs: 3px;
73
-
74
- /* Shadows */
75
- --dev-wallet-shadow-sm: 0 1px 3px color-mix(in oklab, oklch(0 0 0) 10%, transparent);
76
- --dev-wallet-shadow-md: 0 4px 12px color-mix(in oklab, oklch(0 0 0) 30%, transparent);
77
-
78
- /* Typography */
79
- --dev-wallet-font-sans:
80
- ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
81
- 'Helvetica Neue', Arial, sans-serif;
82
- --dev-wallet-font-weight-medium: 500;
83
- --dev-wallet-font-weight-semibold: 600;
84
- --dev-wallet-font-mono:
85
- ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
86
-
87
- /* Font-size scale */
88
- --dev-wallet-text-2xs: 10px;
89
- --dev-wallet-text-xs: 11px;
90
- --dev-wallet-text-sm: 12px;
91
- --dev-wallet-text-base: 13px;
92
- --dev-wallet-text-md: 14px;
93
- --dev-wallet-text-lg: 15px;
94
- --dev-wallet-text-xl: 16px;
95
- --dev-wallet-shadow-lg: 0 8px 32px color-mix(in oklab, oklch(0 0 0) 40%, transparent);
96
- }
97
- `,Ih=Te`
98
- .dropdown-item {
99
- display: flex;
100
- align-items: center;
101
- gap: 8px;
102
- width: 100%;
103
- padding: 8px 10px;
104
- font-size: 12px;
105
- color: var(--dev-wallet-foreground);
106
- text-align: left;
107
- }
108
-
109
- .dropdown-item:hover {
110
- background: var(--dev-wallet-secondary);
111
- }
112
-
113
- .dropdown-item[aria-selected='true'] {
114
- font-weight: var(--dev-wallet-font-weight-semibold);
115
- }
116
- `,X2=Te`
117
- .connect-dialog {
118
- width: 360px;
119
- max-height: min(600px, 80vh);
120
- border-radius: var(--dev-wallet-radius-xl);
121
- background: var(--dev-wallet-background);
122
- border: 1px solid var(--dev-wallet-border);
123
- box-shadow: var(--dev-wallet-shadow-lg);
124
- overflow: hidden;
125
- display: flex;
126
- flex-direction: column;
127
- padding: 0;
128
- color: inherit;
129
- }
130
-
131
- .connect-dialog::backdrop {
132
- background: color-mix(in oklab, oklch(0 0 0) 50%, transparent);
133
- }
134
-
135
- .connect-dialog-header {
136
- display: flex;
137
- justify-content: space-between;
138
- align-items: center;
139
- padding: 14px 16px;
140
- border-bottom: 1px solid var(--dev-wallet-border);
141
- }
142
-
143
- .connect-dialog-title {
144
- font-size: 15px;
145
- font-weight: var(--dev-wallet-font-weight-semibold);
146
- color: var(--dev-wallet-foreground);
147
- }
148
- `,aa=Te`
149
- .actions {
150
- display: flex;
151
- gap: 8px;
152
- }
153
-
154
- .btn {
155
- flex: 1;
156
- padding: 10px 16px;
157
- border-radius: var(--dev-wallet-radius-md);
158
- font-size: 13px;
159
- font-weight: var(--dev-wallet-font-weight-semibold);
160
- transition: background-color 0.15s;
161
- }
162
-
163
- .btn-approve {
164
- background: var(--dev-wallet-positive);
165
- color: var(--dev-wallet-primary-foreground);
166
- }
167
-
168
- .btn-approve:hover {
169
- background: oklab(from var(--dev-wallet-positive) calc(l - 0.03) a b);
170
- }
171
-
172
- .btn-reject {
173
- background: var(--dev-wallet-destructive);
174
- color: var(--dev-wallet-primary-foreground);
175
- }
176
-
177
- .btn-reject:hover {
178
- background: oklab(from var(--dev-wallet-destructive) calc(l - 0.05) a b);
179
- }
180
-
181
- .btn-cancel {
182
- background: var(--dev-wallet-secondary);
183
- color: var(--dev-wallet-foreground);
184
- border: 1px solid var(--dev-wallet-border);
185
- }
186
-
187
- .btn-cancel:hover {
188
- background: oklab(from var(--dev-wallet-secondary) calc(l - 0.02) a b);
189
- }
190
-
191
- .btn-create {
192
- background: var(--dev-wallet-primary);
193
- color: var(--dev-wallet-primary-foreground);
194
- }
195
-
196
- .btn-create:hover {
197
- background: oklab(from var(--dev-wallet-primary) calc(l - 0.03) a b);
198
- }
199
-
200
- .btn-create:disabled,
201
- .btn-approve:disabled {
202
- opacity: 0.5;
203
- cursor: not-allowed;
204
- }
205
- `,kc=Te`
206
- .loading,
207
- .empty-state,
208
- .error-state {
209
- text-align: center;
210
- padding: 16px;
211
- font-size: 13px;
212
- }
213
-
214
- .loading {
215
- color: var(--dev-wallet-muted-foreground);
216
- }
217
-
218
- .empty-state {
219
- color: var(--dev-wallet-muted-foreground);
220
- }
221
-
222
- .error-state {
223
- color: var(--dev-wallet-destructive);
224
- }
225
- `,oa=Te`
226
- .section-header {
227
- font-size: 13px;
228
- font-weight: var(--dev-wallet-font-weight-semibold);
229
- color: var(--dev-wallet-muted-foreground);
230
- text-transform: uppercase;
231
- letter-spacing: 0.5px;
232
- margin-bottom: 12px;
233
- }
234
- `,Q2=Te`
235
- @media (prefers-reduced-motion: reduce) {
236
- *,
237
- *::before,
238
- *::after {
239
- animation-duration: 0.01ms !important;
240
- animation-iteration-count: 1 !important;
241
- transition-duration: 0.01ms !important;
242
- }
243
- }
244
- `,et=[Y2,K2,Q2],eI="0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<";function pt(e){return e.length<=16?e:`${e.slice(0,8)}...${e.slice(-6)}`}function Ah(e){try{return Ye(e).name}catch{return e}}function tI(e){try{return ut(e).startsWith(eI)}catch{return!1}}function nI(e){try{return Ye(e).name}catch{return e}}async function sI(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}const Ys={mainnet:"#f97316",testnet:"#22c55e",devnet:"#3b82f6",localnet:"#6b7280"};function xh(e){return e!=null&&typeof e=="object"&&"isPaired"in e}function Ge(e,t,n){e.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:n}))}function Oh(e,t){const n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function Dr(e,t){return e instanceof Error?e.message:t}function Jn(e,t){return e.find(n=>n.getAccount(t)!==void 0)}function Nh(e,t){if(t===0)return e.toString();const n=typeof e=="string"?BigInt(e):e,s=BigInt(10**t),r=n/s,i=n%s;if(i===0n)return r.toString();const a=i.toString().padStart(t,"0").replace(/0+$/,"");return`${r}.${a}`}var rI=Object.defineProperty,iI=Object.getOwnPropertyDescriptor,Rh=e=>{throw TypeError(e)},Zn=(e,t,n,s)=>{for(var r=s>1?void 0:s?iI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&rI(t,n,r),r},aI=(e,t,n)=>t.has(e)||Rh("Cannot "+n),oI=(e,t,n)=>t.has(e)?Rh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),qa=(e,t,n)=>(aI(e,t,"access private method"),n),Ks,Ch,Uh,$h;let Qt=class extends Ue{constructor(){super(...arguments),oI(this,Ks),this.appName="",this.appUrl="",this.accounts=[],this._connecting=!1,this._error=null,this._selectedAddresses=new Set}willUpdate(e){e.has("accounts")&&this.accounts.length>0&&this._selectedAddresses.size===0&&(this._selectedAddresses=new Set(this.accounts.map(t=>t.address)))}render(){return y`
245
- <div class="connect-content">
246
- <div class="connect-header">
247
- <div class="connect-title">Connection Request</div>
248
- <div class="connect-desc">Select accounts to share with the app</div>
249
- ${this.appName?y`
250
- <div class="app-info">
251
- <span class="app-name">${this.appName}</span>
252
- <span class="app-url">${this.appUrl}</span>
253
- </div>
254
- `:M}
255
- </div>
256
- ${this.accounts.length>0?y`
257
- <div class="account-list" part="account-list">
258
- ${this.accounts.map(e=>y`
259
- <label class="account-item">
260
- <input
261
- type="checkbox"
262
- .checked=${this._selectedAddresses.has(e.address)}
263
- @change=${()=>qa(this,Ks,Ch).call(this,e.address)}
264
- />
265
- <div>
266
- ${e.label?y`<div class="account-label">
267
- ${e.label}${e.adapterName?y`<span class="account-adapter">${e.adapterName}</span>`:M}
268
- </div>`:M}
269
- <div class="account-address">${pt(e.address)}</div>
270
- </div>
271
- </label>
272
- `)}
273
- </div>
274
- `:M}
275
- </div>
276
- <div class="connect-footer">
277
- <div class="actions">
278
- <button class="btn btn-reject" part="reject-button" @click=${qa(this,Ks,$h)}>Reject</button>
279
- <button
280
- class="btn btn-approve"
281
- part="approve-button"
282
- ?disabled=${this._connecting||this._selectedAddresses.size===0}
283
- @click=${qa(this,Ks,Uh)}
284
- >
285
- ${this._connecting?"Connecting...":`Connect (${this._selectedAddresses.size})`}
286
- </button>
287
- </div>
288
- ${this._error?y`<p class="error-message" part="error-message">${this._error}</p>`:M}
289
- </div>
290
- `}get selectedAddresses(){return[...this._selectedAddresses]}showError(e){this._connecting=!1,this._error=e}};Ks=new WeakSet;Ch=function(e){this._selectedAddresses=Oh(this._selectedAddresses,e)};Uh=function(){this._connecting=!0,this._error=null,Ge(this,"approve",{selectedAddresses:this.selectedAddresses})};$h=function(){Ge(this,"reject")};Qt.styles=[et,aa,Te`
291
- :host {
292
- display: flex;
293
- flex-direction: column;
294
- min-height: 0;
295
- }
296
-
297
- .connect-content {
298
- flex: 1;
299
- padding: 16px;
300
- }
301
-
302
- .connect-header {
303
- text-align: center;
304
- margin-bottom: 12px;
305
- }
306
-
307
- .connect-title {
308
- font-size: 14px;
309
- font-weight: var(--dev-wallet-font-weight-semibold);
310
- color: var(--dev-wallet-foreground);
311
- }
312
-
313
- .connect-desc {
314
- font-size: 12px;
315
- color: var(--dev-wallet-muted-foreground);
316
- margin-top: 4px;
317
- }
318
-
319
- .app-info {
320
- margin-top: 8px;
321
- }
322
-
323
- .app-name {
324
- font-size: 13px;
325
- font-weight: var(--dev-wallet-font-weight-medium);
326
- color: var(--dev-wallet-foreground);
327
- display: block;
328
- }
329
-
330
- .app-url {
331
- font-size: 11px;
332
- color: var(--dev-wallet-muted-foreground);
333
- word-break: break-all;
334
- }
335
-
336
- .account-list {
337
- max-height: 240px;
338
- overflow-y: auto;
339
- }
340
-
341
- .account-item {
342
- display: flex;
343
- align-items: center;
344
- gap: 8px;
345
- padding: 8px;
346
- border-radius: var(--dev-wallet-radius-md);
347
- cursor: pointer;
348
- }
349
-
350
- .account-item:hover {
351
- background: var(--dev-wallet-secondary);
352
- }
353
-
354
- .account-item input[type='checkbox'] {
355
- accent-color: var(--dev-wallet-primary);
356
- }
357
-
358
- .account-label {
359
- font-size: 13px;
360
- font-weight: var(--dev-wallet-font-weight-semibold);
361
- color: var(--dev-wallet-foreground);
362
- }
363
-
364
- .account-address {
365
- font-size: 11px;
366
- font-family: var(--dev-wallet-font-mono);
367
- color: var(--dev-wallet-muted-foreground);
368
- }
369
-
370
- .account-adapter {
371
- display: inline-block;
372
- font-size: 9px;
373
- font-weight: var(--dev-wallet-font-weight-semibold);
374
- text-transform: uppercase;
375
- letter-spacing: 0.3px;
376
- padding: 1px 5px;
377
- border-radius: var(--dev-wallet-radius-2xs);
378
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
379
- color: var(--dev-wallet-primary);
380
- margin-left: 6px;
381
- }
382
-
383
- .connect-footer {
384
- padding: 12px 16px;
385
- border-top: 1px solid var(--dev-wallet-border);
386
- }
387
-
388
- /* Override: connect uses --primary instead of --positive for approve */
389
- .btn-approve {
390
- background: var(--dev-wallet-primary);
391
- }
392
-
393
- .btn-approve:hover {
394
- background: oklab(from var(--dev-wallet-primary) calc(l - 0.03) a b);
395
- }
396
-
397
- .btn-approve:disabled {
398
- cursor: default;
399
- }
400
-
401
- .error-message {
402
- color: var(--dev-wallet-destructive);
403
- font-size: 12px;
404
- margin-top: 8px;
405
- text-align: center;
406
- }
407
- `];Zn([H({type:String})],Qt.prototype,"appName",2);Zn([H({type:String})],Qt.prototype,"appUrl",2);Zn([H({attribute:!1})],Qt.prototype,"accounts",2);Zn([Y()],Qt.prototype,"_connecting",2);Zn([Y()],Qt.prototype,"_error",2);Zn([Y()],Qt.prototype,"_selectedAddresses",2);Qt=Zn([Qe("dev-wallet-connect")],Qt);class ca{constructor(t,n=1500){this.copied=!1,this.copiedValue=null,this.#e=null,this.#t=n,this.host=t,t.addController(this)}#e;#t;hostConnected(){}hostDisconnected(){this.#e&&(clearTimeout(this.#e),this.#e=null)}async copy(t){const n=await sI(t);return n&&(this.copied=!0,this.copiedValue=t,this.#e&&clearTimeout(this.#e),this.#e=setTimeout(()=>{this.copied=!1,this.copiedValue=null,this.host.requestUpdate()},this.#t),this.host.requestUpdate()),n}isCopied(t){return this.copied&&this.copiedValue===t}}function Pe({cacheKey:e,dependencies:t,analyze:n}){return{cacheKey:e,dependencies:t,analyze:n}}async function cI(e,{transaction:t,...n}){const s=bo.from(t),r=new Map;function i(l){const u=l.cacheKey??l;if(!r.has(u)){const d=l.dependencies||{};r.set(u,l.analyze(n,s)),Object.values(d).forEach(h=>i(h))}return r.get(u)}Object.values(e).forEach(l=>i(l));const a=new Map;async function o(l){const u=Object.fromEntries(await Promise.all(Object.entries(l.dependencies||{}).map(async([h,f])=>[h,await c(f)]))),d=new Set;for(const h of Object.values(u))h.issues&&h.issues.forEach(f=>d.add(f));if(d.size)return{issues:[...d]};try{return await r.get(l.cacheKey??l)(Object.fromEntries(Object.entries(u).map(([h,f])=>[h,f.result])))}catch(h){return{issues:[{message:`Unexpected error while analyzing transaction: ${h.message}`}]}}}function c(l){const u=l.cacheKey??l;return a.has(u)||a.set(u,o(l)),a.get(u)}return Object.fromEntries(await Promise.all(Object.entries(e).map(async([l,u])=>[l,await c(u)])))}const la=Pe({cacheKey:"bytes@1.0.0",analyze:(e,t)=>async()=>{try{return{result:await t.build({client:e.client})}}catch{return{issues:[{message:"Failed to build transaction"}]}}}}),Yn=Pe({dependencies:{bytes:la},analyze:(e,t)=>()=>({result:t.getData()})}),lI=Pe({dependencies:{bytes:la},analyze:()=>({bytes:e})=>({result:as.getDigestFromBytes(e)})}),Dh=Pe({cacheKey:"transactionResponse@1.0.0",dependencies:{bytes:la},analyze:e=>async({bytes:t})=>{try{const n=await e.client.core.simulateTransaction({transaction:t});return{result:e.transactionResponse??n.Transaction??n.FailedTransaction}}catch{return{issues:[{message:"Failed to dry run transaction"}]}}}}),uI=Pe({dependencies:{transactionResponse:Dh},analyze:()=>({transactionResponse:e})=>({result:e.balanceChanges||[]})}),Mh=Pe({dependencies:{data:Yn},analyze:()=>({data:e})=>{const t=[],n=e.inputs.filter(r=>{switch(r.$kind){case"UnresolvedObject":case"UnresolvedPure":return t.push({message:`Unexpected unresolved input: ${JSON.stringify(r)}`}),!1;case"Pure":return!1;case"Object":return!0;default:return t.push({message:`Unknown input type: ${JSON.stringify(r)}`}),!1}}).map(r=>{switch(r.Object.$kind){case"ImmOrOwnedObject":return r.Object.ImmOrOwnedObject.objectId;case"SharedObject":return r.Object.SharedObject.objectId;case"Receiving":return r.Object.Receiving.objectId;default:throw new Error(`Unknown object type: ${JSON.stringify(r)}`)}});if(t.length)return{issues:t};const s=e.gasData.payment?.map(r=>r.objectId)||[];return{result:Array.from(new Set([...n,...s]))}}}),Mr=Pe({cacheKey:"objects@1.0.0",dependencies:{objectIds:Mh},analyze:({client:e})=>async({objectIds:t})=>{const{objects:n}=await e.core.getObjects({objectIds:t,include:{content:!0}}),s=[],r=n.filter(i=>i instanceof Error?(s.push({message:`Failed to fetch object: ${i.message}`,error:i}),!1):!0).map(i=>{let a=null;switch(i.owner.$kind){case"AddressOwner":a=i.owner.AddressOwner;break;case"ObjectOwner":a=i.owner.ObjectOwner;break;case"ConsensusAddressOwner":a=i.owner.ConsensusAddressOwner.owner;break;case"Shared":case"Immutable":a=null;break;default:s.push({message:`Unknown owner type: ${JSON.stringify(i.owner)}`})}return{...i,ownerAddress:a}});return s.length?{issues:s}:{result:r}}}),dI=Pe({dependencies:{objects:Mr},analyze:()=>({objects:e})=>({result:e.filter(t=>t.ownerAddress!==null)})}),_c=Pe({dependencies:{objects:Mr},analyze:()=>({objects:e})=>({result:new Map(e.map(t=>[t.objectId,t]))})}),Bh=G.struct("Coin",{id:G.Address,balance:G.U64}),Ha=Ye("0x2::coin::Coin<0x2::sui::SUI>"),jh=Pe({dependencies:{objects:Mr},analyze:()=>async({objects:e})=>({result:Object.fromEntries(await Promise.all(e.filter(t=>{const n=Ye(t.type);return n.address===Ha.address&&n.module===Ha.module&&n.name===Ha.name&&n.typeParams.length===1}).map(async t=>[t.objectId,{...t,coinType:ut(Ye(t.type).typeParams[0]),balance:BigInt(Bh.parse(t.content).balance)}])))})}),Ec=Pe({dependencies:{objectsById:_c,data:Yn},analyze:()=>async({objectsById:e,data:t})=>({result:await Promise.all((t.gasData.payment??[]).map(async n=>{const s=e.get(n.objectId),r=Bh.parse(s.content);return{...s,coinType:ut(Ye(s.type).typeParams[0]),balance:BigInt(r.balance)}}))})}),Sc=Pe({dependencies:{data:Yn,objectsById:_c},analyze:()=>({data:e,objectsById:t})=>({result:e.inputs.map((n,s)=>{switch(n.$kind){case"Pure":return{$kind:"Pure",index:s,bytes:n.Pure.bytes,accessLevel:"transfer"};case"Object":const r=n.Object.ImmOrOwnedObject?.objectId??n.Object.Receiving?.objectId??n.Object.SharedObject?.objectId,i=t.get(r);if(!i)throw new Error(`Missing object for id ${r}`);return{$kind:"Object",index:s,object:i,accessLevel:"read"};default:throw new Error(`Unknown input type: ${JSON.stringify(n)}`)}})})}),Ph=Pe({cacheKey:"moveFunctions@1.0.0",dependencies:{data:Yn},analyze:({client:e})=>async({data:t})=>{const n=[],s=new Set(t.commands.filter(i=>i.$kind==="MoveCall").map(i=>`${i.MoveCall.package}::${i.MoveCall.module}::${i.MoveCall.function}`)),r=await Promise.all(Array.from(s).map(async i=>{const[a,o,c]=i.split("::");try{return(await e.core.getMoveFunction({packageId:a,moduleName:o,name:c})).function}catch{return n.push({message:`Failed to fetch Move function: ${i}`}),null}}));return n.length?{issues:n}:{result:r.filter(i=>i!==null)}}}),Ic=Pe({dependencies:{data:Yn,moveFunctions:Ph,inputs:Sc},analyze:()=>({data:e,moveFunctions:t,inputs:n})=>{const s=[],r=[],i=(a,o="transfer")=>{switch(a.$kind){case"Input":break;case"GasCoin":return{$kind:"GasCoin",accessLevel:o};case"Result":return{$kind:"Result",index:[a.Result,0],accessLevel:o};case"NestedResult":return{$kind:"Result",index:a.NestedResult,accessLevel:o};default:return s.push({message:`Unexpected input type: ${JSON.stringify(a)}`}),{$kind:"Unknown",accessLevel:o}}const c=n[a.Input];return c?{...c,accessLevel:o}:(s.push({message:`Missing input for index ${a.Input}`}),{$kind:"Unknown",accessLevel:o})};for(let a=0;a<e.commands.length;a++){const o=e.commands[a];switch(o.$kind){case"$Intent":s.push({message:`Unexpected $Intent command: ${JSON.stringify(o)}`});break;case"MakeMoveVec":r.push({$kind:"MakeMoveVec",index:a,elements:o.MakeMoveVec.elements.map(c=>i(c)),command:o.MakeMoveVec});break;case"TransferObjects":r.push({$kind:"TransferObjects",index:a,address:i(o.TransferObjects.address),objects:o.TransferObjects.objects.map(c=>i(c)),command:o.TransferObjects});break;case"MergeCoins":r.push({$kind:"MergeCoins",index:a,sources:o.MergeCoins.sources.map(c=>i(c)),destination:i(o.MergeCoins.destination,"mutate"),command:o.MergeCoins});break;case"SplitCoins":r.push({$kind:"SplitCoins",index:a,coin:i(o.SplitCoins.coin,"mutate"),amounts:o.SplitCoins.amounts.map(c=>i(c,"transfer")),command:o.SplitCoins});break;case"MoveCall":{const c=t.find(l=>l.packageId===o.MoveCall.package&&l.moduleName===o.MoveCall.module&&l.name===o.MoveCall.function);r.push({$kind:"MoveCall",index:a,arguments:o.MoveCall.arguments.map((l,u)=>{let d="transfer";switch(c.parameters[u].reference){case"mutable":d="mutate";break;case"immutable":d="read";break}return i(l,d)}),command:o.MoveCall,function:c});break}case"Publish":r.push({$kind:"Publish",index:a,command:o.Publish});break;case"Upgrade":r.push({$kind:"Upgrade",index:a,ticket:i(o.Upgrade.ticket),command:o.Upgrade});break;default:throw new Error("Unknown command type: "+o.$kind)}}return s.length?{issues:s}:{result:r}}}),pI=Pe({dependencies:{commands:Ic,objects:Mr,gasCoins:Ec},analyze:()=>async({commands:e,objects:t,gasCoins:n})=>{const s=[],r=new Set(n.map(c=>c.objectId)),i=Object.fromEntries(t.map(c=>[c.objectId,"read"]));for(const c of r)i[c]="mutate";for(const c of e)switch(c.$kind){case"TransferObjects":for(const l of c.objects)a(l);break;case"MoveCall":for(const l of c.arguments)a(l);break;case"SplitCoins":a(c.coin);break;case"MergeCoins":a(c.destination);for(const l of c.sources)a(l);break;case"MakeMoveVec":for(const l of c.elements)a(l);break;case"Upgrade":a(c.ticket);break;case"Publish":break;default:s.push({message:`Unknown command type: ${JSON.stringify(c)}`})}if(s.length)return{issues:s};return{result:i};function a(c){switch(c.$kind){case"GasCoin":for(const l of r)o(l,c.accessLevel);break;case"Object":o(c.object.objectId,c.accessLevel);break}}function o(c,l){const u=i[c];u!=="transfer"&&(u==="mutate"?l==="transfer"&&(i[c]="transfer"):i[c]=l)}}}),Lh=Pe({dependencies:{data:Yn,commands:Ic,inputs:Sc,coins:jh,gasCoins:Ec},analyze:()=>async({data:e,commands:t,inputs:n,coins:s,gasCoins:r})=>{const i=h=>{switch(h.$kind){case"GasCoin":return u.get("gas")??null;case"Object":return u.get(`input:${h.index}`)??null;case"Result":return u.get(`result:${h.index[0]},${h.index[1]}`)??null;case"Unknown":case"Pure":return null}},a=h=>{const f=i(h.coin);if(!f)return;if(!h.amounts.every(v=>v.$kind==="Pure")){f.consume();return}const m=h.amounts.map(v=>{if(v.$kind!=="Pure")throw new Error("Expected pure value");return BigInt(G.u64().fromBase64(v.bytes))});f.remainingBalance-=m.reduce((v,b)=>v+b,0n),m.forEach((v,b)=>{u.set(`result:${h.index},${b}`,new Ja(f.coinType,v,!1))})},o=h=>{const f=h.sources.map(i),m=f.reduce((b,w)=>b+(w?.remainingBalance??0n),0n);for(const b of f)b?.consume();const v=i(h.destination);v&&(v.remainingBalance+=m)},c=h=>{const f=h.address.$kind==="Pure"?G.Address.fromBase64(h.address.bytes):null;for(const m of h.objects){const v=i(m);v&&f&&e.sender===f&&(u.get("gas").remainingBalance+=v.remainingBalance),v?.consume()}},l=[],u=new Map;u.set("gas",new Ja(ut("0x2::sui::SUI"),r.reduce((h,f)=>h+f.balance,0n),!0)),e.gasData.budget?u.get("gas").remainingBalance-=BigInt(e.gasData.budget):l.push({message:"Gas budget not set in Transaction"});for(const h of n)if(h.$kind==="Object"&&s[h.object.objectId]){const f=s[h.object.objectId];u.set(`input:${h.index}`,new Ja(f.coinType,f.balance,!0))}for(const h of t)switch(h.$kind){case"SplitCoins":a(h);break;case"MergeCoins":o(h);break;case"TransferObjects":c(h);break;case"MakeMoveVec":h.elements.forEach(f=>{i(f)?.consume()});break;case"MoveCall":h.arguments.forEach(f=>{i(f)?.consume()});break;case"Upgrade":case"Publish":break;default:throw new Error(`Unsupported command type: ${h.$kind}`)}const d={};for(const h of u.values())h.owned&&(d[h.coinType]||(d[h.coinType]={coinType:h.coinType,amount:0n}),d[h.coinType].amount+=h.initialBalance-h.remainingBalance);return l.length?{issues:l}:{result:{outflows:Object.values(d)}}}});var Ja=class{constructor(e,t,n){this.consumed=!1,this.coinType=e,this.initialBalance=t,this.remainingBalance=t,this.owned=n}consume(){this.remainingBalance=0n,this.consumed=!0}};const hI=Pe({dependencies:{coinFlows:Lh},analyze:({getCoinPrices:e})=>async({coinFlows:t})=>{const n=await e(t.outflows.map(a=>a.coinType));let s=0;const r=[],i=[];for(const a of t.outflows)if(a.amount>0n){const o=n.find(c=>c.coinType===a.coinType);if(o?.price!=null){const c=Number(a.amount)/10**o.decimals*o.price;s+=c,i.push({coinType:a.coinType,decimals:o.decimals,price:o.price,amount:a.amount,convertedAmount:c})}else r.push(a.coinType)}return{result:{total:s,coinTypesWithoutPrice:r,coinTypes:i}}}}),cu={accessLevel:pI,balanceChanges:uI,bytes:la,coinFlows:Lh,coins:jh,coinValues:hI,commands:Ic,data:Yn,digest:lI,transactionResponse:Dh,gasCoins:Ec,inputs:Sc,moveFunctions:Ph,objectIds:Mh,objects:Mr,objectsById:_c,ownedObjects:dI};async function fI(e,t){if(!t)return{kind:"error",message:"No client available to analyze transaction"};try{const n=await cI({commands:cu.commands,coinFlows:cu.coinFlows},{client:t,transaction:e});if(n.commands.result)return{kind:"rich",analysis:{commands:n.commands.result,coinFlows:n.coinFlows.result?.outflows??null}};const s=n.commands.issues??n.coinFlows.issues??[];return s.length>0?{kind:"error",message:s.map(r=>r.message).join(`
408
- `)}:{kind:"error",message:"Transaction analysis returned no results"}}catch(n){const s=n instanceof Error?n.message:String(n);let r;return s.includes("fetch")||s.includes("network")||s.includes("ECONNREFUSED")?r=`Network error: ${s}`:s.includes("deserialize")||s.includes("BCS")||s.includes("parse")?r=`Invalid transaction data: ${s}`:r=s,{kind:"error",message:r}}}var mI=Object.defineProperty,gI=Object.getOwnPropertyDescriptor,Vh=e=>{throw TypeError(e)},Ps=(e,t,n,s)=>{for(var r=s>1?void 0:s?gI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&mI(t,n,r),r},Ac=(e,t,n)=>t.has(e)||Vh("Cannot "+n),Ut=(e,t,n)=>(Ac(e,t,"read from private field"),n?n.call(e):t.get(e)),qr=(e,t,n)=>t.has(e)?Vh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),vI=(e,t,n,s)=>(Ac(e,t,"write to private field"),t.set(e,n),n),Et=(e,t,n)=>(Ac(e,t,"access private method"),n),bI=(e,t,n,s)=>({set _(r){vI(e,t,r)},get _(){return Ut(e,t,s)}}),ds,cr,Er,st,Fh,Wh,Gh,zh,qh,Hh,Jh,Zh,Yh,Kh,Xh;const wI={"sign-personal-message":"Sign Message","sign-transaction":"Sign Transaction","sign-and-execute-transaction":"Sign & Execute Transaction"};let kn=class extends Ue{constructor(){super(...arguments),qr(this,st),this.request=null,this.client=null,this._analysis=null,this._analysisError=null,this._analyzing=!1,qr(this,ds,new ca(this)),qr(this,cr,0),qr(this,Er,new Map)}willUpdate(e){e.has("request")&&(this._analysis=null,this._analysisError=null,this._analyzing=!1,this.request&&this.request.type!=="sign-personal-message"&&Et(this,st,Fh).call(this))}render(){if(!this.request)return y`<div class="no-request" part="empty-state">No pending requests</div>`;const e=wI[this.request.type],t=this.request.type!=="sign-personal-message",n=t?this._analysis!==null&&!this._analysisError&&!this._analyzing:!0;return y`
409
- <div class="signing-content">
410
- <div class="signing-header">
411
- <span class="signing-badge"></span>
412
- <span class="signing-title">Approval Required</span>
413
- </div>
414
-
415
- <div class="request-type" part="request-type">${e}</div>
416
-
417
- <div class="request-detail">
418
- <span class="detail-label">Account</span>
419
- <span
420
- class="detail-value copyable-addr ${Ut(this,ds).isCopied(this.request.account.address)?"copied":""}"
421
- title="Click to copy"
422
- role="button"
423
- tabindex="0"
424
- aria-label="Copy account address"
425
- @click=${()=>Ut(this,ds).copy(this.request.account.address)}
426
- @keydown=${s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),Ut(this,ds).copy(this.request.account.address))}}
427
- >
428
- ${Ut(this,ds).isCopied(this.request.account.address)?"Copied!":this.request.account.label?y`${this.request.account.label}
429
- <span class="detail-secondary"
430
- >${pt(this.request.account.address)}</span
431
- >`:pt(this.request.account.address)}
432
- </span>
433
- </div>
434
- ${t?y`<div class="request-detail">
435
- <span class="detail-label">Chain</span>
436
- <span class="detail-value">${this.request.chain}</span>
437
- </div>`:M}
438
- ${Et(this,st,Wh).call(this)}
439
- </div>
440
- <div class="signing-footer" part="footer">
441
- <div class="actions">
442
- <button class="btn btn-reject" part="reject-button" @click=${Et(this,st,Xh)}>Reject</button>
443
- ${n?y`<button class="btn btn-approve" part="approve-button" @click=${Et(this,st,Kh)}>
444
- Approve
445
- </button>`:M}
446
- </div>
447
- </div>
448
- `}};ds=new WeakMap;cr=new WeakMap;Er=new WeakMap;st=new WeakSet;Fh=async function(){if(!this.request||typeof this.request.data!="string")return;this._analyzing=!0;const e=++bI(this,cr)._,t=await fI(this.request.data,this.client);if(e===Ut(this,cr)){if(t.kind==="rich"){if(this._analysis=t.analysis,this.client&&t.analysis.coinFlows?.length){const n=[...new Set(t.analysis.coinFlows.map(s=>s.coinType))];if(await Promise.all(n.filter(s=>!Ut(this,Er).has(s)).map(async s=>{try{const{coinMetadata:r}=await this.client.core.getCoinMetadata({coinType:s});r&&Ut(this,Er).set(s,r.decimals)}catch{}})),e!==Ut(this,cr))return;this.requestUpdate()}}else this._analysisError=t.message;this._analyzing=!1}};Wh=function(){if(this._analyzing)return y`<div class="section-label">Analyzing transaction...</div>`;if(this._analysisError)return y`
449
- <div class="section-label section-label-error">Analysis Failed</div>
450
- <div class="error-state" part="error-message">
451
- <div class="error-title">Unable to analyze this transaction</div>
452
- <div class="error-body">${this._analysisError}</div>
453
- <div class="error-hint">
454
- The transaction cannot be approved without successful analysis. Check that the network
455
- is reachable and the transaction is well-formed.
456
- </div>
457
- </div>
458
- `;if(this._analysis)return y`
459
- ${Et(this,st,Gh).call(this)} ${Et(this,st,zh).call(this,this._analysis.commands)}
460
- `;const e=Et(this,st,Yh).call(this);return e?y`<div class="request-data">${e}</div>`:M};Gh=function(){const e=this._analysis?.coinFlows;return!e||e.length===0?M:y`
461
- <div class="section-label">Estimated Cost</div>
462
- <div class="coin-flows">
463
- ${e.map(t=>{const n=Ut(this,Er).get(t.coinType)??0,s=Nh(t.amount,n);return y`
464
- <div class="coin-flow-item">
465
- <span class="coin-flow-type">${Ah(t.coinType)}</span>
466
- <span class="coin-flow-amount"> -${s} </span>
467
- </div>
468
- `})}
469
- </div>
470
- `};zh=function(e){return y`
471
- <div class="section-label">Commands</div>
472
- <div class="commands-list">${e.map(t=>Et(this,st,qh).call(this,t))}</div>
473
- `};qh=function(e){switch(e.$kind){case"MoveCall":return y`
474
- <div class="command-item">
475
- <div class="command-kind">MoveCall</div>
476
- <div class="command-detail">
477
- ${e.function.packageId}::${e.function.moduleName}::${e.function.name}
478
- </div>
479
- ${e.arguments.length>0?Et(this,st,Hh).call(this,e.arguments):M}
480
- </div>
481
- `;case"TransferObjects":return y`
482
- <div class="command-item">
483
- <div class="command-kind">TransferObjects</div>
484
- <div class="command-detail">
485
- ${e.objects.length} object${e.objects.length!==1?"s":""}
486
- ${e.address.$kind==="Pure"?y` &rarr; ${pt(Et(this,st,Zh).call(this,e.address))}`:M}
487
- </div>
488
- </div>
489
- `;case"SplitCoins":return y`
490
- <div class="command-item">
491
- <div class="command-kind">SplitCoins</div>
492
- <div class="command-detail">
493
- ${e.amounts.length} split${e.amounts.length!==1?"s":""} from
494
- ${e.coin.$kind==="GasCoin"?"gas coin":"coin"}
495
- </div>
496
- </div>
497
- `;case"MergeCoins":return y`
498
- <div class="command-item">
499
- <div class="command-kind">MergeCoins</div>
500
- <div class="command-detail">
501
- ${e.sources.length} source${e.sources.length!==1?"s":""}
502
- </div>
503
- </div>
504
- `;case"Publish":return y`
505
- <div class="command-item">
506
- <div class="command-kind">Publish</div>
507
- <div class="command-detail">New package</div>
508
- </div>
509
- `;case"Upgrade":return y`
510
- <div class="command-item">
511
- <div class="command-kind">Upgrade</div>
512
- <div class="command-detail">Package upgrade</div>
513
- </div>
514
- `;default:return y`
515
- <div class="command-item">
516
- <div class="command-kind">${e.$kind}</div>
517
- </div>
518
- `}};Hh=function(e){return y`
519
- <div class="command-args">
520
- ${e.map(t=>y`
521
- <div class="command-arg">
522
- <span class="arg-access arg-access-${t.accessLevel}">${t.accessLevel}</span>
523
- ${Et(this,st,Jh).call(this,t)}
524
- </div>
525
- `)}
526
- </div>
527
- `};Jh=function(e){switch(e.$kind){case"GasCoin":return"Gas Coin";case"Result":return`Result [${e.index[0]}, ${e.index[1]}]`;case"Pure":return`${e.bytes.slice(0,16)}${e.bytes.length>16?"...":""}`;case"Object":return pt(e.object.objectId);case"Unknown":return"unknown"}};Zh=function(e){if(e.$kind==="Pure")try{return G.Address.fromBase64(e.bytes)}catch{}return"?"};Yh=function(){if(!this.request)return null;if(this.request.type==="sign-personal-message"){const e=this.request.data;if(e instanceof Uint8Array)try{return new TextDecoder().decode(e)}catch{return`[${e.length} bytes]`}}return typeof this.request.data=="string"?this.request.data.length>200?this.request.data.slice(0,200)+"...":this.request.data:null};Kh=function(){Ge(this,"approve")};Xh=function(){Ge(this,"reject")};kn.styles=[et,aa,Te`
528
- :host {
529
- display: flex;
530
- flex-direction: column;
531
- overflow: hidden;
532
- min-height: 0;
533
- }
534
-
535
- .signing-content {
536
- flex: 1;
537
- overflow-y: auto;
538
- padding: 16px;
539
- }
540
-
541
- .signing-footer {
542
- padding: 12px 16px;
543
- border-top: 1px solid var(--dev-wallet-border);
544
- }
545
-
546
- .signing-header {
547
- display: flex;
548
- align-items: center;
549
- gap: 8px;
550
- margin-bottom: 12px;
551
- }
552
-
553
- .signing-badge {
554
- display: inline-block;
555
- width: 8px;
556
- height: 8px;
557
- border-radius: 50%;
558
- background: var(--dev-wallet-warning);
559
- animation: pulse 2s infinite;
560
- }
561
-
562
- @keyframes pulse {
563
- 0%,
564
- 100% {
565
- opacity: 1;
566
- }
567
- 50% {
568
- opacity: 0.5;
569
- }
570
- }
571
-
572
- .signing-title {
573
- font-size: 14px;
574
- font-weight: var(--dev-wallet-font-weight-semibold);
575
- color: var(--dev-wallet-foreground);
576
- }
577
-
578
- .request-type {
579
- font-size: 13px;
580
- color: var(--dev-wallet-primary);
581
- font-weight: var(--dev-wallet-font-weight-medium);
582
- margin-bottom: 8px;
583
- }
584
-
585
- .request-detail {
586
- display: flex;
587
- justify-content: space-between;
588
- padding: 6px 0;
589
- font-size: 12px;
590
- border-bottom: 1px solid var(--dev-wallet-border);
591
- }
592
-
593
- .request-detail:last-of-type {
594
- border-bottom: none;
595
- }
596
-
597
- .detail-label {
598
- color: var(--dev-wallet-muted-foreground);
599
- }
600
-
601
- .detail-value {
602
- color: var(--dev-wallet-foreground);
603
- font-family: var(--dev-wallet-font-mono);
604
- max-width: 220px;
605
- overflow: hidden;
606
- text-overflow: ellipsis;
607
- white-space: nowrap;
608
- }
609
-
610
- .detail-value.copyable-addr {
611
- cursor: pointer;
612
- border-radius: var(--dev-wallet-radius-2xs);
613
- padding: 1px 3px;
614
- transition: background 0.15s;
615
- }
616
-
617
- .detail-value.copyable-addr:hover {
618
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
619
- }
620
-
621
- .detail-value.copied {
622
- color: var(--dev-wallet-positive);
623
- }
624
-
625
- .detail-secondary {
626
- color: var(--dev-wallet-muted-foreground);
627
- font-size: 0.85em;
628
- }
629
-
630
- .request-data {
631
- margin: 12px 0;
632
- padding: 8px;
633
- border-radius: var(--dev-wallet-radius-xs);
634
- background: var(--dev-wallet-background);
635
- font-family: var(--dev-wallet-font-mono);
636
- font-size: 11px;
637
- color: var(--dev-wallet-muted-foreground);
638
- max-height: 80px;
639
- overflow-y: auto;
640
- word-break: break-all;
641
- }
642
-
643
- .section-label {
644
- font-size: 11px;
645
- font-weight: var(--dev-wallet-font-weight-semibold);
646
- color: var(--dev-wallet-muted-foreground);
647
- text-transform: uppercase;
648
- letter-spacing: 0.5px;
649
- margin: 12px 0 6px;
650
- }
651
-
652
- .coin-flows {
653
- display: flex;
654
- flex-direction: column;
655
- gap: 4px;
656
- margin-bottom: 4px;
657
- }
658
-
659
- .coin-flow-item {
660
- display: flex;
661
- justify-content: space-between;
662
- align-items: center;
663
- padding: 8px;
664
- border-radius: var(--dev-wallet-radius-xs);
665
- background: var(--dev-wallet-background);
666
- font-size: 12px;
667
- }
668
-
669
- .coin-flow-type {
670
- color: var(--dev-wallet-muted-foreground);
671
- }
672
-
673
- .coin-flow-amount {
674
- font-family: var(--dev-wallet-font-mono);
675
- font-weight: var(--dev-wallet-font-weight-semibold);
676
- color: var(--dev-wallet-destructive);
677
- }
678
-
679
- .commands-list {
680
- display: flex;
681
- flex-direction: column;
682
- gap: 4px;
683
- }
684
-
685
- .command-item {
686
- padding: 8px;
687
- border-radius: var(--dev-wallet-radius-xs);
688
- background: var(--dev-wallet-background);
689
- font-size: 12px;
690
- }
691
-
692
- .command-kind {
693
- font-weight: var(--dev-wallet-font-weight-semibold);
694
- color: var(--dev-wallet-primary);
695
- margin-bottom: 2px;
696
- }
697
-
698
- .command-detail {
699
- color: var(--dev-wallet-muted-foreground);
700
- font-family: var(--dev-wallet-font-mono);
701
- font-size: 11px;
702
- overflow: hidden;
703
- text-overflow: ellipsis;
704
- white-space: nowrap;
705
- }
706
-
707
- .command-args {
708
- margin-top: 4px;
709
- padding-left: 8px;
710
- border-left: 2px solid var(--dev-wallet-border);
711
- }
712
-
713
- .command-arg {
714
- font-size: 11px;
715
- color: var(--dev-wallet-muted-foreground);
716
- font-family: var(--dev-wallet-font-mono);
717
- padding: 1px 0;
718
- overflow: hidden;
719
- text-overflow: ellipsis;
720
- white-space: nowrap;
721
- }
722
-
723
- .arg-access {
724
- font-size: 10px;
725
- padding: 1px 4px;
726
- border-radius: var(--dev-wallet-radius-2xs);
727
- font-weight: var(--dev-wallet-font-weight-medium);
728
- }
729
-
730
- .arg-access-read {
731
- background: color-mix(in oklab, var(--dev-wallet-primary) 20%, transparent);
732
- color: var(--dev-wallet-primary);
733
- }
734
-
735
- .arg-access-mutate {
736
- background: color-mix(in oklab, var(--dev-wallet-warning) 20%, transparent);
737
- color: var(--dev-wallet-warning);
738
- }
739
-
740
- .arg-access-transfer {
741
- background: color-mix(in oklab, var(--dev-wallet-destructive) 20%, transparent);
742
- color: var(--dev-wallet-destructive);
743
- }
744
-
745
- .error-state {
746
- padding: 10px;
747
- border-radius: var(--dev-wallet-radius-xs);
748
- background: color-mix(in oklab, var(--dev-wallet-destructive) 10%, transparent);
749
- color: var(--dev-wallet-destructive);
750
- font-size: 12px;
751
- word-break: break-word;
752
- }
753
-
754
- .section-label-error {
755
- color: var(--dev-wallet-destructive);
756
- }
757
-
758
- .error-title {
759
- font-weight: var(--dev-wallet-font-weight-semibold);
760
- margin-bottom: 4px;
761
- }
762
-
763
- .error-body {
764
- margin-bottom: 6px;
765
- }
766
-
767
- .error-hint {
768
- font-size: 11px;
769
- opacity: 0.8;
770
- }
771
-
772
- .no-request {
773
- text-align: center;
774
- padding: 20px;
775
- color: var(--dev-wallet-muted-foreground);
776
- font-size: 13px;
777
- }
778
- `];Ps([H({attribute:!1})],kn.prototype,"request",2);Ps([H({attribute:!1})],kn.prototype,"client",2);Ps([Y()],kn.prototype,"_analysis",2);Ps([Y()],kn.prototype,"_analysisError",2);Ps([Y()],kn.prototype,"_analyzing",2);kn=Ps([Qe("dev-wallet-signing")],kn);var yI=Object.defineProperty,TI=Object.getOwnPropertyDescriptor,Qh=e=>{throw TypeError(e)},ft=(e,t,n,s)=>{for(var r=s>1?void 0:s?TI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&yI(t,n,r),r},xc=(e,t,n)=>t.has(e)||Qh("Cannot "+n),lu=(e,t,n)=>(xc(e,t,"read from private field"),t.get(e)),uu=(e,t,n)=>t.has(e)?Qh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),kI=(e,t,n,s)=>(xc(e,t,"write to private field"),t.set(e,n),n),du=(e,t,n)=>(xc(e,t,"access private method"),n),Xs,pi,ef,tf;let Ke=class extends Ue{constructor(){super(...arguments),uu(this,pi),this.walletName="Dev Wallet (Web)",this.requestType="connect",this.appName="",this.appUrl="",this.address="",this.accountLabel="",this.chain="",this.data=null,this.client=null,this.connectAccounts=[],this._request=null,uu(this,Xs,null)}willUpdate(e){this.requestType!=="connect"&&(e.has("requestType")||e.has("address")||e.has("accountLabel")||e.has("chain")||e.has("data"))&&(lu(this,Xs)||kI(this,Xs,crypto.randomUUID()),this._request={id:lu(this,Xs),type:this.requestType,account:{address:this.address,label:this.accountLabel||void 0,publicKey:new Uint8Array(0),chains:[],features:[]},chain:this.chain,data:this.data??""})}render(){return y`
779
- <div class="popup-card" part="card">
780
- <div class="popup-header">
781
- <span class="popup-title">${this.walletName}</span>
782
- </div>
783
- <div class="popup-body">
784
- ${this.requestType==="connect"?du(this,pi,ef).call(this):du(this,pi,tf).call(this)}
785
- </div>
786
- </div>
787
- `}};Xs=new WeakMap;pi=new WeakSet;ef=function(){return y`
788
- <dev-wallet-connect
789
- exportparts="approve-button: connect-approve-button, reject-button: connect-reject-button, account-list: connect-account-list, error-message: connect-error-message"
790
- .appName=${this.appName}
791
- .appUrl=${this.appUrl}
792
- .accounts=${this.connectAccounts}
793
- ></dev-wallet-connect>
794
- `};tf=function(){return this._request?y`
795
- <dev-wallet-signing
796
- exportparts="approve-button: signing-approve-button, reject-button: signing-reject-button, request-type: signing-request-type, empty-state: signing-empty-state, error-message: signing-error-message, footer: signing-footer"
797
- .request=${this._request}
798
- .client=${this.client}
799
- ></dev-wallet-signing>
800
- `:y``};Ke.styles=[et,Te`
801
- :host {
802
- display: flex;
803
- align-items: center;
804
- justify-content: center;
805
- min-height: 100vh;
806
- padding: 20px;
807
- }
808
-
809
- .popup-card {
810
- width: 360px;
811
- max-height: min(600px, 80vh);
812
- border-radius: var(--dev-wallet-radius-xl);
813
- background: var(--dev-wallet-background);
814
- border: 1px solid var(--dev-wallet-border);
815
- box-shadow: var(--dev-wallet-shadow-lg);
816
- overflow: hidden;
817
- display: flex;
818
- flex-direction: column;
819
- }
820
-
821
- .popup-header {
822
- display: flex;
823
- justify-content: space-between;
824
- align-items: center;
825
- padding: 14px 16px;
826
- border-bottom: 1px solid var(--dev-wallet-border);
827
- }
828
-
829
- .popup-title {
830
- font-size: 15px;
831
- font-weight: var(--dev-wallet-font-weight-semibold);
832
- color: var(--dev-wallet-foreground);
833
- }
834
-
835
- .popup-body {
836
- flex: 1;
837
- overflow: hidden;
838
- display: flex;
839
- flex-direction: column;
840
- }
841
- `];ft([H({type:String})],Ke.prototype,"walletName",2);ft([H({type:String})],Ke.prototype,"requestType",2);ft([H({type:String})],Ke.prototype,"appName",2);ft([H({type:String})],Ke.prototype,"appUrl",2);ft([H({type:String})],Ke.prototype,"address",2);ft([H({type:String})],Ke.prototype,"accountLabel",2);ft([H({type:String})],Ke.prototype,"chain",2);ft([H({attribute:!1})],Ke.prototype,"data",2);ft([H({attribute:!1})],Ke.prototype,"client",2);ft([H({attribute:!1})],Ke.prototype,"connectAccounts",2);ft([Y()],Ke.prototype,"_request",2);Ke=ft([Qe("dev-wallet-popup")],Ke);var _I=Object.defineProperty,EI=Object.getOwnPropertyDescriptor,nf=e=>{throw TypeError(e)},Oc=(e,t,n,s)=>{for(var r=s>1?void 0:s?EI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&_I(t,n,r),r},SI=(e,t,n)=>t.has(e)||nf("Cannot "+n),ss=(e,t,n)=>(SI(e,t,"read from private field"),n?n.call(e):t.get(e)),pu=(e,t,n)=>t.has(e)?nf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ps,hi;let Sr=class extends Ue{constructor(){super(...arguments),this.open=!1,this.fullWidth=!1,pu(this,ps,e=>{this.open&&!e.composedPath().includes(this)&&this.close()}),pu(this,hi,e=>{if(this.open){if(e.key==="Escape"){e.preventDefault(),this.close(),this.querySelector('[slot="trigger"]')?.focus();return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();const t=Array.from(this.querySelectorAll('[slot="popover"] button, [slot="popover"] [role="option"]'));if(t.length===0)return;const n=t.find(r=>r===document.activeElement);let s=n?t.indexOf(n):-1;e.key==="ArrowDown"?s=s<t.length-1?s+1:0:s=s>0?s-1:t.length-1,t[s]?.focus()}}})}render(){return y`
842
- <slot name="trigger"></slot>
843
- ${this.open?y`<div class="popover"><slot name="popover"></slot></div>`:M}
844
- `}close(){this.open&&(this.open=!1,Ge(this,"close"))}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",ss(this,hi)),this.open&&document.addEventListener("click",ss(this,ps),!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",ss(this,ps),!0),this.removeEventListener("keydown",ss(this,hi))}willUpdate(e){e.has("open")&&(this.open?document.addEventListener("click",ss(this,ps),!0):document.removeEventListener("click",ss(this,ps),!0))}};ps=new WeakMap;hi=new WeakMap;Sr.styles=[et,Te`
845
- :host {
846
- position: relative;
847
- display: inline-block;
848
- }
849
-
850
- :host([full-width]) {
851
- display: block;
852
- }
853
-
854
- .popover {
855
- position: absolute;
856
- top: 100%;
857
- left: 0;
858
- margin-top: 4px;
859
- min-width: 100%;
860
- background: var(--dev-wallet-background);
861
- border: 1px solid var(--dev-wallet-border);
862
- border-radius: var(--dev-wallet-radius-md);
863
- box-shadow: var(--dev-wallet-shadow-md);
864
- z-index: 10;
865
- overflow: hidden;
866
- max-height: var(--dropdown-max-height, none);
867
- overflow-y: auto;
868
- }
869
-
870
- :host([full-width]) .popover {
871
- right: 0;
872
- }
873
- `];Oc([H({type:Boolean,reflect:!0})],Sr.prototype,"open",2);Oc([H({type:Boolean,reflect:!0,attribute:"full-width"})],Sr.prototype,"fullWidth",2);Sr=Oc([Qe("dev-wallet-dropdown")],Sr);var II=Object.defineProperty,AI=Object.getOwnPropertyDescriptor,sf=e=>{throw TypeError(e)},Br=(e,t,n,s)=>{for(var r=s>1?void 0:s?AI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&II(t,n,r),r},rf=(e,t,n)=>t.has(e)||sf("Cannot "+n),Za=(e,t,n)=>(rf(e,t,"read from private field"),n?n.call(e):t.get(e)),hu=(e,t,n)=>t.has(e)?sf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Hr=(e,t,n)=>(rf(e,t,"access private method"),n),Qs,hs,Ao,af,of;const xI={"WebCrypto Signer":"WebCrypto","Remote CLI Signer":"CLI","In-Memory Signer":"Memory","Passkey Signer":"Passkey"};let Gn=class extends Ue{constructor(){super(...arguments),hu(this,hs),this.accounts=[],this.adapters=[],this.activeAddress="",this._open=!1,hu(this,Qs,new ca(this))}render(){const e=this.accounts.find(s=>s.address===this.activeAddress);if(!e)return y`<div class="empty-state" part="empty-state">No account selected</div>`;const t=Hr(this,hs,Ao).call(this,e),n=(t[0]??"?").toUpperCase();return y`
874
- <div class="selector-row">
875
- <dev-wallet-dropdown
876
- full-width
877
- class="selector-wrapper"
878
- .open=${this._open}
879
- @close=${()=>this._open=!1}
880
- >
881
- <button
882
- slot="trigger"
883
- class="active-account"
884
- part="trigger"
885
- aria-expanded=${this._open}
886
- aria-haspopup="listbox"
887
- @click=${()=>this._open=!this._open}
888
- >
889
- <span class="avatar">${n}</span>
890
- <div class="account-info">
891
- <div class="account-label">${t}</div>
892
- <div class="account-address">${pt(e.address)}</div>
893
- </div>
894
- <svg
895
- class="chevron"
896
- viewBox="0 0 24 24"
897
- fill="none"
898
- stroke="currentColor"
899
- stroke-width="2.5"
900
- >
901
- <path d="M6 9l6 6 6-6" />
902
- </svg>
903
- </button>
904
- <div slot="popover" role="listbox" aria-label="Select account">
905
- ${this.accounts.map(s=>{const r=Hr(this,hs,Ao).call(this,s),i=(r[0]??"?").toUpperCase(),a=Hr(this,hs,af).call(this,s.address);return y`
906
- <button
907
- class="dropdown-item"
908
- role="option"
909
- aria-selected=${s.address===this.activeAddress}
910
- @click=${()=>Hr(this,hs,of).call(this,s)}
911
- >
912
- <span class="avatar">${i}</span>
913
- <div class="account-info">
914
- <div class="account-label">${r}</div>
915
- <div class="account-address">${pt(s.address)}</div>
916
- </div>
917
- ${a?y`<span class="adapter-badge">${a}</span>`:M}
918
- </button>
919
- `})}
920
- </div>
921
- </dev-wallet-dropdown>
922
- <button
923
- class="copy-btn ${Za(this,Qs).isCopied(e.address)?"copied":""}"
924
- part="copy-button"
925
- title="Copy address"
926
- aria-label="Copy address"
927
- @click=${s=>{s.stopPropagation(),Za(this,Qs).copy(e.address)}}
928
- >
929
- ${Za(this,Qs).isCopied(e.address)?"✓":"⎘"}
930
- </button>
931
- </div>
932
- `}};Qs=new WeakMap;hs=new WeakSet;Ao=function(e){return e.label??`Account ${e.address.slice(0,8)}`};af=function(e){const t=Jn(this.adapters,e);return t?xI[t.name]??t.name:null};of=function(e){this._open=!1,Ge(this,"account-selected",{account:e})};Gn.styles=[et,Ih,Te`
933
- :host {
934
- display: block;
935
- }
936
-
937
- .active-account {
938
- display: flex;
939
- align-items: center;
940
- gap: 8px;
941
- width: 100%;
942
- padding: 8px 10px;
943
- border-radius: var(--dev-wallet-radius-md);
944
- background: var(--dev-wallet-secondary);
945
- cursor: pointer;
946
- transition: background 0.15s;
947
- }
948
-
949
- .active-account:hover {
950
- background: var(--dev-wallet-border);
951
- }
952
-
953
- .avatar {
954
- width: 28px;
955
- height: 28px;
956
- border-radius: 50%;
957
- display: flex;
958
- align-items: center;
959
- justify-content: center;
960
- font-size: 12px;
961
- font-weight: var(--dev-wallet-font-weight-semibold);
962
- color: var(--dev-wallet-primary-foreground);
963
- background: var(--dev-wallet-primary);
964
- flex-shrink: 0;
965
- }
966
-
967
- .account-info {
968
- flex: 1;
969
- min-width: 0;
970
- }
971
-
972
- .account-label {
973
- font-size: 13px;
974
- font-weight: var(--dev-wallet-font-weight-semibold);
975
- color: var(--dev-wallet-foreground);
976
- white-space: nowrap;
977
- overflow: hidden;
978
- text-overflow: ellipsis;
979
- }
980
-
981
- .account-address {
982
- font-size: 11px;
983
- font-family: var(--dev-wallet-font-mono);
984
- color: var(--dev-wallet-muted-foreground);
985
- }
986
-
987
- .copy-btn {
988
- width: 22px;
989
- height: 22px;
990
- display: flex;
991
- align-items: center;
992
- justify-content: center;
993
- border-radius: var(--dev-wallet-radius-xs);
994
- color: var(--dev-wallet-muted-foreground);
995
- flex-shrink: 0;
996
- font-size: 12px;
997
- }
998
-
999
- .copy-btn:hover {
1000
- background: var(--dev-wallet-border);
1001
- color: var(--dev-wallet-foreground);
1002
- }
1003
-
1004
- .copy-btn.copied {
1005
- color: var(--dev-wallet-positive);
1006
- }
1007
-
1008
- .chevron {
1009
- width: 14px;
1010
- height: 14px;
1011
- color: var(--dev-wallet-muted-foreground);
1012
- flex-shrink: 0;
1013
- }
1014
-
1015
- .dropdown-item[aria-selected='true'] {
1016
- background: color-mix(in oklab, var(--dev-wallet-primary) 10%, transparent);
1017
- }
1018
-
1019
- .dropdown-item .avatar {
1020
- width: 24px;
1021
- height: 24px;
1022
- font-size: 10px;
1023
- }
1024
-
1025
- .dropdown-item .account-label {
1026
- font-size: 12px;
1027
- }
1028
-
1029
- .dropdown-item .account-address {
1030
- font-size: 10px;
1031
- }
1032
-
1033
- .dropdown-item .account-info {
1034
- min-width: 0;
1035
- }
1036
-
1037
- .dropdown-item .account-label {
1038
- overflow: hidden;
1039
- text-overflow: ellipsis;
1040
- white-space: nowrap;
1041
- }
1042
-
1043
- .adapter-badge {
1044
- font-size: 9px;
1045
- padding: 1px 4px;
1046
- border-radius: var(--dev-wallet-radius-2xs);
1047
- background: var(--dev-wallet-secondary);
1048
- color: var(--dev-wallet-muted-foreground);
1049
- white-space: nowrap;
1050
- }
1051
-
1052
- .selector-row {
1053
- display: flex;
1054
- gap: 4px;
1055
- align-items: center;
1056
- }
1057
-
1058
- .selector-wrapper {
1059
- flex: 1;
1060
- min-width: 0;
1061
- --dropdown-max-height: 240px;
1062
- }
1063
-
1064
- .empty-state {
1065
- padding: 16px;
1066
- text-align: center;
1067
- font-size: 12px;
1068
- color: var(--dev-wallet-muted-foreground);
1069
- }
1070
- `];Br([H({attribute:!1})],Gn.prototype,"accounts",2);Br([H({attribute:!1})],Gn.prototype,"adapters",2);Br([H({type:String})],Gn.prototype,"activeAddress",2);Br([Y()],Gn.prototype,"_open",2);Gn=Br([Qe("dev-wallet-account-selector")],Gn);var OI=Object.defineProperty,NI=Object.getOwnPropertyDescriptor,cf=e=>{throw TypeError(e)},Ls=(e,t,n,s)=>{for(var r=s>1?void 0:s?NI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&OI(t,n,r),r},Nc=(e,t,n)=>t.has(e)||cf("Cannot "+n),Bn=(e,t,n)=>(Nc(e,t,"read from private field"),t.get(e)),Jr=(e,t,n)=>t.has(e)?cf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),xo=(e,t,n,s)=>(Nc(e,t,"write to private field"),t.set(e,n),n),fu=(e,t,n)=>(Nc(e,t,"access private method"),n),RI=(e,t,n,s)=>({set _(r){xo(e,t,r)},get _(){return Bn(e,t)}}),Li,Vi,Cn,fi,Oo;let _n=class extends Ue{constructor(){super(...arguments),Jr(this,fi),this.address="",this.client=null,this._balances=[],this._loading=!1,this._error=null,Jr(this,Li,""),Jr(this,Vi,null),Jr(this,Cn,0)}refresh(){this.address&&this.client&&fu(this,fi,Oo).call(this)}willUpdate(e){(e.has("address")||e.has("client"))&&this.address&&this.client&&(this.address!==Bn(this,Li)||this.client!==Bn(this,Vi))&&fu(this,fi,Oo).call(this)}render(){return!this.address||!this.client?M:y`
1071
- <h3 class="section-header">Balances</h3>
1072
- ${this._loading?y`<div class="loading" part="loading" aria-live="polite">Loading...</div>`:this._error?y`<div class="error-state" part="error-message" aria-live="polite">
1073
- ${this._error}
1074
- </div>`:this._balances.length===0?y`<div class="empty-state" part="empty-state">No balances</div>`:y`
1075
- <div class="balance-list" part="balance-list">
1076
- ${this._balances.map(e=>y`
1077
- <div class="balance-item">
1078
- <span class="balance-symbol">${e.symbol}</span>
1079
- <span class="balance-amount"
1080
- >${Nh(e.totalBalance,e.decimals)}</span
1081
- >
1082
- </div>
1083
- `)}
1084
- </div>
1085
- `}
1086
- `}};Li=new WeakMap;Vi=new WeakMap;Cn=new WeakMap;fi=new WeakSet;Oo=async function(){xo(this,Li,this.address),xo(this,Vi,this.client);const e=++RI(this,Cn)._;this._loading=!0,this._error=null;try{const{balances:t}=await this.client.core.listBalances({owner:this.address});if(e!==Bn(this,Cn))return;const n=await Promise.all(t.map(s=>this.client.core.getCoinMetadata({coinType:s.coinType}).catch(()=>null)));if(e!==Bn(this,Cn))return;this._balances=t.map((s,r)=>({coinType:s.coinType,symbol:n[r]?.coinMetadata?.symbol??Ah(s.coinType),totalBalance:s.balance,decimals:n[r]?.coinMetadata?.decimals??0}))}catch{if(e!==Bn(this,Cn))return;this._error="Failed to load balances",this._balances=[]}finally{e===Bn(this,Cn)&&(this._loading=!1)}};_n.styles=[et,oa,kc,Te`
1087
- :host {
1088
- display: block;
1089
- }
1090
-
1091
- .balance-list {
1092
- display: flex;
1093
- flex-direction: column;
1094
- gap: 4px;
1095
- }
1096
-
1097
- .balance-item {
1098
- display: flex;
1099
- justify-content: space-between;
1100
- align-items: center;
1101
- padding: 10px 12px;
1102
- border-radius: var(--dev-wallet-radius-sm);
1103
- border: 1px solid var(--dev-wallet-border);
1104
- background: var(--dev-wallet-secondary);
1105
- }
1106
-
1107
- .balance-symbol {
1108
- font-size: 14px;
1109
- font-weight: var(--dev-wallet-font-weight-medium);
1110
- color: var(--dev-wallet-foreground);
1111
- }
1112
-
1113
- .balance-amount {
1114
- font-size: 14px;
1115
- color: var(--dev-wallet-foreground);
1116
- font-family: var(--dev-wallet-font-mono);
1117
- }
1118
- `];Ls([H({type:String})],_n.prototype,"address",2);Ls([H({attribute:!1})],_n.prototype,"client",2);Ls([Y()],_n.prototype,"_balances",2);Ls([Y()],_n.prototype,"_loading",2);Ls([Y()],_n.prototype,"_error",2);_n=Ls([Qe("dev-wallet-balances")],_n);var CI=Object.defineProperty,UI=Object.getOwnPropertyDescriptor,lf=e=>{throw TypeError(e)},ua=(e,t,n,s)=>{for(var r=s>1?void 0:s?UI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&CI(t,n,r),r},$I=(e,t,n)=>t.has(e)||lf("Cannot "+n),DI=(e,t,n)=>t.has(e)?lf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),MI=(e,t,n)=>($I(e,t,"access private method"),n),No,uf;let $s=class extends Ue{constructor(){super(...arguments),DI(this,No),this.active="",this.networks=[],this._open=!1}render(){const e=Ys[this.active]??Ys.localnet;return y`
1119
- <dev-wallet-dropdown .open=${this._open} @close=${()=>this._open=!1}>
1120
- <button
1121
- slot="trigger"
1122
- class="badge"
1123
- part="trigger"
1124
- aria-expanded=${this._open}
1125
- aria-haspopup="listbox"
1126
- @click=${()=>this._open=!this._open}
1127
- >
1128
- <span class="dot" style="background: ${e}"></span>
1129
- ${this.active}
1130
- <svg
1131
- class="chevron"
1132
- viewBox="0 0 24 24"
1133
- fill="none"
1134
- stroke="currentColor"
1135
- stroke-width="2.5"
1136
- >
1137
- <path d="M6 9l6 6 6-6" />
1138
- </svg>
1139
- </button>
1140
- <div slot="popover">
1141
- ${this.networks.map(t=>{const n=Ys[t]??Ys.localnet;return y`
1142
- <button
1143
- class="dropdown-item"
1144
- aria-selected=${t===this.active}
1145
- @click=${()=>MI(this,No,uf).call(this,t)}
1146
- >
1147
- <span class="dot" style="background: ${n}"></span>
1148
- ${t}
1149
- </button>
1150
- `})}
1151
- </div>
1152
- </dev-wallet-dropdown>
1153
- `}};No=new WeakSet;uf=function(e){this._open=!1,e!==this.active&&this.dispatchEvent(new CustomEvent("network-changed",{bubbles:!0,composed:!0,detail:{network:e}}))};$s.styles=[et,Ih,Te`
1154
- :host {
1155
- display: inline-block;
1156
- }
1157
-
1158
- .badge {
1159
- display: flex;
1160
- align-items: center;
1161
- gap: 4px;
1162
- padding: 3px 8px;
1163
- border-radius: 999px;
1164
- font-size: 11px;
1165
- font-weight: var(--dev-wallet-font-weight-medium);
1166
- color: var(--dev-wallet-foreground);
1167
- background: var(--dev-wallet-secondary);
1168
- cursor: pointer;
1169
- transition: background 0.15s;
1170
- }
1171
-
1172
- .badge:hover {
1173
- background: var(--dev-wallet-border);
1174
- }
1175
-
1176
- .dot {
1177
- width: 6px;
1178
- height: 6px;
1179
- border-radius: 50%;
1180
- }
1181
-
1182
- .chevron {
1183
- width: 10px;
1184
- height: 10px;
1185
- color: var(--dev-wallet-muted-foreground);
1186
- }
1187
-
1188
- .dropdown-item {
1189
- padding: 8px 12px;
1190
- }
1191
- `];ua([H({type:String})],$s.prototype,"active",2);ua([H({attribute:!1})],$s.prototype,"networks",2);ua([Y()],$s.prototype,"_open",2);$s=ua([Qe("dev-wallet-network-badge")],$s);var BI=Object.defineProperty,jI=Object.getOwnPropertyDescriptor,df=e=>{throw TypeError(e)},En=(e,t,n,s)=>{for(var r=s>1?void 0:s?jI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&BI(t,n,r),r},Rc=(e,t,n)=>t.has(e)||df("Cannot "+n),yt=(e,t,n)=>(Rc(e,t,"read from private field"),t.get(e)),rs=(e,t,n)=>t.has(e)?df("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),er=(e,t,n,s)=>(Rc(e,t,"write to private field"),t.set(e,n),n),Ro=(e,t,n)=>(Rc(e,t,"access private method"),n),PI=(e,t,n,s)=>({set _(r){er(e,t,r)},get _(){return yt(e,t)}}),fs,lr,Fi,Wi,bs,ur,Cc,pf;let jt=class extends Ue{constructor(){super(...arguments),rs(this,ur),this.address="",this.client=null,this._objects=[],this._loading=!1,this._loadingMore=!1,this._error=null,this._hasNextPage=!1,rs(this,fs,new ca(this)),rs(this,lr,null),rs(this,Fi,""),rs(this,Wi,null),rs(this,bs,0)}willUpdate(e){(e.has("address")||e.has("client"))&&this.address&&this.client&&(this.address!==yt(this,Fi)||this.client!==yt(this,Wi))&&Ro(this,ur,Cc).call(this,!1)}render(){return!this.address||!this.client?M:y`
1192
- <h3 class="section-header">Objects</h3>
1193
- ${this._loading?y`<div class="loading" part="loading" aria-live="polite">Loading...</div>`:this._error?y`<div class="error-state" part="error-message" aria-live="polite">
1194
- ${this._error}
1195
- </div>`:this._objects.length===0?y`<div class="empty-state" part="empty-state">No objects found</div>`:y`
1196
- <div class="object-list" part="object-list">
1197
- ${this._objects.map(e=>y`
1198
- <div class="object-item">
1199
- ${e.imageUrl&&/^https?:\/\//i.test(e.imageUrl)?y`<img
1200
- class="object-thumb"
1201
- src=${e.imageUrl}
1202
- alt=${e.displayName??e.typeName}
1203
- @error=${t=>t.target.style.display="none"}
1204
- />`:M}
1205
- <div class="object-body">
1206
- <div class="object-top">
1207
- <span class="object-type"> ${e.displayName??e.typeName} </span>
1208
- <span class="object-version">v${e.version}</span>
1209
- </div>
1210
- ${e.displayName?y`<span class="object-type-badge">${e.typeName}</span>`:M}
1211
- ${e.description?y`<span class="object-description">${e.description}</span>`:M}
1212
- <span
1213
- class="object-id ${yt(this,fs).isCopied(e.objectId)?"copied":""}"
1214
- title="Click to copy"
1215
- role="button"
1216
- tabindex="0"
1217
- aria-label="Copy object ID"
1218
- @click=${()=>yt(this,fs).copy(e.objectId)}
1219
- @keydown=${t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),yt(this,fs).copy(e.objectId))}}
1220
- >
1221
- ${yt(this,fs).isCopied(e.objectId)?"Copied!":`${e.objectId.slice(0,10)}...${e.objectId.slice(-8)}`}
1222
- </span>
1223
- </div>
1224
- </div>
1225
- `)}
1226
- </div>
1227
- ${this._hasNextPage?y`
1228
- <button
1229
- class="load-more"
1230
- part="load-more-button"
1231
- ?disabled=${this._loadingMore}
1232
- @click=${Ro(this,ur,pf)}
1233
- >
1234
- ${this._loadingMore?"Loading...":"Load More"}
1235
- </button>
1236
- `:M}
1237
- `}
1238
- `}};fs=new WeakMap;lr=new WeakMap;Fi=new WeakMap;Wi=new WeakMap;bs=new WeakMap;ur=new WeakSet;Cc=async function(e){er(this,Fi,this.address),er(this,Wi,this.client),e||(er(this,lr,null),this._objects=[]);const t=++PI(this,bs)._;e?this._loadingMore=!0:this._loading=!0,this._error=null;try{const n=await this.client.core.listOwnedObjects({owner:this.address,limit:20,cursor:yt(this,lr),include:{json:!0}});if(t!==yt(this,bs))return;const s=n.objects.filter(r=>!tI(r.type)).map(r=>{const i=r.json;return{objectId:r.objectId,type:r.type,typeName:nI(r.type),version:r.version,displayName:Zr(i,"name"),description:Zr(i,"description"),imageUrl:Zr(i,"image_url")??Zr(i,"img_url")}});this._objects=e?[...this._objects,...s]:s,this._hasNextPage=n.hasNextPage,er(this,lr,n.cursor)}catch{if(t!==yt(this,bs))return;this._error="Failed to load objects",e||(this._objects=[])}finally{t===yt(this,bs)&&(this._loading=!1,this._loadingMore=!1)}};pf=function(){Ro(this,ur,Cc).call(this,!0)};jt.styles=[et,oa,kc,Te`
1239
- :host {
1240
- display: block;
1241
- }
1242
-
1243
- .object-list {
1244
- display: flex;
1245
- flex-direction: column;
1246
- gap: 4px;
1247
- }
1248
-
1249
- .object-item {
1250
- display: flex;
1251
- gap: 10px;
1252
- padding: 10px 12px;
1253
- border-radius: var(--dev-wallet-radius-sm);
1254
- border: 1px solid var(--dev-wallet-border);
1255
- background: var(--dev-wallet-secondary);
1256
- align-items: flex-start;
1257
- }
1258
-
1259
- .object-thumb {
1260
- width: 40px;
1261
- height: 40px;
1262
- border-radius: var(--dev-wallet-radius-xs);
1263
- object-fit: cover;
1264
- flex-shrink: 0;
1265
- }
1266
-
1267
- .object-body {
1268
- display: flex;
1269
- flex-direction: column;
1270
- gap: 2px;
1271
- flex: 1;
1272
- min-width: 0;
1273
- }
1274
-
1275
- .object-top {
1276
- display: flex;
1277
- justify-content: space-between;
1278
- align-items: center;
1279
- }
1280
-
1281
- .object-type {
1282
- font-size: 13px;
1283
- font-weight: var(--dev-wallet-font-weight-medium);
1284
- color: var(--dev-wallet-foreground);
1285
- white-space: nowrap;
1286
- overflow: hidden;
1287
- text-overflow: ellipsis;
1288
- }
1289
-
1290
- .object-type-badge {
1291
- font-size: 10px;
1292
- color: var(--dev-wallet-muted-foreground);
1293
- opacity: 0.8;
1294
- }
1295
-
1296
- .object-description {
1297
- font-size: 11px;
1298
- color: var(--dev-wallet-muted-foreground);
1299
- overflow: hidden;
1300
- text-overflow: ellipsis;
1301
- white-space: nowrap;
1302
- }
1303
-
1304
- .object-version {
1305
- font-size: 11px;
1306
- color: var(--dev-wallet-muted-foreground);
1307
- flex-shrink: 0;
1308
- }
1309
-
1310
- .object-id {
1311
- font-size: 11px;
1312
- font-family: var(--dev-wallet-font-mono);
1313
- color: var(--dev-wallet-muted-foreground);
1314
- cursor: pointer;
1315
- border-radius: var(--dev-wallet-radius-2xs);
1316
- padding: 1px 2px;
1317
- margin: -1px -2px;
1318
- transition: background 0.15s;
1319
- }
1320
-
1321
- .object-id:hover {
1322
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
1323
- }
1324
-
1325
- .object-id.copied {
1326
- color: var(--dev-wallet-positive);
1327
- }
1328
-
1329
- .load-more {
1330
- margin-top: 8px;
1331
- width: 100%;
1332
- padding: 8px;
1333
- border-radius: var(--dev-wallet-radius-sm);
1334
- font-size: 12px;
1335
- font-weight: var(--dev-wallet-font-weight-medium);
1336
- color: var(--dev-wallet-primary);
1337
- background: transparent;
1338
- border: 1px solid var(--dev-wallet-border);
1339
- transition: background 0.15s;
1340
- }
1341
-
1342
- .load-more:hover {
1343
- background: var(--dev-wallet-secondary);
1344
- }
1345
-
1346
- .load-more:disabled {
1347
- opacity: 0.5;
1348
- cursor: default;
1349
- }
1350
- `];En([H({type:String})],jt.prototype,"address",2);En([H({attribute:!1})],jt.prototype,"client",2);En([Y()],jt.prototype,"_objects",2);En([Y()],jt.prototype,"_loading",2);En([Y()],jt.prototype,"_loadingMore",2);En([Y()],jt.prototype,"_error",2);En([Y()],jt.prototype,"_hasNextPage",2);jt=En([Qe("dev-wallet-objects")],jt);function Zr(e,t){if(!e)return null;const n=e[t];return typeof n=="string"&&n.length>0?n:null}var LI=Object.defineProperty,VI=Object.getOwnPropertyDescriptor,hf=e=>{throw TypeError(e)},mt=(e,t,n,s)=>{for(var r=s>1?void 0:s?VI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&LI(t,n,r),r},ff=(e,t,n)=>t.has(e)||hf("Cannot "+n),Kt=(e,t,n)=>(ff(e,t,"read from private field"),n?n.call(e):t.get(e)),FI=(e,t,n)=>t.has(e)?hf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ae=(e,t,n)=>(ff(e,t,"access private method"),n),ae,Ir,Ar,mf,gf,vf,bf,wf,yf,Tf,dr,Uc,kf,_f,Vs;let Xe=class extends Ue{constructor(){super(...arguments),FI(this,ae),this.adapters=[],this.open=!1,this._mode="create",this._label="",this._selectedAdapterId="",this._creating=!1,this._error=null,this._availableAccounts=[],this._loadingImports=!1,this._dropdownOpen=!1,this._selectedImports=new Set}updated(e){if(e.has("open")){const t=this.shadowRoot?.querySelector("dialog");if(this.open&&t&&!t.open){const n=Kt(this,ae,Ir).length>0,s=Kt(this,ae,Ar).length>0;s&&!n?this._mode="import":this._mode="create",s&&Ae(this,ae,wf).call(this),t.showModal()}else!this.open&&t?.open&&t.close()}}render(){const e=Kt(this,ae,Ir).length>0,t=Kt(this,ae,Ar).length>0,n=e&&t;return y`
1351
- <dialog part="dialog" @cancel=${Ae(this,ae,gf)}>
1352
- <div class="dialog-title">Add Account</div>
1353
- ${n?y`
1354
- <div class="tabs">
1355
- <button
1356
- class="tab ${this._mode==="create"?"active":""}"
1357
- @click=${()=>this._mode="create"}
1358
- >
1359
- Create
1360
- </button>
1361
- <button
1362
- class="tab ${this._mode==="import"?"active":""}"
1363
- @click=${()=>this._mode="import"}
1364
- >
1365
- Import
1366
- </button>
1367
- </div>
1368
- `:M}
1369
- ${this._mode==="create"?Ae(this,ae,vf).call(this):Ae(this,ae,bf).call(this)}
1370
- ${this._error?y`<div class="error" part="error-message">${this._error}</div>`:M}
1371
- </dialog>
1372
- `}};ae=new WeakSet;Ir=function(){return this.adapters.filter(e=>"createAccount"in e&&e.createAccount)};Ar=function(){return this.adapters.filter(e=>"importAccount"in e&&e.importAccount&&"listAvailableAccounts"in e&&e.listAvailableAccounts&&(!xh(e)||e.isPaired))};mf=function(){return this.adapters.some(e=>"importAccount"in e&&e.importAccount&&"listAvailableAccounts"in e&&e.listAvailableAccounts&&xh(e)&&!e.isPaired)};gf=function(e){e.preventDefault(),this._creating||Ae(this,ae,Vs).call(this)};vf=function(){const e=Kt(this,ae,Ir),t=e.length>1,n=e.find(s=>s.id===this._selectedAdapterId)??e[0];return y`
1373
- ${t?y`
1374
- <div class="field">
1375
- <label class="field-label">Type</label>
1376
- <dev-wallet-dropdown
1377
- full-width
1378
- .open=${this._dropdownOpen}
1379
- @close=${()=>this._dropdownOpen=!1}
1380
- >
1381
- <button
1382
- slot="trigger"
1383
- class="select-trigger ${this._dropdownOpen?"open":""}"
1384
- @click=${()=>this._dropdownOpen=!this._dropdownOpen}
1385
- >
1386
- <span>${n?.name??"Select..."}</span>
1387
- <span class="chevron">▼</span>
1388
- </button>
1389
- <div slot="popover">
1390
- ${e.map(s=>y`
1391
- <button
1392
- class="select-option ${s.id===(n?.id??"")?"selected":""}"
1393
- @click=${()=>{this._selectedAdapterId=s.id,this._dropdownOpen=!1,this._error=null}}
1394
- >
1395
- ${s.name}
1396
- </button>
1397
- `)}
1398
- </div>
1399
- </dev-wallet-dropdown>
1400
- </div>
1401
- `:M}
1402
- <div class="field">
1403
- <label class="field-label">Label</label>
1404
- <input
1405
- class="field-input"
1406
- part="label-input"
1407
- type="text"
1408
- placeholder="e.g. Test Account"
1409
- .value=${this._label}
1410
- @input=${Ae(this,ae,yf)}
1411
- @keydown=${Ae(this,ae,Tf)}
1412
- />
1413
- </div>
1414
- <div class="actions">
1415
- <button class="btn btn-cancel" part="cancel-button" @click=${Ae(this,ae,dr)}>
1416
- Cancel
1417
- </button>
1418
- <button
1419
- class="btn btn-create"
1420
- part="create-button"
1421
- ?disabled=${this._creating}
1422
- @click=${Ae(this,ae,Uc)}
1423
- >
1424
- ${this._creating?"Creating...":"Create"}
1425
- </button>
1426
- </div>
1427
- `};bf=function(){return this._loadingImports?y`<div class="loading">Loading accounts...</div>
1428
- <div class="actions">
1429
- <button class="btn btn-cancel" part="cancel-button" @click=${Ae(this,ae,dr)}>
1430
- Cancel
1431
- </button>
1432
- </div>`:this._availableAccounts.length===0?y`<div class="empty-state">
1433
- ${Kt(this,ae,mf)?"Open the token URL from your terminal to connect CLI accounts.":"No accounts available to import"}
1434
- </div>
1435
- <div class="actions">
1436
- <button class="btn btn-cancel" part="cancel-button" @click=${Ae(this,ae,dr)}>
1437
- Cancel
1438
- </button>
1439
- </div>`:y`
1440
- <div class="import-list">
1441
- ${this._availableAccounts.map(e=>{const t=this._selectedImports.has(e.address);return y`
1442
- <button
1443
- class="import-item ${t?"selected":""}"
1444
- role="checkbox"
1445
- aria-checked="${t}"
1446
- ?disabled=${this._creating}
1447
- @click=${()=>Ae(this,ae,kf).call(this,e.address)}
1448
- >
1449
- <span class="import-checkbox ${t?"checked":""}"
1450
- >${t?"✓":""}</span
1451
- >
1452
- <div class="import-item-info">
1453
- <div class="import-item-label">
1454
- ${e.alias||pt(e.address)}
1455
- </div>
1456
- <div class="import-item-address">${pt(e.address)}</div>
1457
- </div>
1458
- <span class="import-item-badge">${e.scheme}</span>
1459
- </button>
1460
- `})}
1461
- </div>
1462
- <div class="actions">
1463
- <button class="btn btn-cancel" part="cancel-button" @click=${Ae(this,ae,dr)}>
1464
- Cancel
1465
- </button>
1466
- <button
1467
- class="btn btn-create"
1468
- part="create-button"
1469
- ?disabled=${this._creating||this._selectedImports.size===0}
1470
- @click=${Ae(this,ae,_f)}
1471
- >
1472
- ${this._creating?"Importing...":`Import${this._selectedImports.size>0?` (${this._selectedImports.size})`:""}`}
1473
- </button>
1474
- </div>
1475
- `};wf=async function(){this._loadingImports=!0,this._availableAccounts=[];try{const e=[];for(const t of Kt(this,ae,Ar)){const n=await t.listAvailableAccounts();for(const s of n)e.push({adapterId:t.id,adapterName:t.name,address:s.address,scheme:s.scheme,alias:"alias"in s?s.alias:null})}this._availableAccounts=e}catch(e){this._error=Dr(e,"Failed to load accounts")}finally{this._loadingImports=!1}};yf=function(e){this._label=e.target.value,this._error=null};Tf=function(e){e.key==="Enter"&&!this._creating?Ae(this,ae,Uc).call(this):e.key==="Escape"&&Ae(this,ae,Vs).call(this)};dr=function(){Ae(this,ae,Vs).call(this)};Uc=async function(){const e=Kt(this,ae,Ir);if(e.length===0)return;const t=e.find(n=>n.id===this._selectedAdapterId)??e[0];if(t?.createAccount){this._creating=!0,this._error=null;try{const n={};this._label.trim()&&(n.label=this._label.trim()),await t.createAccount(n),Ae(this,ae,Vs).call(this),Ge(this,"account-created")}catch(n){this._error=Dr(n,"Failed to create account")}finally{this._creating=!1}}};kf=function(e){this._selectedImports=Oh(this._selectedImports,e)};_f=async function(){const e=this._availableAccounts.filter(t=>this._selectedImports.has(t.address));if(e.length!==0){this._creating=!0,this._error=null;try{for(const t of e){const n=Kt(this,ae,Ar).find(s=>s.id===t.adapterId);n?.importAccount&&await n.importAccount({address:t.address})}Ae(this,ae,Vs).call(this),Ge(this,"account-created")}catch(t){this._error=Dr(t,"Failed to import account")}finally{this._creating=!1}}};Vs=function(){this._label="",this._selectedAdapterId="",this._error=null,this._availableAccounts=[],this._selectedImports=new Set,this._mode="create",this._dropdownOpen=!1,Ge(this,"close")};Xe.styles=[et,aa,kc,Te`
1476
- :host {
1477
- display: block;
1478
- }
1479
-
1480
- dialog:not([open]) {
1481
- display: none;
1482
- }
1483
-
1484
- dialog {
1485
- width: 320px;
1486
- max-width: calc(100vw - 32px);
1487
- max-height: min(420px, 80vh);
1488
- border-radius: var(--dev-wallet-radius-xl);
1489
- background: var(--dev-wallet-background);
1490
- border: 1px solid var(--dev-wallet-border);
1491
- box-shadow: var(--dev-wallet-shadow-lg);
1492
- padding: 20px;
1493
- display: flex;
1494
- flex-direction: column;
1495
- color: inherit;
1496
- }
1497
-
1498
- dialog::backdrop {
1499
- background: color-mix(in oklab, oklch(0 0 0) 50%, transparent);
1500
- }
1501
-
1502
- .dialog-title {
1503
- font-size: 16px;
1504
- font-weight: var(--dev-wallet-font-weight-semibold);
1505
- color: var(--dev-wallet-foreground);
1506
- margin-bottom: 16px;
1507
- }
1508
-
1509
- .tabs {
1510
- display: flex;
1511
- gap: 4px;
1512
- margin-bottom: 16px;
1513
- background: var(--dev-wallet-secondary);
1514
- border-radius: var(--dev-wallet-radius-sm);
1515
- padding: 3px;
1516
- }
1517
-
1518
- .tab {
1519
- flex: 1;
1520
- padding: 6px 12px;
1521
- border-radius: var(--dev-wallet-radius-xs);
1522
- font-size: 12px;
1523
- font-weight: var(--dev-wallet-font-weight-medium);
1524
- color: var(--dev-wallet-muted-foreground);
1525
- text-align: center;
1526
- transition: all 0.15s;
1527
- }
1528
-
1529
- .tab.active {
1530
- background: var(--dev-wallet-background);
1531
- color: var(--dev-wallet-foreground);
1532
- box-shadow: var(--dev-wallet-shadow-sm);
1533
- }
1534
-
1535
- .tab:not(.active):hover {
1536
- color: var(--dev-wallet-foreground);
1537
- }
1538
-
1539
- .field {
1540
- margin-bottom: 12px;
1541
- }
1542
-
1543
- .field-label {
1544
- display: block;
1545
- font-size: 12px;
1546
- font-weight: var(--dev-wallet-font-weight-medium);
1547
- color: var(--dev-wallet-muted-foreground);
1548
- margin-bottom: 4px;
1549
- }
1550
-
1551
- .field-input {
1552
- width: 100%;
1553
- padding: 8px 10px;
1554
- border-radius: var(--dev-wallet-radius-sm);
1555
- border: 1px solid var(--dev-wallet-input);
1556
- background: var(--dev-wallet-secondary);
1557
- color: var(--dev-wallet-foreground);
1558
- font-size: 14px;
1559
- font-family: inherit;
1560
- outline: none;
1561
- box-sizing: border-box;
1562
- }
1563
-
1564
- .field-input:focus {
1565
- border-color: var(--dev-wallet-primary);
1566
- outline: 2px solid color-mix(in oklab, var(--dev-wallet-ring) 50%, transparent);
1567
- outline-offset: -1px;
1568
- }
1569
-
1570
- .select-trigger {
1571
- width: 100%;
1572
- padding: 8px 10px;
1573
- border-radius: var(--dev-wallet-radius-sm);
1574
- border: 1px solid var(--dev-wallet-input);
1575
- background: var(--dev-wallet-secondary);
1576
- color: var(--dev-wallet-foreground);
1577
- font-size: 14px;
1578
- font-family: inherit;
1579
- box-sizing: border-box;
1580
- display: flex;
1581
- align-items: center;
1582
- justify-content: space-between;
1583
- cursor: pointer;
1584
- text-align: left;
1585
- }
1586
-
1587
- .select-trigger:hover {
1588
- border-color: var(--dev-wallet-primary);
1589
- }
1590
-
1591
- .select-trigger .chevron {
1592
- font-size: 10px;
1593
- color: var(--dev-wallet-muted-foreground);
1594
- transition: transform 0.15s;
1595
- }
1596
-
1597
- .select-trigger.open .chevron {
1598
- transform: rotate(180deg);
1599
- }
1600
-
1601
- .select-option {
1602
- width: 100%;
1603
- padding: 8px 10px;
1604
- font-size: 14px;
1605
- font-family: inherit;
1606
- color: var(--dev-wallet-foreground);
1607
- background: transparent;
1608
- text-align: left;
1609
- cursor: pointer;
1610
- transition: background 0.1s;
1611
- }
1612
-
1613
- .select-option:hover {
1614
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
1615
- }
1616
-
1617
- .select-option.selected {
1618
- color: var(--dev-wallet-primary);
1619
- font-weight: var(--dev-wallet-font-weight-medium);
1620
- }
1621
-
1622
- .import-list {
1623
- display: flex;
1624
- flex-direction: column;
1625
- gap: 4px;
1626
- overflow-y: auto;
1627
- max-height: 240px;
1628
- min-height: 60px;
1629
- }
1630
-
1631
- .import-item {
1632
- display: flex;
1633
- align-items: center;
1634
- gap: 10px;
1635
- padding: 8px 10px;
1636
- border-radius: var(--dev-wallet-radius-sm);
1637
- border: 1px solid var(--dev-wallet-border);
1638
- background: var(--dev-wallet-secondary);
1639
- width: 100%;
1640
- text-align: left;
1641
- transition: border-color 0.15s;
1642
- }
1643
-
1644
- .import-item:hover {
1645
- border-color: var(--dev-wallet-primary);
1646
- }
1647
-
1648
- .import-item.selected {
1649
- border-color: var(--dev-wallet-primary);
1650
- background: color-mix(in oklab, var(--dev-wallet-primary) 10%, var(--dev-wallet-secondary));
1651
- }
1652
-
1653
- .import-item:disabled {
1654
- opacity: 0.5;
1655
- cursor: not-allowed;
1656
- }
1657
-
1658
- .import-checkbox {
1659
- width: 16px;
1660
- height: 16px;
1661
- border-radius: var(--dev-wallet-radius-2xs);
1662
- border: 2px solid var(--dev-wallet-border);
1663
- flex-shrink: 0;
1664
- display: flex;
1665
- align-items: center;
1666
- justify-content: center;
1667
- font-size: 10px;
1668
- color: var(--dev-wallet-primary-foreground);
1669
- transition: all 0.15s;
1670
- }
1671
-
1672
- .import-checkbox.checked {
1673
- background: var(--dev-wallet-primary);
1674
- border-color: var(--dev-wallet-primary);
1675
- }
1676
-
1677
- .import-item-info {
1678
- flex: 1;
1679
- min-width: 0;
1680
- }
1681
-
1682
- .import-item-label {
1683
- font-size: 13px;
1684
- font-weight: var(--dev-wallet-font-weight-medium);
1685
- color: var(--dev-wallet-foreground);
1686
- }
1687
-
1688
- .import-item-address {
1689
- font-size: 11px;
1690
- color: var(--dev-wallet-muted-foreground);
1691
- font-family: var(--dev-wallet-font-mono);
1692
- overflow: hidden;
1693
- text-overflow: ellipsis;
1694
- white-space: nowrap;
1695
- }
1696
-
1697
- .import-item-badge {
1698
- font-size: 10px;
1699
- padding: 1px 6px;
1700
- border-radius: var(--dev-wallet-radius-xs);
1701
- background: var(--dev-wallet-background);
1702
- border: 1px solid var(--dev-wallet-border);
1703
- color: var(--dev-wallet-muted-foreground);
1704
- font-weight: var(--dev-wallet-font-weight-medium);
1705
- text-transform: uppercase;
1706
- letter-spacing: 0.3px;
1707
- white-space: nowrap;
1708
- flex-shrink: 0;
1709
- }
1710
-
1711
- .empty-state,
1712
- .loading {
1713
- padding: 20px;
1714
- }
1715
-
1716
- .actions {
1717
- margin-top: 16px;
1718
- }
1719
-
1720
- .error {
1721
- color: var(--dev-wallet-destructive);
1722
- font-size: 12px;
1723
- margin-top: 8px;
1724
- }
1725
- `];mt([H({attribute:!1})],Xe.prototype,"adapters",2);mt([H({type:Boolean})],Xe.prototype,"open",2);mt([Y()],Xe.prototype,"_mode",2);mt([Y()],Xe.prototype,"_label",2);mt([Y()],Xe.prototype,"_selectedAdapterId",2);mt([Y()],Xe.prototype,"_creating",2);mt([Y()],Xe.prototype,"_error",2);mt([Y()],Xe.prototype,"_availableAccounts",2);mt([Y()],Xe.prototype,"_loadingImports",2);mt([Y()],Xe.prototype,"_dropdownOpen",2);mt([Y()],Xe.prototype,"_selectedImports",2);Xe=mt([Qe("dev-wallet-new-account")],Xe);var WI=Object.defineProperty,GI=Object.getOwnPropertyDescriptor,Ef=e=>{throw TypeError(e)},Lt=(e,t,n,s)=>{for(var r=s>1?void 0:s?GI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&WI(t,n,r),r},Sf=(e,t,n)=>t.has(e)||Ef("Cannot "+n),Yr=(e,t,n)=>(Sf(e,t,"read from private field"),n?n.call(e):t.get(e)),mu=(e,t,n)=>t.has(e)?Ef("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),_e=(e,t,n)=>(Sf(e,t,"access private method"),n),ms,be,da,If,Af,xf,Of,Nf,$c,Rf,Cf,Uf,Gi,$f,Df,Mf,Bf;let ht=class extends Ue{constructor(){super(...arguments),mu(this,be),this.accounts=[],this.adapters=[],this.activeAddress="",this._dialogOpen=!1,mu(this,ms,new ca(this)),this._editingAddress=null,this._editingLabel="",this._confirmDeleteAddress=null,this._deleting=!1,this._deleteError=null}render(){const e=this.adapters.some(t=>"createAccount"in t&&t.createAccount||"importAccount"in t&&t.importAccount&&"listAvailableAccounts"in t&&t.listAvailableAccounts);return y`
1726
- <div class="accounts-header">
1727
- <h3 class="section-header">Accounts</h3>
1728
- ${e?y`<button class="add-btn" part="add-button" @click=${_e(this,be,Mf)}>
1729
- + Add
1730
- </button>`:M}
1731
- </div>
1732
- ${this.accounts.length===0?y`<div class="empty-state" part="empty-state">No accounts yet</div>`:y`
1733
- <div
1734
- class="account-list"
1735
- part="account-list"
1736
- role="listbox"
1737
- aria-label="Wallet accounts"
1738
- >
1739
- ${this.accounts.map((t,n)=>y`
1740
- <button
1741
- class="account-item ${t.address===this.activeAddress?"active":""}"
1742
- role="option"
1743
- aria-selected=${t.address===this.activeAddress}
1744
- @click=${()=>_e(this,be,xf).call(this,t)}
1745
- >
1746
- <div class="account-avatar">${n+1}</div>
1747
- <div class="account-info">
1748
- ${this._editingAddress===t.address?y`<input
1749
- class="edit-label-input"
1750
- type="text"
1751
- aria-label="Rename account"
1752
- .value=${this._editingLabel}
1753
- @input=${s=>{this._editingLabel=s.target.value}}
1754
- @keydown=${s=>{s.stopPropagation(),s.key==="Enter"&&_e(this,be,Nf).call(this,t.address),s.key==="Escape"&&_e(this,be,$c).call(this)}}
1755
- @click=${s=>s.stopPropagation()}
1756
- />`:y`<div class="account-label-row">
1757
- <span class="account-label">
1758
- ${_e(this,be,da).call(this,t.address,n)}
1759
- </span>
1760
- <span class="account-badge"
1761
- >${_e(this,be,Af).call(this,t.address)}</span
1762
- >
1763
- ${_e(this,be,If).call(this,t.address)?y`<button
1764
- class="edit-label-btn"
1765
- title="Rename"
1766
- aria-label="Rename account"
1767
- @click=${s=>{s.stopPropagation(),_e(this,be,Of).call(this,t.address,n)}}
1768
- >
1769
- &#9998;
1770
- </button>`:M}
1771
- </div>`}
1772
- <div
1773
- class="account-address ${Yr(this,ms).isCopied(t.address)?"copied":""}"
1774
- title="Click to copy"
1775
- role="button"
1776
- tabindex="0"
1777
- aria-label="Copy address"
1778
- @click=${s=>{s.stopPropagation(),Yr(this,ms).copy(t.address)}}
1779
- @keydown=${s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),s.stopPropagation(),Yr(this,ms).copy(t.address))}}
1780
- >
1781
- ${Yr(this,ms).isCopied(t.address)?"Copied!":pt(t.address)}
1782
- </div>
1783
- </div>
1784
- ${_e(this,be,Rf).call(this,t.address)?y`<button
1785
- class="delete-btn"
1786
- title="Remove account"
1787
- aria-label="Remove account"
1788
- @click=${s=>{s.stopPropagation(),_e(this,be,Uf).call(this,t.address)}}
1789
- >
1790
- &#128465;
1791
- </button>`:M}
1792
- </button>
1793
- `)}
1794
- </div>
1795
- `}
1796
- ${_e(this,be,Df).call(this)}
1797
- <dev-wallet-new-account
1798
- .adapters=${this.adapters}
1799
- .open=${this._dialogOpen}
1800
- @close=${_e(this,be,Bf)}
1801
- ></dev-wallet-new-account>
1802
- `}};ms=new WeakMap;be=new WeakSet;da=function(e,t){const n=Jn(this.adapters,e);return n?n.getAccount(e)?.label??`Account ${t+1}`:`Account ${t+1}`};If=function(e){const t=Jn(this.adapters,e);return!!(t&&t.renameAccount)};Af=function(e){return Jn(this.adapters,e)?.name??"Unknown"};xf=function(e){Ge(this,"account-selected",{account:e})};Of=function(e,t){this._editingAddress=e,this._editingLabel=_e(this,be,da).call(this,e,t)};Nf=async function(e){const t=this._editingLabel.trim();if(!t){_e(this,be,$c).call(this);return}try{for(const n of this.adapters)if(n.getAccount(e)&&n.renameAccount){await n.renameAccount(e,t);break}}catch(n){console.error("[dev-wallet] rename failed:",n)}this._editingAddress=null,this._editingLabel="",Ge(this,"account-renamed",{address:e,label:t})};$c=function(){this._editingAddress=null,this._editingLabel=""};Rf=function(e){const t=Jn(this.adapters,e);return!!(t&&t.removeAccount)};Cf=function(e){const t=Jn(this.adapters,e);return t?!("createAccount"in t&&t.createAccount):!1};Uf=function(e){this._confirmDeleteAddress=e,this._deleteError=null,this.updateComplete.then(()=>{const t=this.shadowRoot?.querySelector(".confirm-dialog");t&&!t.open&&t.showModal()})};Gi=function(){const e=this.shadowRoot?.querySelector(".confirm-dialog");e?.open&&e.close(),this._confirmDeleteAddress=null,this._deleting=!1,this._deleteError=null};$f=async function(){const e=this._confirmDeleteAddress;if(e){this._deleting=!0,this._deleteError=null;try{const t=Jn(this.adapters,e);if(!t?.removeAccount)throw new Error("Adapter does not support removal");if(!await t.removeAccount(e))throw new Error("Account not found");_e(this,be,Gi).call(this),Ge(this,"account-removed",{address:e})}catch(t){this._deleteError=Dr(t,"Failed to remove account"),this._deleting=!1}}};Df=function(){if(!this._confirmDeleteAddress)return M;const e=this._confirmDeleteAddress,t=this.accounts.findIndex(r=>r.address===e),n=t>=0?_e(this,be,da).call(this,e,t):"Unknown",s=_e(this,be,Cf).call(this,e);return y`
1803
- <dialog
1804
- class="confirm-dialog"
1805
- @cancel=${r=>{r.preventDefault(),_e(this,be,Gi).call(this)}}
1806
- >
1807
- <div class="confirm-title">Remove Account</div>
1808
- <div class="confirm-body">
1809
- ${s?"This will remove the imported account from your wallet. You can re-import it later.":"This will permanently delete this account and its keys. This cannot be undone."}
1810
- </div>
1811
- <div class="confirm-account">
1812
- <div class="confirm-account-label">${n}</div>
1813
- <div class="confirm-account-address">${pt(e)}</div>
1814
- </div>
1815
- ${this._deleteError?y`<div class="confirm-error">${this._deleteError}</div>`:M}
1816
- <div class="confirm-actions">
1817
- <button class="btn btn-cancel" ?disabled=${this._deleting} @click=${_e(this,be,Gi)}>
1818
- Cancel
1819
- </button>
1820
- <button class="btn btn-reject" ?disabled=${this._deleting} @click=${_e(this,be,$f)}>
1821
- ${this._deleting?"Removing...":"Remove"}
1822
- </button>
1823
- </div>
1824
- </dialog>
1825
- `};Mf=function(){this._dialogOpen=!0};Bf=function(){this._dialogOpen=!1};ht.styles=[et,oa,aa,Te`
1826
- :host {
1827
- display: block;
1828
- }
1829
-
1830
- .accounts-header {
1831
- display: flex;
1832
- justify-content: space-between;
1833
- align-items: center;
1834
- margin-bottom: 12px;
1835
- }
1836
-
1837
- .accounts-header .section-header {
1838
- margin-bottom: 0;
1839
- }
1840
-
1841
- .add-btn {
1842
- font-size: 12px;
1843
- color: var(--dev-wallet-primary);
1844
- padding: 4px 8px;
1845
- border-radius: var(--dev-wallet-radius-sm);
1846
- }
1847
-
1848
- .add-btn:hover {
1849
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
1850
- }
1851
-
1852
- .account-list {
1853
- display: flex;
1854
- flex-direction: column;
1855
- gap: 4px;
1856
- }
1857
-
1858
- .account-item {
1859
- display: flex;
1860
- align-items: center;
1861
- gap: 10px;
1862
- padding: 10px 12px;
1863
- border-radius: var(--dev-wallet-radius-sm);
1864
- border: 1px solid var(--dev-wallet-border);
1865
- background: var(--dev-wallet-secondary);
1866
- width: 100%;
1867
- text-align: left;
1868
- }
1869
-
1870
- .account-item:hover {
1871
- border-color: var(--dev-wallet-primary);
1872
- }
1873
-
1874
- .account-item.active {
1875
- border-color: var(--dev-wallet-primary);
1876
- background: color-mix(in oklab, var(--dev-wallet-primary) 10%, var(--dev-wallet-secondary));
1877
- }
1878
-
1879
- .account-avatar {
1880
- width: 32px;
1881
- height: 32px;
1882
- border-radius: 50%;
1883
- background: var(--dev-wallet-primary);
1884
- display: flex;
1885
- align-items: center;
1886
- justify-content: center;
1887
- font-size: 14px;
1888
- font-weight: var(--dev-wallet-font-weight-semibold);
1889
- color: var(--dev-wallet-primary-foreground);
1890
- flex-shrink: 0;
1891
- }
1892
-
1893
- .account-info {
1894
- flex: 1;
1895
- min-width: 0;
1896
- }
1897
-
1898
- .account-label {
1899
- font-size: 14px;
1900
- font-weight: var(--dev-wallet-font-weight-medium);
1901
- color: var(--dev-wallet-foreground);
1902
- }
1903
-
1904
- .account-address {
1905
- font-size: 12px;
1906
- color: var(--dev-wallet-muted-foreground);
1907
- font-family: var(--dev-wallet-font-mono);
1908
- overflow: hidden;
1909
- text-overflow: ellipsis;
1910
- white-space: nowrap;
1911
- cursor: pointer;
1912
- border-radius: var(--dev-wallet-radius-2xs);
1913
- padding: 1px 2px;
1914
- transition: background 0.15s;
1915
- }
1916
-
1917
- .account-address:hover {
1918
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
1919
- }
1920
-
1921
- .account-address.copied {
1922
- color: var(--dev-wallet-positive);
1923
- }
1924
-
1925
- .account-label-row {
1926
- display: flex;
1927
- align-items: center;
1928
- gap: 4px;
1929
- }
1930
-
1931
- .edit-label-btn {
1932
- width: 18px;
1933
- height: 18px;
1934
- display: inline-flex;
1935
- align-items: center;
1936
- justify-content: center;
1937
- border-radius: var(--dev-wallet-radius-2xs);
1938
- font-size: 11px;
1939
- color: var(--dev-wallet-muted-foreground);
1940
- opacity: 0;
1941
- transition: opacity 0.15s;
1942
- }
1943
-
1944
- .account-item:hover .edit-label-btn {
1945
- opacity: 1;
1946
- }
1947
-
1948
- .edit-label-btn:hover {
1949
- background: var(--dev-wallet-border);
1950
- color: var(--dev-wallet-foreground);
1951
- }
1952
-
1953
- .edit-label-input {
1954
- padding: 2px 6px;
1955
- border-radius: var(--dev-wallet-radius-2xs);
1956
- border: 1px solid var(--dev-wallet-primary);
1957
- background: var(--dev-wallet-background);
1958
- color: var(--dev-wallet-foreground);
1959
- font-size: 13px;
1960
- font-family: inherit;
1961
- outline: none;
1962
- width: 100%;
1963
- }
1964
-
1965
- .account-badge {
1966
- font-size: 10px;
1967
- padding: 1px 6px;
1968
- border-radius: var(--dev-wallet-radius-xs);
1969
- background: var(--dev-wallet-secondary);
1970
- border: 1px solid var(--dev-wallet-border);
1971
- color: var(--dev-wallet-muted-foreground);
1972
- font-weight: var(--dev-wallet-font-weight-medium);
1973
- text-transform: uppercase;
1974
- letter-spacing: 0.3px;
1975
- white-space: nowrap;
1976
- }
1977
-
1978
- .delete-btn {
1979
- width: 18px;
1980
- height: 18px;
1981
- display: inline-flex;
1982
- align-items: center;
1983
- justify-content: center;
1984
- border-radius: var(--dev-wallet-radius-2xs);
1985
- font-size: 11px;
1986
- color: var(--dev-wallet-muted-foreground);
1987
- opacity: 0;
1988
- transition: opacity 0.15s;
1989
- flex-shrink: 0;
1990
- }
1991
-
1992
- .account-item:hover .delete-btn {
1993
- opacity: 1;
1994
- }
1995
-
1996
- .delete-btn:hover {
1997
- background: color-mix(in oklab, var(--dev-wallet-destructive) 20%, transparent);
1998
- color: var(--dev-wallet-destructive);
1999
- }
2000
-
2001
- .confirm-dialog:not([open]) {
2002
- display: none;
2003
- }
2004
-
2005
- .confirm-dialog {
2006
- width: 300px;
2007
- max-width: calc(100vw - 32px);
2008
- border-radius: var(--dev-wallet-radius-xl);
2009
- background: var(--dev-wallet-background);
2010
- border: 1px solid var(--dev-wallet-border);
2011
- box-shadow: var(--dev-wallet-shadow-lg);
2012
- padding: 20px;
2013
- display: flex;
2014
- flex-direction: column;
2015
- color: inherit;
2016
- }
2017
-
2018
- .confirm-dialog::backdrop {
2019
- background: color-mix(in oklab, oklch(0 0 0) 50%, transparent);
2020
- }
2021
-
2022
- .confirm-title {
2023
- font-size: 16px;
2024
- font-weight: var(--dev-wallet-font-weight-semibold);
2025
- color: var(--dev-wallet-foreground);
2026
- margin-bottom: 12px;
2027
- }
2028
-
2029
- .confirm-body {
2030
- font-size: 13px;
2031
- color: var(--dev-wallet-muted-foreground);
2032
- margin-bottom: 8px;
2033
- line-height: 1.4;
2034
- }
2035
-
2036
- .confirm-account {
2037
- padding: 8px 10px;
2038
- border-radius: var(--dev-wallet-radius-sm);
2039
- background: var(--dev-wallet-secondary);
2040
- border: 1px solid var(--dev-wallet-border);
2041
- margin-bottom: 16px;
2042
- }
2043
-
2044
- .confirm-account-label {
2045
- font-size: 13px;
2046
- font-weight: var(--dev-wallet-font-weight-medium);
2047
- color: var(--dev-wallet-foreground);
2048
- }
2049
-
2050
- .confirm-account-address {
2051
- font-size: 11px;
2052
- color: var(--dev-wallet-muted-foreground);
2053
- font-family: var(--dev-wallet-font-mono);
2054
- }
2055
-
2056
- .confirm-actions {
2057
- display: flex;
2058
- gap: 8px;
2059
- }
2060
-
2061
- .confirm-error {
2062
- color: var(--dev-wallet-destructive);
2063
- font-size: 12px;
2064
- margin-bottom: 8px;
2065
- }
2066
-
2067
- .empty-state {
2068
- text-align: center;
2069
- padding: 24px;
2070
- color: var(--dev-wallet-muted-foreground);
2071
- font-size: 14px;
2072
- }
2073
- `];Lt([H({attribute:!1})],ht.prototype,"accounts",2);Lt([H({attribute:!1})],ht.prototype,"adapters",2);Lt([H({type:String})],ht.prototype,"activeAddress",2);Lt([Y()],ht.prototype,"_dialogOpen",2);Lt([Y()],ht.prototype,"_editingAddress",2);Lt([Y()],ht.prototype,"_editingLabel",2);Lt([Y()],ht.prototype,"_confirmDeleteAddress",2);Lt([Y()],ht.prototype,"_deleting",2);Lt([Y()],ht.prototype,"_deleteError",2);ht=Lt([Qe("dev-wallet-accounts")],ht);var zI=Object.defineProperty,qI=Object.getOwnPropertyDescriptor,jf=e=>{throw TypeError(e)},at=(e,t,n,s)=>{for(var r=s>1?void 0:s?qI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&zI(t,n,r),r},HI=(e,t,n)=>t.has(e)||jf("Cannot "+n),JI=(e,t,n)=>t.has(e)?jf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Re=(e,t,n)=>(HI(e,t,"access private method"),n),Se,Pf,Lf,Vf,Ff,Wf,Gf,zf,qf,Co,Uo,Hf,$o,Do,Jf;let qe=class extends Ue{constructor(){super(...arguments),JI(this,Se),this.wallet=null,this.accounts=[],this.adapters=[],this.activeAddress="",this.bookmarkletOrigin="",this._showAddNetwork=!1,this._networkName="",this._networkUrl="",this._error=null,this._editingNetwork=null,this._editingUrl="",this._copied=!1}render(){return y`
2074
- <div class="section">${Re(this,Se,Pf).call(this)}</div>
2075
- ${Re(this,Se,Vf).call(this)?y`<div class="section">${Re(this,Se,Ff).call(this)}</div>`:M}
2076
- <div class="section">${Re(this,Se,Wf).call(this)}</div>
2077
- <div class="section">${Re(this,Se,Gf).call(this)}</div>
2078
- <div class="section">${Re(this,Se,qf).call(this)}</div>
2079
- `}};Se=new WeakSet;Pf=function(){if(!this.wallet)return M;const e=this.wallet.availableNetworks,t=this.wallet.activeNetwork,n=this.wallet.networkUrls;return y`
2080
- <h3 class="section-header">Networks</h3>
2081
- <div class="network-list">
2082
- ${e.map(s=>{const r=Ys[s]??"#6b7280",i=s===t,a=this._editingNetwork===s;return y`
2083
- <div class="network-item ${i?"active":""}">
2084
- <span class="network-dot" style="background: ${r}"></span>
2085
- <div class="network-info">
2086
- <span class="network-name">${s}</span>
2087
- ${a?y`<input
2088
- class="network-url-input"
2089
- type="text"
2090
- .value=${this._editingUrl}
2091
- @input=${o=>{this._editingUrl=o.target.value}}
2092
- @keydown=${o=>{o.key==="Enter"&&Re(this,Se,$o).call(this,s),o.key==="Escape"&&Re(this,Se,Do).call(this)}}
2093
- />`:y`<span class="network-url" title=${n[s]??""}
2094
- >${n[s]??""}</span
2095
- >`}
2096
- </div>
2097
- <div class="network-actions">
2098
- ${a?y`
2099
- <button
2100
- class="btn-icon"
2101
- title="Save"
2102
- aria-label="Save URL"
2103
- @click=${()=>Re(this,Se,$o).call(this,s)}
2104
- >
2105
- &#10003;
2106
- </button>
2107
- <button
2108
- class="btn-icon"
2109
- title="Cancel"
2110
- aria-label="Cancel editing"
2111
- @click=${Re(this,Se,Do)}
2112
- >
2113
- &#10005;
2114
- </button>
2115
- `:y`
2116
- <button
2117
- class="btn-icon"
2118
- title="Edit URL"
2119
- aria-label="Edit network URL"
2120
- @click=${()=>Re(this,Se,Hf).call(this,s,n[s]??"")}
2121
- >
2122
- &#9998;
2123
- </button>
2124
- ${i?M:y`<button
2125
- class="btn-icon btn-icon-danger"
2126
- title="Remove"
2127
- aria-label="Remove network"
2128
- @click=${()=>Re(this,Se,Jf).call(this,s)}
2129
- >
2130
- &#10005;
2131
- </button>`}
2132
- `}
2133
- ${i?y`<span class="network-active-badge">Active</span>`:M}
2134
- </div>
2135
- </div>
2136
- `})}
2137
- </div>
2138
- ${this._showAddNetwork?Re(this,Se,Lf).call(this):y`
2139
- <button
2140
- class="btn-toggle"
2141
- @click=${()=>{this._showAddNetwork=!0}}
2142
- >
2143
- + Add Network
2144
- </button>
2145
- `}
2146
- `};Lf=function(){return y`
2147
- <div class="add-network-form">
2148
- <input
2149
- class="form-input"
2150
- type="text"
2151
- placeholder="Network name (e.g. custom)"
2152
- .value=${this._networkName}
2153
- @input=${e=>{this._networkName=e.target.value,this._error=null}}
2154
- />
2155
- <input
2156
- class="form-input"
2157
- type="text"
2158
- placeholder="gRPC URL (e.g. http://localhost:9000)"
2159
- .value=${this._networkUrl}
2160
- @input=${e=>{this._networkUrl=e.target.value,this._error=null}}
2161
- @keydown=${e=>{e.key==="Enter"&&Re(this,Se,Co).call(this),e.key==="Escape"&&Re(this,Se,Uo).call(this)}}
2162
- />
2163
- ${this._error?y`<div class="error">${this._error}</div>`:M}
2164
- <div class="form-actions">
2165
- <button
2166
- class="btn-sm btn-add"
2167
- ?disabled=${!this._networkName.trim()||!this._networkUrl.trim()}
2168
- @click=${Re(this,Se,Co)}
2169
- >
2170
- Add
2171
- </button>
2172
- <button class="btn-sm btn-cancel" @click=${Re(this,Se,Uo)}>Cancel</button>
2173
- </div>
2174
- </div>
2175
- `};Vf=function(){return this.adapters.some(e=>e.id==="remote-cli")};Ff=function(){const e=this.adapters.find(s=>s.id==="remote-cli");if(!e)return M;const t="isPaired"in e&&e.isPaired,n=e.getAccounts();return y`
2176
- <h3 class="section-header">CLI Signer</h3>
2177
- ${t?y`
2178
- <div class="network-item active cli-section-column">
2179
- <div class="cli-header-row">
2180
- <span
2181
- class="network-dot"
2182
- style="background: var(--dev-wallet-status-connected)"
2183
- ></span>
2184
- <span class="network-name">Connected</span>
2185
- ${n.length>0?y`<span class="network-active-badge">${n.length} imported</span>`:M}
2186
- </div>
2187
- ${n.length>0?y`<div class="cli-accounts-list">
2188
- ${n.map(s=>y`
2189
- <div class="network-url">${s.label} (${pt(s.address)})</div>
2190
- `)}
2191
- </div>`:y`<div class="about cli-hint">Use + Add above to import CLI accounts.</div>`}
2192
- </div>
2193
- `:y`
2194
- <div class="network-item">
2195
- <span
2196
- class="network-dot"
2197
- style="background: var(--dev-wallet-status-disconnected)"
2198
- ></span>
2199
- <span class="network-name" style="color: var(--dev-wallet-muted-foreground)"
2200
- >Not connected</span
2201
- >
2202
- </div>
2203
- <div class="about cli-unpaired-hint">
2204
- Open the token URL from your terminal to connect CLI accounts.
2205
- </div>
2206
- `}
2207
- `};Wf=function(){return y`
2208
- <dev-wallet-accounts
2209
- exportparts="account-list: accounts-account-list, add-button: accounts-add-button, empty-state: accounts-empty-state"
2210
- .accounts=${this.accounts}
2211
- .adapters=${this.adapters}
2212
- .activeAddress=${this.activeAddress}
2213
- ></dev-wallet-accounts>
2214
- `};Gf=function(){if(!this.bookmarkletOrigin)return M;const t=`${this.bookmarkletOrigin}/bookmarklet.js`,n=`javascript:void(document.head.appendChild(Object.assign(document.createElement('script'),{src:'${t}'})))`,s=`var s=document.createElement('script');s.src='${t}';document.head.appendChild(s);`;return y`
2215
- <h3 class="section-header">Bookmarklet</h3>
2216
- <div class="about">
2217
- Drag this link to your bookmarks bar, then click it on any dApp to inject the wallet:
2218
- </div>
2219
- <div class="bookmarklet-link-wrapper">
2220
- <a
2221
- class="bookmarklet-link"
2222
- href=${n}
2223
- title="Drag to bookmarks bar"
2224
- @click=${r=>r.preventDefault()}
2225
- >
2226
- Dev Wallet
2227
- </a>
2228
- </div>
2229
- <div class="about" style="margin-top: 12px">Or paste this in the browser console:</div>
2230
- <div class="console-snippet">
2231
- ${s}
2232
- <button class="btn-copy" @click=${()=>Re(this,Se,zf).call(this,s)}>
2233
- ${this._copied?"Copied!":"Copy"}
2234
- </button>
2235
- </div>
2236
- <div class="about" style="margin-top: 8px">
2237
- Or add this script to your page:<br />
2238
- <code class="bookmarklet-url">${t}</code>
2239
- </div>
2240
- `};zf=function(e){navigator.clipboard.writeText(e).then(()=>{this._copied=!0,setTimeout(()=>{this._copied=!1},2e3)})};qf=function(){return y`
2241
- <h3 class="section-header">About</h3>
2242
- <div class="about">
2243
- <strong>${this.wallet?.name??"Dev Wallet"}</strong><br />
2244
- A development wallet for testing Sui dApps.<br />
2245
- ${this.wallet?y`${this.wallet.accounts.length} account(s) across ${this.wallet.adapters.length}
2246
- adapter(s)`:M}
2247
- </div>
2248
- `};Co=function(){if(!this.wallet)return;const e=this._networkName.trim(),t=this._networkUrl.trim();if(!(!e||!t)){if(this.wallet.availableNetworks.includes(e)){this._error=`Network "${e}" already exists`;return}try{this.wallet.addNetwork(e,t),this._networkName="",this._networkUrl="",this._showAddNetwork=!1,this._error=null,Ge(this,"network-added",{name:e,url:t})}catch(n){this._error=Dr(n,"Failed to add network")}}};Uo=function(){this._showAddNetwork=!1,this._networkName="",this._networkUrl="",this._error=null};Hf=function(e,t){this._editingNetwork=e,this._editingUrl=t};$o=function(e){if(!this.wallet)return;const t=this._editingUrl.trim();if(t)try{this.wallet.addNetwork(e,t),this._editingNetwork=null,this._editingUrl=""}catch(n){this._error=n instanceof Error?n.message:"Invalid URL"}};Do=function(){this._editingNetwork=null,this._editingUrl=""};Jf=function(e){this.wallet&&this.wallet.removeNetwork(e)};qe.styles=[et,oa,Te`
2249
- :host {
2250
- display: block;
2251
- }
2252
-
2253
- .section {
2254
- margin-bottom: 20px;
2255
- }
2256
-
2257
- .section:last-child {
2258
- margin-bottom: 0;
2259
- }
2260
-
2261
- .network-list {
2262
- display: flex;
2263
- flex-direction: column;
2264
- gap: 4px;
2265
- }
2266
-
2267
- .network-item {
2268
- display: flex;
2269
- align-items: center;
2270
- gap: 8px;
2271
- padding: 8px 12px;
2272
- border-radius: var(--dev-wallet-radius-sm);
2273
- border: 1px solid var(--dev-wallet-border);
2274
- background: var(--dev-wallet-secondary);
2275
- }
2276
-
2277
- .network-item.active {
2278
- border-color: var(--dev-wallet-primary);
2279
- }
2280
-
2281
- .network-dot {
2282
- width: 8px;
2283
- height: 8px;
2284
- border-radius: 50%;
2285
- flex-shrink: 0;
2286
- }
2287
-
2288
- .network-name {
2289
- flex: 1;
2290
- font-size: 13px;
2291
- font-weight: var(--dev-wallet-font-weight-medium);
2292
- color: var(--dev-wallet-foreground);
2293
- }
2294
-
2295
- .network-info {
2296
- flex: 1;
2297
- min-width: 0;
2298
- }
2299
-
2300
- .network-url {
2301
- font-size: 10px;
2302
- color: var(--dev-wallet-muted-foreground);
2303
- font-family: var(--dev-wallet-font-mono);
2304
- overflow: hidden;
2305
- text-overflow: ellipsis;
2306
- white-space: nowrap;
2307
- }
2308
-
2309
- .network-url-input {
2310
- width: 100%;
2311
- padding: 3px 6px;
2312
- border-radius: var(--dev-wallet-radius-xs);
2313
- border: 1px solid var(--dev-wallet-primary);
2314
- background: var(--dev-wallet-background);
2315
- color: var(--dev-wallet-foreground);
2316
- font-size: 10px;
2317
- font-family: var(--dev-wallet-font-mono);
2318
- outline: none;
2319
- box-sizing: border-box;
2320
- }
2321
-
2322
- .network-actions {
2323
- display: flex;
2324
- gap: 2px;
2325
- flex-shrink: 0;
2326
- }
2327
-
2328
- .btn-icon {
2329
- width: 22px;
2330
- height: 22px;
2331
- display: flex;
2332
- align-items: center;
2333
- justify-content: center;
2334
- border-radius: var(--dev-wallet-radius-xs);
2335
- font-size: 11px;
2336
- color: var(--dev-wallet-muted-foreground);
2337
- }
2338
-
2339
- .btn-icon:hover {
2340
- background: var(--dev-wallet-border);
2341
- color: var(--dev-wallet-foreground);
2342
- }
2343
-
2344
- .btn-icon-danger:hover {
2345
- color: var(--dev-wallet-destructive);
2346
- }
2347
-
2348
- .network-active-badge {
2349
- font-size: 9px;
2350
- padding: 1px 5px;
2351
- border-radius: var(--dev-wallet-radius-2xs);
2352
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
2353
- color: var(--dev-wallet-primary);
2354
- font-weight: var(--dev-wallet-font-weight-semibold);
2355
- text-transform: uppercase;
2356
- }
2357
-
2358
- .add-network-form {
2359
- display: flex;
2360
- flex-direction: column;
2361
- gap: 8px;
2362
- margin-top: 8px;
2363
- padding: 12px;
2364
- border-radius: var(--dev-wallet-radius-sm);
2365
- border: 1px dashed var(--dev-wallet-border);
2366
- background: var(--dev-wallet-secondary);
2367
- }
2368
-
2369
- .form-input {
2370
- width: 100%;
2371
- padding: 6px 8px;
2372
- border-radius: var(--dev-wallet-radius-xs);
2373
- border: 1px solid var(--dev-wallet-input);
2374
- background: var(--dev-wallet-background);
2375
- color: var(--dev-wallet-foreground);
2376
- font-size: 12px;
2377
- font-family: inherit;
2378
- outline: none;
2379
- box-sizing: border-box;
2380
- }
2381
-
2382
- .form-input:focus {
2383
- border-color: var(--dev-wallet-primary);
2384
- }
2385
-
2386
- .form-input::placeholder {
2387
- color: var(--dev-wallet-muted-foreground);
2388
- }
2389
-
2390
- .form-actions {
2391
- display: flex;
2392
- gap: 6px;
2393
- }
2394
-
2395
- .btn-sm {
2396
- padding: 5px 10px;
2397
- border-radius: var(--dev-wallet-radius-xs);
2398
- font-size: 11px;
2399
- font-weight: var(--dev-wallet-font-weight-medium);
2400
- }
2401
-
2402
- .btn-add {
2403
- background: var(--dev-wallet-primary);
2404
- color: var(--dev-wallet-primary-foreground);
2405
- }
2406
-
2407
- .btn-add:disabled {
2408
- opacity: 0.5;
2409
- }
2410
-
2411
- .btn-cancel {
2412
- background: var(--dev-wallet-secondary);
2413
- color: var(--dev-wallet-foreground);
2414
- border: 1px solid var(--dev-wallet-border);
2415
- }
2416
-
2417
- .btn-toggle {
2418
- font-size: 12px;
2419
- color: var(--dev-wallet-primary);
2420
- padding: 4px 0;
2421
- margin-top: 4px;
2422
- }
2423
-
2424
- .btn-toggle:hover {
2425
- text-decoration: underline;
2426
- }
2427
-
2428
- .cli-section-column {
2429
- flex-direction: column;
2430
- align-items: flex-start;
2431
- gap: 6px;
2432
- }
2433
-
2434
- .cli-header-row {
2435
- display: flex;
2436
- align-items: center;
2437
- gap: 8px;
2438
- width: 100%;
2439
- }
2440
-
2441
- .cli-accounts-list {
2442
- width: 100%;
2443
- padding-left: 16px;
2444
- }
2445
-
2446
- .cli-accounts-list .network-url {
2447
- padding: 2px 0;
2448
- }
2449
-
2450
- .cli-hint {
2451
- padding-left: 16px;
2452
- margin-top: 0;
2453
- font-size: 12px;
2454
- }
2455
-
2456
- .cli-unpaired-hint {
2457
- margin-top: 8px;
2458
- }
2459
-
2460
- .about {
2461
- font-size: 12px;
2462
- color: var(--dev-wallet-muted-foreground);
2463
- line-height: 1.5;
2464
- }
2465
-
2466
- .error {
2467
- font-size: 11px;
2468
- color: var(--dev-wallet-destructive);
2469
- margin-top: 4px;
2470
- }
2471
-
2472
- .bookmarklet-link-wrapper {
2473
- margin-top: 8px;
2474
- }
2475
-
2476
- .bookmarklet-link {
2477
- display: inline-flex;
2478
- align-items: center;
2479
- gap: 6px;
2480
- padding: 8px 14px;
2481
- border-radius: var(--dev-wallet-radius-sm);
2482
- background: var(--dev-wallet-primary);
2483
- color: var(--dev-wallet-primary-foreground);
2484
- font-size: 13px;
2485
- font-weight: var(--dev-wallet-font-weight-semibold);
2486
- text-decoration: none;
2487
- cursor: grab;
2488
- user-select: none;
2489
- }
2490
-
2491
- .bookmarklet-link:hover {
2492
- opacity: 0.9;
2493
- }
2494
-
2495
- .bookmarklet-link:active {
2496
- cursor: grabbing;
2497
- }
2498
-
2499
- .bookmarklet-url {
2500
- font-family: var(--dev-wallet-font-mono);
2501
- font-size: 10px;
2502
- color: var(--dev-wallet-muted-foreground);
2503
- word-break: break-all;
2504
- user-select: all;
2505
- }
2506
-
2507
- .console-snippet {
2508
- position: relative;
2509
- margin-top: 8px;
2510
- padding: 10px 12px;
2511
- border-radius: var(--dev-wallet-radius-sm);
2512
- background: var(--dev-wallet-secondary);
2513
- border: 1px solid var(--dev-wallet-border);
2514
- font-family: var(--dev-wallet-font-mono);
2515
- font-size: 11px;
2516
- color: var(--dev-wallet-foreground);
2517
- line-height: 1.5;
2518
- white-space: pre-wrap;
2519
- word-break: break-all;
2520
- user-select: all;
2521
- }
2522
-
2523
- .btn-copy {
2524
- position: absolute;
2525
- top: 6px;
2526
- right: 6px;
2527
- padding: 3px 8px;
2528
- border-radius: var(--dev-wallet-radius-xs);
2529
- background: var(--dev-wallet-border);
2530
- color: var(--dev-wallet-muted-foreground);
2531
- font-size: 10px;
2532
- font-family: inherit;
2533
- cursor: pointer;
2534
- }
2535
-
2536
- .btn-copy:hover {
2537
- background: var(--dev-wallet-input);
2538
- color: var(--dev-wallet-foreground);
2539
- }
2540
- `];at([H({attribute:!1})],qe.prototype,"wallet",2);at([H({attribute:!1})],qe.prototype,"accounts",2);at([H({attribute:!1})],qe.prototype,"adapters",2);at([H({type:String})],qe.prototype,"activeAddress",2);at([H({type:String})],qe.prototype,"bookmarkletOrigin",2);at([Y()],qe.prototype,"_showAddNetwork",2);at([Y()],qe.prototype,"_networkName",2);at([Y()],qe.prototype,"_networkUrl",2);at([Y()],qe.prototype,"_error",2);at([Y()],qe.prototype,"_editingNetwork",2);at([Y()],qe.prototype,"_editingUrl",2);at([Y()],qe.prototype,"_copied",2);qe=at([Qe("dev-wallet-settings")],qe);var ZI=Object.defineProperty,YI=Object.getOwnPropertyDescriptor,Zf=e=>{throw TypeError(e)},pa=(e,t,n,s)=>{for(var r=s>1?void 0:s?YI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&ZI(t,n,r),r},Yf=(e,t,n)=>t.has(e)||Zf("Cannot "+n),gu=(e,t,n)=>(Yf(e,t,"read from private field"),n?n.call(e):t.get(e)),vu=(e,t,n)=>t.has(e)?Zf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),bu=(e,t,n)=>(Yf(e,t,"access private method"),n),mi,gi,Kf,Xf;let Ds=class extends Ue{constructor(){super(...arguments),vu(this,gi),this.request=null,this.client=null,this.walletName="Dev Wallet",vu(this,mi,e=>{e.preventDefault(),Ge(this,"reject")})}firstUpdated(){const e=this.shadowRoot?.querySelector("dialog");e&&!e.open&&e.showModal(),e?.addEventListener("cancel",gu(this,mi))}disconnectedCallback(){super.disconnectedCallback();const e=this.shadowRoot?.querySelector("dialog");e?.removeEventListener("cancel",gu(this,mi)),e?.open&&e.close()}render(){return this.request?y`
2541
- <dialog part="dialog">
2542
- <div class="modal-header">
2543
- <span class="modal-title">${this.walletName}</span>
2544
- </div>
2545
- <div class="modal-body">
2546
- <dev-wallet-signing
2547
- exportparts="approve-button: signing-approve-button, reject-button: signing-reject-button, request-type: signing-request-type, empty-state: signing-empty-state, error-message: signing-error-message, footer: signing-footer"
2548
- .request=${this.request}
2549
- .client=${this.client}
2550
- @approve=${bu(this,gi,Kf)}
2551
- @reject=${bu(this,gi,Xf)}
2552
- ></dev-wallet-signing>
2553
- </div>
2554
- </dialog>
2555
- `:M}};mi=new WeakMap;gi=new WeakSet;Kf=function(e){e.stopPropagation(),Ge(this,"approve")};Xf=function(e){e.stopPropagation(),Ge(this,"reject")};Ds.styles=[et,Te`
2556
- :host {
2557
- display: block;
2558
- }
2559
-
2560
- dialog {
2561
- width: 360px;
2562
- max-width: calc(100vw - 32px);
2563
- max-height: min(600px, 80vh);
2564
- border-radius: var(--dev-wallet-radius-xl);
2565
- background: var(--dev-wallet-background);
2566
- border: 1px solid var(--dev-wallet-border);
2567
- box-shadow: var(--dev-wallet-shadow-lg);
2568
- overflow: hidden;
2569
- display: flex;
2570
- flex-direction: column;
2571
- padding: 0;
2572
- color: inherit;
2573
- }
2574
-
2575
- dialog::backdrop {
2576
- background: color-mix(in oklab, oklch(0 0 0) 50%, transparent);
2577
- }
2578
-
2579
- .modal-header {
2580
- display: flex;
2581
- justify-content: space-between;
2582
- align-items: center;
2583
- padding: 14px 16px;
2584
- border-bottom: 1px solid var(--dev-wallet-border);
2585
- }
2586
-
2587
- .modal-title {
2588
- font-size: 15px;
2589
- font-weight: var(--dev-wallet-font-weight-semibold);
2590
- color: var(--dev-wallet-foreground);
2591
- }
2592
-
2593
- .modal-body {
2594
- flex: 1;
2595
- overflow: hidden;
2596
- display: flex;
2597
- flex-direction: column;
2598
- }
2599
- `];pa([H({attribute:!1})],Ds.prototype,"request",2);pa([H({attribute:!1})],Ds.prototype,"client",2);pa([H({type:String})],Ds.prototype,"walletName",2);Ds=pa([Qe("dev-wallet-signing-modal")],Ds);var KI=Object.defineProperty,XI=Object.getOwnPropertyDescriptor,Qf=e=>{throw TypeError(e)},em=(e,t,n,s)=>{for(var r=s>1?void 0:s?XI(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&KI(t,n,r),r},QI=(e,t,n)=>t.has(e)||Qf("Cannot "+n),eA=(e,t,n)=>t.has(e)?Qf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Nn=(e,t,n)=>(QI(e,t,"access private method"),n),Jt,vi,pr;let zi=class extends Ue{constructor(){super(...arguments),eA(this,Jt),this.active="assets"}render(){return y`
2600
- <nav class="tab-bar" part="tab-bar" role="tablist" aria-label="Wallet navigation">
2601
- <button
2602
- class="tab"
2603
- part="tab"
2604
- role="tab"
2605
- aria-selected=${this.active==="assets"}
2606
- tabindex=${this.active==="assets"?0:-1}
2607
- @click=${()=>Nn(this,Jt,pr).call(this,"assets")}
2608
- @keydown=${Nn(this,Jt,vi)}
2609
- >
2610
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2611
- <rect x="2" y="4" width="20" height="16" rx="2" />
2612
- <path d="M16 12h.01" />
2613
- </svg>
2614
- Assets
2615
- </button>
2616
- <button
2617
- class="tab"
2618
- part="tab"
2619
- role="tab"
2620
- aria-selected=${this.active==="objects"}
2621
- tabindex=${this.active==="objects"?0:-1}
2622
- @click=${()=>Nn(this,Jt,pr).call(this,"objects")}
2623
- @keydown=${Nn(this,Jt,vi)}
2624
- >
2625
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2626
- <rect x="3" y="3" width="7" height="7" rx="1" />
2627
- <rect x="14" y="3" width="7" height="7" rx="1" />
2628
- <rect x="3" y="14" width="7" height="7" rx="1" />
2629
- <rect x="14" y="14" width="7" height="7" rx="1" />
2630
- </svg>
2631
- Objects
2632
- </button>
2633
- <button
2634
- class="tab"
2635
- part="tab"
2636
- role="tab"
2637
- aria-selected=${this.active==="settings"}
2638
- tabindex=${this.active==="settings"?0:-1}
2639
- @click=${()=>Nn(this,Jt,pr).call(this,"settings")}
2640
- @keydown=${Nn(this,Jt,vi)}
2641
- >
2642
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2643
- <circle cx="12" cy="12" r="3" />
2644
- <path
2645
- d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"
2646
- />
2647
- </svg>
2648
- Settings
2649
- </button>
2650
- </nav>
2651
- `}};Jt=new WeakSet;vi=function(e){const t=["assets","objects","settings"],n=t.indexOf(this.active);let s=-1;e.key==="ArrowRight"?(e.preventDefault(),s=(n+1)%t.length):e.key==="ArrowLeft"&&(e.preventDefault(),s=(n-1+t.length)%t.length),s!==-1&&(Nn(this,Jt,pr).call(this,t[s]),this.shadowRoot?.querySelectorAll(".tab")?.[s]?.focus())};pr=function(e){e!==this.active&&this.dispatchEvent(new CustomEvent("tab-changed",{bubbles:!0,composed:!0,detail:{tab:e}}))};zi.styles=[et,Te`
2652
- :host {
2653
- display: block;
2654
- border-top: 1px solid var(--dev-wallet-border);
2655
- }
2656
-
2657
- .tab-bar {
2658
- display: flex;
2659
- height: 40px;
2660
- }
2661
-
2662
- .tab {
2663
- flex: 1;
2664
- display: flex;
2665
- align-items: center;
2666
- justify-content: center;
2667
- gap: 4px;
2668
- font-size: 11px;
2669
- font-weight: var(--dev-wallet-font-weight-medium);
2670
- color: var(--dev-wallet-muted-foreground);
2671
- transition: color 0.15s;
2672
- border-top: 2px solid transparent;
2673
- }
2674
-
2675
- .tab:hover {
2676
- color: var(--dev-wallet-foreground);
2677
- }
2678
-
2679
- .tab[aria-selected='true'] {
2680
- color: var(--dev-wallet-primary);
2681
- border-top-color: var(--dev-wallet-primary);
2682
- }
2683
-
2684
- .tab svg {
2685
- width: 16px;
2686
- height: 16px;
2687
- }
2688
- `];em([H({type:String})],zi.prototype,"active",2);zi=em([Qe("dev-wallet-tab-bar")],zi);class tA{constructor(t){this.activeTab="assets",this.accounts=[],this.activeAccountIndex=0,this.pendingRequest=null,this.pendingConnect=null,this.bookmarkletOrigin="",this.#e=null,this.#t=null,this.#s=null,this.#r=null,this.host=t,t.addController(this)}#e;#t;#s;#r;get wallet(){return this.#e}get activeAddress(){return this.accounts[this.activeAccountIndex]?.address??""}set wallet(t){t!==this.#e&&(this.#a(),this.#e=t,this.#i(),this.syncState())}hostConnected(){this.#i(),this.syncState()}hostDisconnected(){this.#a()}syncState(){if(!this.#e)return;const t=this.#e.accounts,n=this.#e.pendingRequest,s=t.length!==this.accounts.length||t.some((i,a)=>i.address!==this.accounts[a]?.address),r=n!==this.pendingRequest;!s&&!r||(s&&(this.accounts=[...t],this.activeAccountIndex>=t.length&&t.length>0&&(this.activeAccountIndex=t.length-1)),this.pendingRequest=n,this.host.requestUpdate())}syncConnectState(){if(!this.#e)return;const t=this.#e.pendingConnect;t!==this.pendingConnect&&(this.pendingConnect=t,this.host.requestUpdate())}getActiveClient(){if(!this.#e)return null;if(this.pendingRequest){const t=ea(this.pendingRequest.chain);if(t)try{return this.#e.getClient(t)}catch{return this.#e.activeClient}}return this.#e.activeClient}async handleApprove(){if(this.#e)try{await this.#e.approveRequest()}catch(t){console.error("[dev-wallet] approve failed:",t)}}handleReject(){if(this.#e)try{this.#e.rejectRequest()}catch(t){console.error("[dev-wallet] reject failed:",t)}}handleTabChanged(t){this.activeTab=t.detail.tab,this.host.requestUpdate()}handleNetworkChanged(t){this.#e?.setActiveNetwork(t.detail.network)}handleAccountSelected(t){const n=this.accounts.findIndex(s=>s.address===t.detail.account.address);n!==-1&&(this.activeAccountIndex=n,this.host.requestUpdate())}handleApproveConnect(t){if(t.stopPropagation(),!!this.#e)try{this.#e.approveConnect(t.detail.selectedAddresses)}catch(n){console.error("[dev-wallet] connect approve failed:",n)}}handleRejectConnect(t){if(t?.preventDefault(),t instanceof CustomEvent&&t.stopPropagation(),!!this.#e)try{this.#e.rejectConnect()}catch(n){console.error("[dev-wallet] connect reject failed:",n)}}renderAccountSelector(){return y`
2689
- <div class="section">
2690
- <dev-wallet-account-selector
2691
- exportparts="trigger: selector-trigger, copy-button: selector-copy-button, empty-state: selector-empty-state"
2692
- .accounts=${this.accounts}
2693
- .adapters=${this.#e?[...this.#e.adapters]:[]}
2694
- .activeAddress=${this.activeAddress}
2695
- @account-selected=${t=>this.handleAccountSelected(t)}
2696
- ></dev-wallet-account-selector>
2697
- </div>
2698
- `}renderAssetsTab(){return y`
2699
- ${this.renderAccountSelector()}
2700
- ${this.activeAddress&&this.#e?y`
2701
- <div class="section">
2702
- <dev-wallet-balances
2703
- exportparts="balance-list, loading: balances-loading, error-message: balances-error-message, empty-state: balances-empty-state"
2704
- .address=${this.activeAddress}
2705
- .client=${this.getActiveClient()}
2706
- ></dev-wallet-balances>
2707
- </div>
2708
- `:M}
2709
- `}renderObjectsTab(){return y`
2710
- ${this.renderAccountSelector()}
2711
- <dev-wallet-objects
2712
- exportparts="object-list, loading: objects-loading, error-message: objects-error-message, empty-state: objects-empty-state, load-more-button"
2713
- .address=${this.activeAddress}
2714
- .client=${this.getActiveClient()}
2715
- ></dev-wallet-objects>
2716
- `}renderSettingsTab(){return y`
2717
- <dev-wallet-settings
2718
- exportparts="accounts-account-list, accounts-add-button, accounts-empty-state"
2719
- .wallet=${this.#e}
2720
- .accounts=${this.accounts}
2721
- .adapters=${this.#e?[...this.#e.adapters]:[]}
2722
- .activeAddress=${this.activeAddress}
2723
- .bookmarkletOrigin=${this.bookmarkletOrigin}
2724
- @account-selected=${t=>this.handleAccountSelected(t)}
2725
- ></dev-wallet-settings>
2726
- `}renderTabContent(){return this.activeTab==="assets"?this.renderAssetsTab():this.activeTab==="objects"?this.renderObjectsTab():this.activeTab==="settings"?this.renderSettingsTab():M}renderSigningModal(){return this.pendingRequest?y`
2727
- <dev-wallet-signing-modal
2728
- exportparts="signing-approve-button, signing-reject-button, signing-request-type, signing-empty-state, signing-error-message, signing-footer, dialog: signing-dialog"
2729
- .request=${this.pendingRequest}
2730
- .client=${this.getActiveClient()}
2731
- .walletName=${this.#e?.name??"Dev Wallet"}
2732
- @approve=${()=>this.handleApprove()}
2733
- @reject=${()=>this.handleReject()}
2734
- ></dev-wallet-signing-modal>
2735
- `:M}renderConnectPicker(){if(!this.pendingConnect)return M;const t=this.#e?this.#e.adapters.flatMap(n=>n.getAccounts().map(s=>({address:s.address,label:s.label,adapterName:n.name}))):[];return y`
2736
- <dialog class="connect-dialog" @cancel=${n=>this.handleRejectConnect(n)}>
2737
- <div class="connect-dialog-header">
2738
- <span class="connect-dialog-title">${this.#e?.name??"Dev Wallet"}</span>
2739
- </div>
2740
- <dev-wallet-connect
2741
- exportparts="approve-button: connect-approve-button, reject-button: connect-reject-button, account-list: connect-account-list, error-message: connect-error-message"
2742
- .accounts=${t}
2743
- @approve=${n=>this.handleApproveConnect(n)}
2744
- @reject=${n=>this.handleRejectConnect(n)}
2745
- ></dev-wallet-connect>
2746
- </dialog>
2747
- `}renderNetworkBadge(){return this.#e?y`
2748
- <dev-wallet-network-badge
2749
- exportparts="trigger: network-trigger"
2750
- .active=${this.#e.activeNetwork}
2751
- .networks=${this.#e.availableNetworks}
2752
- @network-changed=${t=>this.handleNetworkChanged(t)}
2753
- ></dev-wallet-network-badge>
2754
- `:M}renderTabBar(){return y`
2755
- <dev-wallet-tab-bar
2756
- exportparts="tab-bar, tab"
2757
- .active=${this.activeTab}
2758
- @tab-changed=${t=>this.handleTabChanged(t)}
2759
- ></dev-wallet-tab-bar>
2760
- `}#i(){this.#e&&(this.#t=this.#e.features["standard:events"].on("change",()=>{this.syncState()}),this.#s=this.#e.onRequestChange(()=>{this.syncState()}),this.#r=this.#e.onConnectChange(()=>{this.syncConnectState()}))}#a(){this.#t?.(),this.#t=null,this.#s?.(),this.#s=null,this.#r?.(),this.#r=null}}var nA=Object.defineProperty,sA=Object.getOwnPropertyDescriptor,tm=e=>{throw TypeError(e)},Dc=(e,t,n,s)=>{for(var r=s>1?void 0:s?sA(t,n):t,i=e.length-1,a;i>=0;i--)(a=e[i])&&(r=(s?a(t,n,r):a(r))||r);return s&&r&&nA(t,n,r),r},rA=(e,t,n)=>t.has(e)||tm("Cannot "+n),qt=(e,t,n)=>(rA(e,t,"read from private field"),n?n.call(e):t.get(e)),iA=(e,t,n)=>t.has(e)?tm("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),gt;let xr=class extends Ue{constructor(){super(...arguments),this.wallet=null,this.bookmarkletOrigin="",iA(this,gt,new tA(this))}willUpdate(e){e.has("wallet")&&(qt(this,gt).wallet=this.wallet),e.has("bookmarkletOrigin")&&(qt(this,gt).bookmarkletOrigin=this.bookmarkletOrigin)}updated(){const e=this.shadowRoot?.querySelector(".connect-dialog");qt(this,gt).pendingConnect&&e&&!e.open?e.showModal():!qt(this,gt).pendingConnect&&e?.open&&e.close()}render(){return y`
2761
- <div class="card" part="card">
2762
- <div class="card-header">
2763
- <span class="card-title">${this.wallet?.name??"Dev Wallet"}</span>
2764
- <div class="header-right">
2765
- ${qt(this,gt).renderNetworkBadge()}
2766
- <span class="status-dot"></span>
2767
- <span class="status-text">Running</span>
2768
- </div>
2769
- </div>
2770
- <div class="card-body">${qt(this,gt).renderTabContent()}</div>
2771
- ${qt(this,gt).renderTabBar()}
2772
- </div>
2773
- ${qt(this,gt).renderSigningModal()} ${qt(this,gt).renderConnectPicker()}
2774
- `}};gt=new WeakMap;xr.styles=[et,X2,Te`
2775
- :host {
2776
- display: flex;
2777
- justify-content: center;
2778
- padding: 24px 16px;
2779
- min-height: 100vh;
2780
- box-sizing: border-box;
2781
- }
2782
-
2783
- .card {
2784
- width: 100%;
2785
- max-width: 480px;
2786
- border-radius: var(--dev-wallet-radius-xl);
2787
- background: var(--dev-wallet-background);
2788
- border: 1px solid var(--dev-wallet-border);
2789
- box-shadow: var(--dev-wallet-shadow-lg);
2790
- overflow: hidden;
2791
- display: flex;
2792
- flex-direction: column;
2793
- height: min(640px, calc(100vh - 48px));
2794
- }
2795
-
2796
- .card-header {
2797
- display: flex;
2798
- justify-content: space-between;
2799
- align-items: center;
2800
- padding: 16px 20px;
2801
- border-bottom: 1px solid var(--dev-wallet-border);
2802
- }
2803
-
2804
- .card-title {
2805
- font-size: 17px;
2806
- font-weight: var(--dev-wallet-font-weight-semibold);
2807
- color: var(--dev-wallet-foreground);
2808
- }
2809
-
2810
- .header-right {
2811
- display: flex;
2812
- align-items: center;
2813
- gap: 8px;
2814
- }
2815
-
2816
- .status-dot {
2817
- width: 8px;
2818
- height: 8px;
2819
- border-radius: 50%;
2820
- background: var(--dev-wallet-status-connected);
2821
- }
2822
-
2823
- .status-text {
2824
- font-size: 11px;
2825
- color: var(--dev-wallet-muted-foreground);
2826
- }
2827
-
2828
- .card-body {
2829
- padding: 16px 20px;
2830
- overflow-y: auto;
2831
- flex: 1;
2832
- }
2833
-
2834
- .section {
2835
- margin-bottom: 16px;
2836
- }
2837
-
2838
- .section:last-child {
2839
- margin-bottom: 0;
2840
- }
2841
- `];Dc([H({attribute:!1})],xr.prototype,"wallet",2);Dc([H({type:String})],xr.prototype,"bookmarkletOrigin",2);xr=Dc([Qe("dev-wallet-standalone")],xr);function aA(){const e=localStorage.getItem("dev-wallet:jwt-secret");if(e)return Q(e);const t=crypto.getRandomValues(new Uint8Array(32));return localStorage.setItem("dev-wallet:jwt-secret",ee(t)),t}async function nm(){const e=[];typeof indexedDB<"u"&&e.push(ha(()=>import("./webcrypto-adapter-DysAubFb.js"),[]).then(async({WebCryptoSignerAdapter:r})=>{const i=new r;return await i.initialize(),i}).catch(()=>null)),e.push(ha(()=>import("./in-memory-adapter-CBF4h2KD.js"),[]).then(async({InMemorySignerAdapter:r})=>{const i=new r;return await i.initialize(),i})),window.__DEV_WALLET_CLI__&&e.push(ha(()=>Promise.resolve().then(()=>Cw),void 0).then(async({RemoteCliAdapter:r})=>{const i=new r;return await i.initialize(),i}));const t=await Promise.allSettled(e);for(const r of t)r.status==="rejected"&&console.warn("[dev-wallet] Adapter initialization failed:",r.reason);const n=t.filter(r=>r.status==="fulfilled"&&r.value!==null).map(r=>r.value);if(n.length===0)throw new Error("No adapters could be initialized");if(!n.some(r=>r.getAccounts().length>0)){const r=n.find(i=>i.createAccount);r?.createAccount&&await r.createAccount({label:"Dev Account"})}return new S2({adapters:n,activeNetwork:"devnet",persistNetworks:!0})}async function oA(e){const t=document.getElementById("app");if(!t)throw new Error("Missing #app element in document");try{const n=await nm(),s=aA(),r=wy({adapters:[...n.adapters],jwtSecretKey:s,getClient:l=>{try{return n.getClient(l)}catch{return}},hash:e});t.innerHTML="";const i=r.chain?ea(r.chain):void 0,a=i?n.getClient(i)??n.activeClient:n.activeClient,o=document.createElement("dev-wallet-popup");if(o.walletName="Dev Wallet (Web)",o.requestType=r.type,o.appName=r.appName,o.appUrl=r.appUrl,o.address=r.address??"",r.address){const l=n.getAdapterForAccount(r.address)?.getAccount(r.address);l&&(o.accountLabel=l.label)}o.chain=r.chain??"sui:unknown",o.data=r.data??null,o.client=a??null,r.type==="connect"&&(o.connectAccounts=n.adapters.flatMap(l=>l.getAccounts().map(u=>({address:u.address,label:u.label,adapterName:l.name}))));let c=!1;o.addEventListener("approve",async l=>{if(!c){c=!0;try{const u=l.detail;await r.approve(u?.selectedAddresses?{selectedAddresses:u.selectedAddresses}:void 0),window.close()}catch(u){c=!1;const d=o.shadowRoot?.querySelector("dev-wallet-connect");d&&d.showError(u instanceof Error?u.message:String(u))}}}),o.addEventListener("reject",()=>{c||(c=!0,r.reject("User rejected"),window.close())}),t.appendChild(o)}catch(n){sm(t,"Error",n)}}async function cA(){const e=document.getElementById("app");if(!e)throw new Error("Missing #app element in document");try{const t=await nm();e.innerHTML="";const n=document.createElement("dev-wallet-standalone");n.wallet=t,n.bookmarkletOrigin=window.location.origin,e.appendChild(n)}catch(t){sm(e,"Failed to initialize wallet",t)}}function sm(e,t,n){e.innerHTML="";const s=document.createElement("div");s.style.cssText="color: #ef4444; text-align: center;";const r=document.createElement("h3");r.textContent=t,s.appendChild(r);const i=document.createElement("p");i.textContent=n instanceof Error?n.message:String(n),i.style.cssText="font-size: 13px; margin-top: 8px;",s.appendChild(i),e.appendChild(s)}function lA(){const e=new URL(window.location.href),t=e.searchParams.get("token");t&&(localStorage.setItem(wt.TOKEN_KEY,t),e.searchParams.delete("token"),history.replaceState(null,"",e.pathname+e.hash))}lA();const wu=window.location.hash.slice(1);wu?oA(wu):cA();export{xw as B,Jv as E,pA as K,Uv as P,Qd as S,eb as a,gp as b,ya as c,pd as d,dA as e,Dt as f,Xt as g,Fd as h,Au as i,Hv as j,uA as k,hA as l,fA as m,Jd as p,Qg as s,Is as t};