diff --git a/assets/index-DNeU1-50.js b/assets/index-4BLp4_-q.js similarity index 94% rename from assets/index-DNeU1-50.js rename to assets/index-4BLp4_-q.js index f6f0f64..2c51594 100644 --- a/assets/index-DNeU1-50.js +++ b/assets/index-4BLp4_-q.js @@ -61,7 +61,7 @@ Minimum version required to store current data is: `+d+`. `,e)}try{window.dispatchEvent(new AppReadyEvent(o))}catch(e){console.error(`wallet-standard:app-ready event could not be dispatched `,e)}return wallets}function register(...o){var e;return o=o.filter(s=>!registeredWalletsSet.has(s)),o.length?(o.forEach(s=>addRegisteredWallet(s)),(e=listeners.register)==null||e.forEach(s=>guard(()=>s(...o))),function(){var a;o.forEach(c=>removeRegisteredWallet(c)),(a=listeners.unregister)==null||a.forEach(c=>guard(()=>c(...o)))}):()=>{}}let cachedWalletsArray;function get(){return cachedWalletsArray||(cachedWalletsArray=[...registeredWalletsSet]),cachedWalletsArray}function on(o,e){var s;return(s=listeners[o])!=null&&s.push(e)||(listeners[o]=[e]),function(){var c;listeners[o]=(c=listeners[o])==null?void 0:c.filter(d=>e!==d)}}function guard(o){try{o()}catch(e){console.error(e)}}class AppReadyEvent extends Event{get detail(){return __classPrivateFieldGet(this,_AppReadyEvent_detail,"f")}get type(){return"wallet-standard:app-ready"}constructor(e){super("wallet-standard:app-ready",{bubbles:!1,cancelable:!1,composed:!1}),_AppReadyEvent_detail.set(this,void 0),__classPrivateFieldSet(this,_AppReadyEvent_detail,e,"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")}}_AppReadyEvent_detail=new WeakMap;function DEPRECATED_getWallets(){if(wallets||(wallets=getWallets(),typeof window>"u"))return wallets;const o=window.navigator.wallets||[];if(!Array.isArray(o))return console.error("window.navigator.wallets is not an array"),wallets;const{register:e}=wallets,s=(...a)=>a.forEach(c=>guard(()=>c({register:e})));try{Object.defineProperty(window.navigator,"wallets",{value:Object.freeze({push:s})})}catch{return console.error("window.navigator.wallets could not be set"),wallets}return s(...o),wallets}function useStandardWalletAdapters(o){const e=useConstant(()=>new Set),{get:s,on:a}=useConstant(()=>DEPRECATED_getWallets()),[c,d]=reactExports.useState(()=>wrapWalletsWithAdapters(s()));reactExports.useEffect(()=>{const _=[a("register",(...b)=>d($=>[...$,...wrapWalletsWithAdapters(b)])),a("unregister",(...b)=>d($=>$.filter(_e=>b.some(nt=>nt===_e.wallet))))];return()=>_.forEach(b=>b())},[a]);const h=usePrevious(c);return reactExports.useEffect(()=>{if(!h)return;const _=new Set(c);new Set(h.filter($=>!_.has($))).forEach($=>$.destroy())},[h,c]),reactExports.useEffect(()=>()=>c.forEach(_=>_.destroy()),[]),reactExports.useMemo(()=>[...c,...o.filter(({name:_})=>c.some(b=>b.name===_)?(e.has(_)||(e.add(_),console.warn(`${_} was registered as a Standard Wallet. The Wallet Adapter for ${_} can be removed from your app.`)),!1):!0)],[c,o,e])}function useConstant(o){const e=reactExports.useRef();return e.current||(e.current={value:o()}),e.current.value}function usePrevious(o){const e=reactExports.useRef();return reactExports.useEffect(()=>{e.current=o}),e.current}function wrapWalletsWithAdapters(o){return o.filter(isWalletAdapterCompatibleWallet).map(e=>new StandardWalletAdapter({wallet:e}))}var Environment;(function(o){o[o.DESKTOP_WEB=0]="DESKTOP_WEB",o[o.MOBILE_WEB=1]="MOBILE_WEB"})(Environment||(Environment={}));function isWebView(o){return/(WebView|Version\/.+(Chrome)\/(\d+)\.(\d+)\.(\d+)\.(\d+)|; wv\).+(Chrome)\/(\d+)\.(\d+)\.(\d+)\.(\d+))/i.test(o)}function getEnvironment({adapters:o,userAgentString:e}){return o.some(s=>s.name!==SolanaMobileWalletAdapterWalletName&&s.readyState===WalletReadyState.Installed)?Environment.DESKTOP_WEB:e&&/android/i.test(e)&&!isWebView(e)?Environment.MOBILE_WEB:Environment.DESKTOP_WEB}function getInferredClusterFromEndpoint(o){return o?/devnet/i.test(o)?"devnet":/testnet/i.test(o)?"testnet":"mainnet-beta":"mainnet-beta"}function WalletProviderBase({children:o,wallets:e,adapter:s,isUnloadingRef:a,onAutoConnectRequest:c,onConnectError:d,onError:h,onSelectWallet:_}){const b=reactExports.useRef(!1),[$,_e]=reactExports.useState(!1),nt=reactExports.useRef(!1),[rt,tt]=reactExports.useState(!1),[ct,ht]=reactExports.useState(()=>(s==null?void 0:s.publicKey)??null),[dt,lt]=reactExports.useState(()=>(s==null?void 0:s.connected)??!1),st=reactExports.useRef(h);reactExports.useEffect(()=>(st.current=h,()=>{st.current=void 0}),[h]);const it=reactExports.useRef((et,at)=>(a.current||(st.current?st.current(et,at):(console.error(et,at),et instanceof WalletNotReadyError&&typeof window<"u"&&at&&window.open(at.url,"_blank"))),et)),[_t,St]=reactExports.useState(()=>e.map(et=>({adapter:et,readyState:et.readyState})).filter(({readyState:et})=>et!==WalletReadyState.Unsupported));reactExports.useEffect(()=>{St(at=>e.map((pt,gt)=>{const mt=at[gt];return mt&&mt.adapter===pt&&mt.readyState===pt.readyState?mt:{adapter:pt,readyState:pt.readyState}}).filter(({readyState:pt})=>pt!==WalletReadyState.Unsupported));function et(at){St(pt=>{const gt=pt.findIndex(({adapter:wt})=>wt===this);if(gt===-1)return pt;const{adapter:mt}=pt[gt];return[...pt.slice(0,gt),{adapter:mt,readyState:at},...pt.slice(gt+1)].filter(({readyState:wt})=>wt!==WalletReadyState.Unsupported)})}return e.forEach(at=>at.on("readyStateChange",et,at)),()=>{e.forEach(at=>at.off("readyStateChange",et,at))}},[s,e]);const vt=reactExports.useMemo(()=>_t.find(et=>et.adapter===s)??null,[s,_t]);reactExports.useEffect(()=>{if(!s)return;const et=gt=>{ht(gt),b.current=!1,_e(!1),lt(!0),nt.current=!1,tt(!1)},at=()=>{a.current||(ht(null),b.current=!1,_e(!1),lt(!1),nt.current=!1,tt(!1))},pt=gt=>{it.current(gt,s)};return s.on("connect",et),s.on("disconnect",at),s.on("error",pt),()=>{s.off("connect",et),s.off("disconnect",at),s.off("error",pt),at()}},[s,a]);const At=reactExports.useRef(!1);reactExports.useEffect(()=>()=>{At.current=!1},[s]),reactExports.useEffect(()=>{At.current||b.current||dt||!c||!((vt==null?void 0:vt.readyState)===WalletReadyState.Installed||(vt==null?void 0:vt.readyState)===WalletReadyState.Loadable)||(b.current=!0,_e(!0),At.current=!0,async function(){try{await c()}catch{d()}finally{_e(!1),b.current=!1}}())},[dt,c,d,vt]);const It=reactExports.useCallback(async(et,at,pt)=>{if(!s)throw it.current(new WalletNotSelectedError);if(!dt)throw it.current(new WalletNotConnectedError,s);return await s.sendTransaction(et,at,pt)},[s,dt]),kt=reactExports.useMemo(()=>s&&"signTransaction"in s?async et=>{if(!dt)throw it.current(new WalletNotConnectedError,s);return await s.signTransaction(et)}:void 0,[s,dt]),xt=reactExports.useMemo(()=>s&&"signAllTransactions"in s?async et=>{if(!dt)throw it.current(new WalletNotConnectedError,s);return await s.signAllTransactions(et)}:void 0,[s,dt]),$t=reactExports.useMemo(()=>s&&"signMessage"in s?async et=>{if(!dt)throw it.current(new WalletNotConnectedError,s);return await s.signMessage(et)}:void 0,[s,dt]),Ot=reactExports.useMemo(()=>s&&"signIn"in s?async et=>await s.signIn(et):void 0,[s]),yt=reactExports.useCallback(async()=>{if(b.current||nt.current||vt!=null&&vt.adapter.connected)return;if(!vt)throw it.current(new WalletNotSelectedError);const{adapter:et,readyState:at}=vt;if(!(at===WalletReadyState.Installed||at===WalletReadyState.Loadable))throw it.current(new WalletNotReadyError,et);b.current=!0,_e(!0);try{await et.connect()}catch(pt){throw d(),pt}finally{_e(!1),b.current=!1}},[d,vt]),j=reactExports.useCallback(async()=>{if(!nt.current&&s){nt.current=!0,tt(!0);try{await s.disconnect()}finally{tt(!1),nt.current=!1}}},[s]);return React.createElement(WalletContext.Provider,{value:{autoConnect:!!c,wallets:_t,wallet:vt,publicKey:ct,connected:dt,connecting:$,disconnecting:rt,select:_,connect:yt,disconnect:j,sendTransaction:It,signTransaction:kt,signAllTransactions:xt,signMessage:$t,signIn:Ot}},o)}let _userAgent;function getUserAgent(){var o;return _userAgent===void 0&&(_userAgent=((o=globalThis.navigator)==null?void 0:o.userAgent)??null),_userAgent}function getIsMobile(o){const e=getUserAgent();return getEnvironment({adapters:o,userAgentString:e})===Environment.MOBILE_WEB}function getUriForAppIdentity(){const o=globalThis.location;if(o)return`${o.protocol}//${o.host}`}function WalletProvider({children:o,wallets:e,autoConnect:s,localStorageKey:a="walletName",onError:c}){const{connection:d}=useConnection(),h=useStandardWalletAdapters(e),_=reactExports.useMemo(()=>{if(!getIsMobile(h))return null;const st=h.find(it=>it.name===SolanaMobileWalletAdapterWalletName);return st||new SolanaMobileWalletAdapter({addressSelector:createDefaultAddressSelector(),appIdentity:{uri:getUriForAppIdentity()},authorizationResultCache:createDefaultAuthorizationResultCache(),cluster:getInferredClusterFromEndpoint(d==null?void 0:d.rpcEndpoint),onWalletNotFound:createDefaultWalletNotFoundHandler()})},[h,d==null?void 0:d.rpcEndpoint]),b=reactExports.useMemo(()=>_==null||h.indexOf(_)!==-1?h:[_,...h],[h,_]),[$,_e]=useLocalStorage(a,getIsMobile(h)?SolanaMobileWalletAdapterWalletName:null),nt=reactExports.useMemo(()=>b.find(st=>st.name===$)??null,[b,$]),rt=reactExports.useCallback(st=>{$!==st&&(nt&&nt.name!==SolanaMobileWalletAdapterWalletName&&nt.disconnect(),_e(st))},[nt,_e,$]);reactExports.useEffect(()=>{if(!nt)return;function st(){ht.current||$===SolanaMobileWalletAdapterWalletName&&getIsMobile(h)||_e(null)}return nt.on("disconnect",st),()=>{nt.off("disconnect",st)}},[nt,h,_e,$]);const tt=reactExports.useRef(!1),ct=reactExports.useMemo(()=>{if(!(!s||!nt))return async()=>{(s===!0||await s(nt))&&(tt.current?await nt.connect():await nt.autoConnect())}},[s,nt]),ht=reactExports.useRef(!1);reactExports.useEffect(()=>{if($===SolanaMobileWalletAdapterWalletName&&getIsMobile(h)){ht.current=!1;return}function st(){ht.current=!0}return window.addEventListener("beforeunload",st),()=>{window.removeEventListener("beforeunload",st)}},[h,$]);const dt=reactExports.useCallback(()=>{nt&&nt.name!==SolanaMobileWalletAdapterWalletName&&rt(null)},[nt,rt]),lt=reactExports.useCallback(st=>{tt.current=!0,rt(st)},[rt]);return React.createElement(WalletProviderBase,{wallets:b,adapter:nt,isUnloadingRef:ht,onAutoConnectRequest:ct,onConnectError:dt,onError:c,onSelectWallet:lt},o)}function useWalletMultiButton({onSelectWallet:o}){const{connect:e,connected:s,connecting:a,disconnect:c,disconnecting:d,publicKey:h,select:_,wallet:b,wallets:$}=useWallet();let _e;a?_e="connecting":s?_e="connected":d?_e="disconnecting":b?_e="has-wallet":_e="no-wallet";const nt=reactExports.useCallback(()=>{e().catch(()=>{})},[e]),rt=reactExports.useCallback(()=>{c().catch(()=>{})},[c]),tt=reactExports.useCallback(()=>{o({onSelectWallet:_,wallets:$})},[o,_,$]);return{buttonState:_e,onConnect:_e==="has-wallet"?nt:void 0,onDisconnect:_e!=="disconnecting"&&_e!=="no-wallet"?rt:void 0,onSelectWallet:tt,publicKey:h??void 0,walletIcon:b==null?void 0:b.adapter.icon,walletName:b==null?void 0:b.adapter.name}}const Button=o=>React.createElement("button",{className:`wallet-adapter-button ${o.className||""}`,disabled:o.disabled,style:o.style,onClick:o.onClick,tabIndex:o.tabIndex||0,type:"button"},o.startIcon&&React.createElement("i",{className:"wallet-adapter-button-start-icon"},o.startIcon),o.children,o.endIcon&&React.createElement("i",{className:"wallet-adapter-button-end-icon"},o.endIcon)),WalletIcon=({wallet:o,...e})=>o&&React.createElement("img",{src:o.adapter.icon,alt:`${o.adapter.name} icon`,...e});function BaseWalletConnectionButton({walletIcon:o,walletName:e,...s}){return React.createElement(Button,{...s,className:"wallet-adapter-button-trigger",startIcon:o&&e?React.createElement(WalletIcon,{wallet:{adapter:{icon:o,name:e}}}):void 0})}function BaseWalletMultiButton({children:o,labels:e,...s}){const{setVisible:a}=useWalletModal(),{buttonState:c,onConnect:d,onDisconnect:h,publicKey:_,walletIcon:b,walletName:$}=useWalletMultiButton({onSelectWallet(){a(!0)}}),[_e,nt]=reactExports.useState(!1),[rt,tt]=reactExports.useState(!1),ct=reactExports.useRef(null);reactExports.useEffect(()=>{const dt=lt=>{const st=ct.current;!st||st.contains(lt.target)||tt(!1)};return document.addEventListener("mousedown",dt),document.addEventListener("touchstart",dt),()=>{document.removeEventListener("mousedown",dt),document.removeEventListener("touchstart",dt)}},[]);const ht=reactExports.useMemo(()=>{if(o)return o;if(_){const dt=_.toBase58();return dt.slice(0,4)+".."+dt.slice(-4)}else return c==="connecting"||c==="has-wallet"?e[c]:e["no-wallet"]},[c,o,e,_]);return React.createElement("div",{className:"wallet-adapter-dropdown"},React.createElement(BaseWalletConnectionButton,{...s,"aria-expanded":rt,style:{pointerEvents:rt?"none":"auto",...s.style},onClick:()=>{switch(c){case"no-wallet":a(!0);break;case"has-wallet":d&&d();break;case"connected":tt(!0);break}},walletIcon:b,walletName:$},ht),React.createElement("ul",{"aria-label":"dropdown-list",className:`wallet-adapter-dropdown-list ${rt&&"wallet-adapter-dropdown-list-active"}`,ref:ct,role:"menu"},_?React.createElement("li",{className:"wallet-adapter-dropdown-list-item",onClick:async()=>{await navigator.clipboard.writeText(_.toBase58()),nt(!0),setTimeout(()=>nt(!1),400)},role:"menuitem"},_e?e.copied:e["copy-address"]):null,React.createElement("li",{className:"wallet-adapter-dropdown-list-item",onClick:()=>{a(!0),tt(!1)},role:"menuitem"},e["change-wallet"]),h?React.createElement("li",{className:"wallet-adapter-dropdown-list-item",onClick:()=>{h(),tt(!1)},role:"menuitem"},e.disconnect):null))}const Collapse=({id:o,children:e,expanded:s=!1})=>{const a=reactExports.useRef(null),c=reactExports.useRef(!0),d="height 250ms ease-out",h=()=>{const b=a.current;b&&requestAnimationFrame(()=>{b.style.height=b.scrollHeight+"px"})},_=()=>{const b=a.current;b&&requestAnimationFrame(()=>{b.style.height=b.offsetHeight+"px",b.style.overflow="hidden",requestAnimationFrame(()=>{b.style.height="0"})})};return reactExports.useLayoutEffect(()=>{s?h():_()},[s]),reactExports.useLayoutEffect(()=>{const b=a.current;if(!b)return;function $(){b&&(b.style.overflow=s?"initial":"hidden",s&&(b.style.height="auto"))}function _e(nt){b&&nt.target===b&&nt.propertyName==="height"&&$()}return c.current&&($(),c.current=!1),b.addEventListener("transitionend",_e),()=>b.removeEventListener("transitionend",_e)},[s]),React.createElement("div",{className:"wallet-adapter-collapse",id:o,ref:a,role:"region",style:{height:0,transition:c.current?void 0:d}},e)},WalletListItem=({handleClick:o,tabIndex:e,wallet:s})=>React.createElement("li",null,React.createElement(Button,{onClick:o,startIcon:React.createElement(WalletIcon,{wallet:s}),tabIndex:e},s.adapter.name,s.readyState===WalletReadyState.Installed&&React.createElement("span",null,"Detected"))),WalletSVG=()=>React.createElement("svg",{width:"97",height:"96",viewBox:"0 0 97 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React.createElement("circle",{cx:"48.5",cy:"48",r:"48",fill:"url(#paint0_linear_880_5115)",fillOpacity:"0.1"}),React.createElement("circle",{cx:"48.5",cy:"48",r:"47",stroke:"url(#paint1_linear_880_5115)",strokeOpacity:"0.4",strokeWidth:"2"}),React.createElement("g",{clipPath:"url(#clip0_880_5115)"},React.createElement("path",{d:"M65.5769 28.1523H31.4231C27.6057 28.1523 24.5 31.258 24.5 35.0754V60.9215C24.5 64.7389 27.6057 67.8446 31.4231 67.8446H65.5769C69.3943 67.8446 72.5 64.7389 72.5 60.9215V35.0754C72.5 31.258 69.3943 28.1523 65.5769 28.1523ZM69.7308 52.1523H59.5769C57.2865 52.1523 55.4231 50.289 55.4231 47.9985C55.4231 45.708 57.2864 43.8446 59.5769 43.8446H69.7308V52.1523ZM69.7308 41.0754H59.5769C55.7595 41.0754 52.6539 44.1811 52.6539 47.9985C52.6539 51.8159 55.7595 54.9215 59.5769 54.9215H69.7308V60.9215C69.7308 63.2119 67.8674 65.0754 65.5769 65.0754H31.4231C29.1327 65.0754 27.2692 63.212 27.2692 60.9215V35.0754C27.2692 32.785 29.1326 30.9215 31.4231 30.9215H65.5769C67.8673 30.9215 69.7308 32.7849 69.7308 35.0754V41.0754Z",fill:"url(#paint2_linear_880_5115)"}),React.createElement("path",{d:"M61.4231 46.6172H59.577C58.8123 46.6172 58.1924 47.2371 58.1924 48.0018C58.1924 48.7665 58.8123 49.3863 59.577 49.3863H61.4231C62.1878 49.3863 62.8077 48.7664 62.8077 48.0018C62.8077 47.2371 62.1878 46.6172 61.4231 46.6172Z",fill:"url(#paint3_linear_880_5115)"})),React.createElement("defs",null,React.createElement("linearGradient",{id:"paint0_linear_880_5115",x1:"3.41664",y1:"98.0933",x2:"103.05",y2:"8.42498",gradientUnits:"userSpaceOnUse"},React.createElement("stop",{stopColor:"#9945FF"}),React.createElement("stop",{offset:"0.14",stopColor:"#8A53F4"}),React.createElement("stop",{offset:"0.42",stopColor:"#6377D6"}),React.createElement("stop",{offset:"0.79",stopColor:"#24B0A7"}),React.createElement("stop",{offset:"0.99",stopColor:"#00D18C"}),React.createElement("stop",{offset:"1",stopColor:"#00D18C"})),React.createElement("linearGradient",{id:"paint1_linear_880_5115",x1:"3.41664",y1:"98.0933",x2:"103.05",y2:"8.42498",gradientUnits:"userSpaceOnUse"},React.createElement("stop",{stopColor:"#9945FF"}),React.createElement("stop",{offset:"0.14",stopColor:"#8A53F4"}),React.createElement("stop",{offset:"0.42",stopColor:"#6377D6"}),React.createElement("stop",{offset:"0.79",stopColor:"#24B0A7"}),React.createElement("stop",{offset:"0.99",stopColor:"#00D18C"}),React.createElement("stop",{offset:"1",stopColor:"#00D18C"})),React.createElement("linearGradient",{id:"paint2_linear_880_5115",x1:"25.9583",y1:"68.7101",x2:"67.2337",y2:"23.7879",gradientUnits:"userSpaceOnUse"},React.createElement("stop",{stopColor:"#9945FF"}),React.createElement("stop",{offset:"0.14",stopColor:"#8A53F4"}),React.createElement("stop",{offset:"0.42",stopColor:"#6377D6"}),React.createElement("stop",{offset:"0.79",stopColor:"#24B0A7"}),React.createElement("stop",{offset:"0.99",stopColor:"#00D18C"}),React.createElement("stop",{offset:"1",stopColor:"#00D18C"})),React.createElement("linearGradient",{id:"paint3_linear_880_5115",x1:"58.3326",y1:"49.4467",x2:"61.0002",y2:"45.4453",gradientUnits:"userSpaceOnUse"},React.createElement("stop",{stopColor:"#9945FF"}),React.createElement("stop",{offset:"0.14",stopColor:"#8A53F4"}),React.createElement("stop",{offset:"0.42",stopColor:"#6377D6"}),React.createElement("stop",{offset:"0.79",stopColor:"#24B0A7"}),React.createElement("stop",{offset:"0.99",stopColor:"#00D18C"}),React.createElement("stop",{offset:"1",stopColor:"#00D18C"})),React.createElement("clipPath",{id:"clip0_880_5115"},React.createElement("rect",{width:"48",height:"48",fill:"white",transform:"translate(24.5 24)"})))),WalletModal=({className:o="",container:e="body"})=>{const s=reactExports.useRef(null),{wallets:a,select:c}=useWallet(),{setVisible:d}=useWalletModal(),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(!1),[_e,nt]=reactExports.useState(null),[rt,tt]=reactExports.useMemo(()=>{const it=[],_t=[];for(const St of a)St.readyState===WalletReadyState.Installed?it.push(St):_t.push(St);return it.length?[it,_t]:[_t,[]]},[a]),ct=reactExports.useCallback(()=>{$(!1),setTimeout(()=>d(!1),150)},[d]),ht=reactExports.useCallback(it=>{it.preventDefault(),ct()},[ct]),dt=reactExports.useCallback((it,_t)=>{c(_t),ht(it)},[c,ht]),lt=reactExports.useCallback(()=>_(!h),[h]),st=reactExports.useCallback(it=>{const _t=s.current;if(!_t)return;const St=_t.querySelectorAll("button"),vt=St[0],At=St[St.length-1];it.shiftKey?document.activeElement===vt&&(At.focus(),it.preventDefault()):document.activeElement===At&&(vt.focus(),it.preventDefault())},[s]);return reactExports.useLayoutEffect(()=>{const it=St=>{St.key==="Escape"?ct():St.key==="Tab"&&st(St)},{overflow:_t}=window.getComputedStyle(document.body);return setTimeout(()=>$(!0),0),document.body.style.overflow="hidden",window.addEventListener("keydown",it,!1),()=>{document.body.style.overflow=_t,window.removeEventListener("keydown",it,!1)}},[ct,st]),reactExports.useLayoutEffect(()=>nt(document.querySelector(e)),[e]),_e&&reactDomExports.createPortal(React.createElement("div",{"aria-labelledby":"wallet-adapter-modal-title","aria-modal":"true",className:`wallet-adapter-modal ${b&&"wallet-adapter-modal-fade-in"} ${o}`,ref:s,role:"dialog"},React.createElement("div",{className:"wallet-adapter-modal-container"},React.createElement("div",{className:"wallet-adapter-modal-wrapper"},React.createElement("button",{onClick:ht,className:"wallet-adapter-modal-button-close"},React.createElement("svg",{width:"14",height:"14"},React.createElement("path",{d:"M14 12.461 8.3 6.772l5.234-5.233L12.006 0 6.772 5.234 1.54 0 0 1.539l5.234 5.233L0 12.006l1.539 1.528L6.772 8.3l5.69 5.7L14 12.461z"}))),rt.length?React.createElement(React.Fragment,null,React.createElement("h1",{className:"wallet-adapter-modal-title"},"Connect a wallet on Solana to continue"),React.createElement("ul",{className:"wallet-adapter-modal-list"},rt.map(it=>React.createElement(WalletListItem,{key:it.adapter.name,handleClick:_t=>dt(_t,it.adapter.name),wallet:it})),tt.length?React.createElement(Collapse,{expanded:h,id:"wallet-adapter-modal-collapse"},tt.map(it=>React.createElement(WalletListItem,{key:it.adapter.name,handleClick:_t=>dt(_t,it.adapter.name),tabIndex:h?0:-1,wallet:it}))):null),tt.length?React.createElement("button",{className:"wallet-adapter-modal-list-more",onClick:lt,tabIndex:0},React.createElement("span",null,h?"Less ":"More ","options"),React.createElement("svg",{width:"13",height:"7",viewBox:"0 0 13 7",xmlns:"http://www.w3.org/2000/svg",className:`${h?"wallet-adapter-modal-list-more-icon-rotate":""}`},React.createElement("path",{d:"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z"}))):null):React.createElement(React.Fragment,null,React.createElement("h1",{className:"wallet-adapter-modal-title"},"You'll need a wallet on Solana to continue"),React.createElement("div",{className:"wallet-adapter-modal-middle"},React.createElement(WalletSVG,null)),tt.length?React.createElement(React.Fragment,null,React.createElement("button",{className:"wallet-adapter-modal-list-more",onClick:lt,tabIndex:0},React.createElement("span",null,h?"Hide ":"Already have a wallet? View ","options"),React.createElement("svg",{width:"13",height:"7",viewBox:"0 0 13 7",xmlns:"http://www.w3.org/2000/svg",className:`${h?"wallet-adapter-modal-list-more-icon-rotate":""}`},React.createElement("path",{d:"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z"}))),React.createElement(Collapse,{expanded:h,id:"wallet-adapter-modal-collapse"},React.createElement("ul",{className:"wallet-adapter-modal-list"},tt.map(it=>React.createElement(WalletListItem,{key:it.adapter.name,handleClick:_t=>dt(_t,it.adapter.name),tabIndex:h?0:-1,wallet:it}))))):null))),React.createElement("div",{className:"wallet-adapter-modal-overlay",onMouseDown:ht})),_e)},WalletModalProvider=({children:o,...e})=>{const[s,a]=reactExports.useState(!1);return React.createElement(WalletModalContext.Provider,{value:{visible:s,setVisible:a}},o,s&&React.createElement(WalletModal,{...e}))},LABELS={"change-wallet":"Change wallet",connecting:"Connecting ...","copy-address":"Copy address",copied:"Copied",disconnect:"Disconnect","has-wallet":"Connect","no-wallet":"Select Wallet"};function WalletMultiButton(o){return React.createElement(BaseWalletMultiButton,{...o,labels:LABELS})}var camelcase={exports:{}};const UPPERCASE=/[\p{Lu}]/u,LOWERCASE=/[\p{Ll}]/u,LEADING_CAPITAL=/^[\p{Lu}](?![\p{Lu}])/gu,IDENTIFIER=/([\p{Alpha}\p{N}_]|$)/u,SEPARATORS=/[_.\- ]+/,LEADING_SEPARATORS=new RegExp("^"+SEPARATORS.source),SEPARATORS_AND_IDENTIFIER=new RegExp(SEPARATORS.source+IDENTIFIER.source,"gu"),NUMBERS_AND_IDENTIFIER=new RegExp("\\d+"+IDENTIFIER.source,"gu"),preserveCamelCase=(o,e,s)=>{let a=!1,c=!1,d=!1;for(let h=0;h(LEADING_CAPITAL.lastIndex=0,o.replace(LEADING_CAPITAL,s=>e(s))),postProcess=(o,e)=>(SEPARATORS_AND_IDENTIFIER.lastIndex=0,NUMBERS_AND_IDENTIFIER.lastIndex=0,o.replace(SEPARATORS_AND_IDENTIFIER,(s,a)=>e(a)).replace(NUMBERS_AND_IDENTIFIER,s=>e(s))),camelCase=(o,e)=>{if(!(typeof o=="string"||Array.isArray(o)))throw new TypeError("Expected the input to be `string | string[]`");if(e={pascalCase:!1,preserveConsecutiveUppercase:!1,...e},Array.isArray(o)?o=o.map(d=>d.trim()).filter(d=>d.length).join("-"):o=o.trim(),o.length===0)return"";const s=e.locale===!1?d=>d.toLowerCase():d=>d.toLocaleLowerCase(e.locale),a=e.locale===!1?d=>d.toUpperCase():d=>d.toLocaleUpperCase(e.locale);return o.length===1?e.pascalCase?a(o):s(o):(o!==s(o)&&(o=preserveCamelCase(o,s,a)),o=o.replace(LEADING_SEPARATORS,""),e.preserveConsecutiveUppercase?o=preserveConsecutiveUppercase(o,s):o=s(o),e.pascalCase&&(o=a(o.charAt(0))+o.slice(1)),postProcess(o,a))};camelcase.exports=camelCase;camelcase.exports.default=camelCase;var camelcaseExports=camelcase.exports;const camelCase$1=getDefaultExportFromCjs$3(camelcaseExports);var dist$2={},Layout$3={};let Layout$2=class{constructor(e,s){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=s}makeDestinationObject(){return{}}decode(e,s){throw new Error("Layout is abstract")}encode(e,s,a){throw new Error("Layout is abstract")}getSpan(e,s){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const s=Object.create(this.constructor.prototype);return Object.assign(s,this),s.property=e,s}fromArray(e){}};Layout$3.Layout=Layout$2;function nameWithProperty$2(o,e){return e.property?o+"["+e.property+"]":o}Layout$3.nameWithProperty=nameWithProperty$2;function bindConstructorLayout(o,e){if(typeof o!="function")throw new TypeError("Class must be constructor");if(o.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(e&&e instanceof Layout$2))throw new TypeError("layout must be a Layout");if(e.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");o.layout_=e,e.boundConstructor_=o,e.makeDestinationObject=()=>new o,Object.defineProperty(o.prototype,"encode",{value:function(s,a){return e.encode(this,s,a)},writable:!0}),Object.defineProperty(o,"decode",{value:function(s,a){return e.decode(s,a)},writable:!0})}Layout$3.bindConstructorLayout=bindConstructorLayout;let ExternalLayout$2=class extends Layout$2{isCount(){throw new Error("ExternalLayout is abstract")}};class GreedyCount extends ExternalLayout$2{constructor(e,s){if(e===void 0&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,s),this.elementSpan=e}isCount(){return!0}decode(e,s){s===void 0&&(s=0);const a=e.length-s;return Math.floor(a/this.elementSpan)}encode(e,s,a){return 0}}let OffsetLayout$2=class extends ExternalLayout$2{constructor(e,s,a){if(!(e instanceof Layout$2))throw new TypeError("layout must be a Layout");if(s===void 0)s=0;else if(!Number.isInteger(s))throw new TypeError("offset must be integer or undefined");super(e.span,a||e.property),this.layout=e,this.offset=s}isCount(){return this.layout instanceof UInt$2||this.layout instanceof UIntBE$2}decode(e,s){return s===void 0&&(s=0),this.layout.decode(e,s+this.offset)}encode(e,s,a){return a===void 0&&(a=0),this.layout.encode(e,s,a+this.offset)}},UInt$2=class extends Layout$2{constructor(e,s){if(super(e,s),6h+c.encode(_,s,a+h),0);return this.count instanceof ExternalLayout$2&&this.count.encode(e.length,s,a),d}}let Structure$2=class extends Layout$2{constructor(e,s,a){if(!(Array.isArray(e)&&e.reduce((d,h)=>d&&h instanceof Layout$2,!0)))throw new TypeError("fields must be array of Layout instances");typeof s=="boolean"&&a===void 0&&(a=s,s=void 0);for(const d of e)if(0>d.span&&d.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let c=-1;try{c=e.reduce((d,h)=>d+h.getSpan(),0)}catch{}super(c,s),this.fields=e,this.decodePrefixes=!!a}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;try{a=this.fields.reduce((c,d)=>{const h=d.getSpan(e,s);return s+=h,c+h},0)}catch{throw new RangeError("indeterminate span")}return a}decode(e,s){s===void 0&&(s=0);const a=this.makeDestinationObject();for(const c of this.fields)if(c.property!==void 0&&(a[c.property]=c.decode(e,s)),s+=c.getSpan(e,s),this.decodePrefixes&&e.length===s)break;return a}encode(e,s,a){a===void 0&&(a=0);const c=a;let d=0,h=0;for(const _ of this.fields){let b=_.span;if(h=0b&&(b=_.getSpan(s,a)))}d=a,a+=b}return d+h-c}fromArray(e){const s=this.makeDestinationObject();for(const a of this.fields)a.property!==void 0&&0a.span?s=-1:0<=s&&(s+=a.span)}}},UnionDiscriminator$2=class{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}},UnionLayoutDiscriminator$2=class extends UnionDiscriminator$2{constructor(e,s){if(!(e instanceof ExternalLayout$2&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(s||e.property||"variant"),this.layout=e}decode(e,s){return this.layout.decode(e,s)}encode(e,s,a){return this.layout.encode(e,s,a)}},Union$2=class extends Layout$2{constructor(e,s,a){const c=e instanceof UInt$2||e instanceof UIntBE$2;if(c)e=new UnionLayoutDiscriminator$2(new OffsetLayout$2(e));else if(e instanceof ExternalLayout$2&&e.isCount())e=new UnionLayoutDiscriminator$2(e);else if(!(e instanceof UnionDiscriminator$2))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(s===void 0&&(s=null),!(s===null||s instanceof Layout$2))throw new TypeError("defaultLayout must be null or a Layout");if(s!==null){if(0>s.span)throw new Error("defaultLayout must have constant span");s.property===void 0&&(s=s.replicate("content"))}let d=-1;s&&(d=s.span,0<=d&&c&&(d+=e.layout.span)),super(d,a),this.discriminator=e,this.usesPrefixDiscriminator=c,this.defaultLayout=s,this.registry={};let h=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(_){return h(_)},this.configGetSourceVariant=function(_){h=_.bind(this)}}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);const a=this.getVariant(e,s);if(!a)throw new Error("unable to determine span for unrecognized variant");return a.getSpan(e,s)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const s=this.registry[e[this.discriminator.property]];if(s&&(!s.layout||e.hasOwnProperty(s.property)))return s}else for(const s in this.registry){const a=this.registry[s];if(e.hasOwnProperty(a.property))return a}throw new Error("unable to infer src variant")}decode(e,s){s===void 0&&(s=0);let a;const c=this.discriminator,d=c.decode(e,s);let h=this.registry[d];if(h===void 0){let _=0;h=this.defaultLayout,this.usesPrefixDiscriminator&&(_=c.layout.span),a=this.makeDestinationObject(),a[c.property]=d,a[h.property]=this.defaultLayout.decode(e,s+_)}else a=h.decode(e,s);return a}encode(e,s,a){a===void 0&&(a=0);const c=this.getSourceVariant(e);if(c===void 0){const d=this.discriminator,h=this.defaultLayout;let _=0;return this.usesPrefixDiscriminator&&(_=d.layout.span),d.encode(e[d.property],s,a),_+h.encode(e[h.property],s,a+_)}return c.encode(e,s,a)}addVariant(e,s,a){const c=new VariantLayout$2(this,e,s,a);return this.registry[e]=c,c}getVariant(e,s){let a=e;return Buffer.isBuffer(e)&&(s===void 0&&(s=0),a=this.discriminator.decode(e,s)),this.registry[a]}},VariantLayout$2=class extends Layout$2{constructor(e,s,a,c){if(!(e instanceof Union$2))throw new TypeError("union must be a Union");if(!Number.isInteger(s)||0>s)throw new TypeError("variant must be a (non-negative) integer");if(typeof a=="string"&&c===void 0&&(c=a,a=null),a){if(!(a instanceof Layout$2))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=a.span&&a.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof c!="string")throw new TypeError("variant must have a String property")}let d=e.span;0>e.span&&(d=a?a.span:0,0<=d&&e.usesPrefixDiscriminator&&(d+=e.discriminator.layout.span)),super(d,c),this.union=e,this.variant=s,this.layout=a||null}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;return this.union.usesPrefixDiscriminator&&(a=this.union.discriminator.layout.span),a+this.layout.getSpan(e,s+a)}decode(e,s){const a=this.makeDestinationObject();if(s===void 0&&(s=0),this!==this.union.getVariant(e,s))throw new Error("variant mismatch");let c=0;return this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout?a[this.property]=this.layout.decode(e,s+c):this.property?a[this.property]=!0:this.union.usesPrefixDiscriminator&&(a[this.union.discriminator.property]=this.variant),a}encode(e,s,a){a===void 0&&(a=0);let c=0;if(this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,s,a);let d=c;if(this.layout&&(this.layout.encode(e[this.property],s,a+c),d+=this.layout.getSpan(s,a+c),0<=this.union.span&&d>this.union.span))throw new Error("encoded variant overruns containing union");return d}fromArray(e){if(this.layout)return this.layout.fromArray(e)}};function fixBitwiseResult(o){return 0>o&&(o+=4294967296),o}class BitStructure extends Layout$2{constructor(e,s,a){if(!(e instanceof UInt$2||e instanceof UIntBE$2))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof s=="string"&&a===void 0&&(a=s,s=void 0),4=s)throw new TypeError("bits must be positive integer");const c=8*e.span,d=e.fields.reduce((h,_)=>h+_.bits,0);if(s+d>c)throw new Error("bits too long for span remainder ("+(c-d)+" of "+c+" remain)");this.container=e,this.bits=s,this.valueMask=(1<>>this.start}encode(e){if(!Number.isInteger(e)||e!==fixBitwiseResult(e&this.valueMask))throw new TypeError(nameWithProperty$2("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const s=this.container._packedGetValue(),a=fixBitwiseResult(e<a&&(a=this.length.decode(e,s)),a}decode(e,s){s===void 0&&(s=0);let a=this.span;return 0>a&&(a=this.length.decode(e,s)),e.slice(s,s+a)}encode(e,s,a){let c=this.length;if(this.length instanceof ExternalLayout$2&&(c=e.length),!(Buffer.isBuffer(e)&&c===e.length))throw new TypeError(nameWithProperty$2("Blob.encode",this)+" requires (length "+c+") Buffer as src");if(a+c>s.length)throw new RangeError("encoding overruns Buffer");return s.write(e.toString("hex"),a,c,"hex"),this.length instanceof ExternalLayout$2&&this.length.encode(c,s,a),c}};class CString extends Layout$2{constructor(e){super(-1,e)}getSpan(e,s){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");s===void 0&&(s=0);let a=s;for(;as.length)throw new RangeError("encoding overruns Buffer");return c.copy(s,a),s[a+d]=0,d+1}}class UTF8 extends Layout$2{constructor(e,s){if(typeof e=="string"&&s===void 0&&(s=e,e=void 0),e===void 0)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,s),this.maxSpan=e}getSpan(e,s){if(!Buffer.isBuffer(e))throw new TypeError("b must be a Buffer");return s===void 0&&(s=0),e.length-s}decode(e,s,a){s===void 0&&(s=0);let c=this.getSpan(e,s);if(0<=this.maxSpan&&this.maxSpans.length)throw new RangeError("encoding overruns Buffer");return c.copy(s,a),d}}class Constant extends Layout$2{constructor(e,s){super(0,s),this.value=e}decode(e,s,a){return this.value}encode(e,s,a){return 0}}Layout$3.ExternalLayout=ExternalLayout$2;Layout$3.GreedyCount=GreedyCount;Layout$3.OffsetLayout=OffsetLayout$2;Layout$3.UInt=UInt$2;Layout$3.UIntBE=UIntBE$2;Layout$3.Int=Int;Layout$3.IntBE=IntBE;Layout$3.Float=Float;Layout$3.FloatBE=FloatBE;Layout$3.Double=Double;Layout$3.DoubleBE=DoubleBE;Layout$3.Sequence=Sequence;Layout$3.Structure=Structure$2;Layout$3.UnionDiscriminator=UnionDiscriminator$2;Layout$3.UnionLayoutDiscriminator=UnionLayoutDiscriminator$2;Layout$3.Union=Union$2;Layout$3.VariantLayout=VariantLayout$2;Layout$3.BitStructure=BitStructure;Layout$3.BitField=BitField;Layout$3.Boolean=Boolean$1;Layout$3.Blob=Blob$2;Layout$3.CString=CString;Layout$3.UTF8=UTF8;Layout$3.Constant=Constant;Layout$3.greedy=(o,e)=>new GreedyCount(o,e);Layout$3.offset=(o,e,s)=>new OffsetLayout$2(o,e,s);Layout$3.u8=o=>new UInt$2(1,o);Layout$3.u16=o=>new UInt$2(2,o);Layout$3.u24=o=>new UInt$2(3,o);Layout$3.u32=o=>new UInt$2(4,o);Layout$3.u40=o=>new UInt$2(5,o);Layout$3.u48=o=>new UInt$2(6,o);Layout$3.nu64=o=>new NearUInt64$2(o);Layout$3.u16be=o=>new UIntBE$2(2,o);Layout$3.u24be=o=>new UIntBE$2(3,o);Layout$3.u32be=o=>new UIntBE$2(4,o);Layout$3.u40be=o=>new UIntBE$2(5,o);Layout$3.u48be=o=>new UIntBE$2(6,o);Layout$3.nu64be=o=>new NearUInt64BE(o);Layout$3.s8=o=>new Int(1,o);Layout$3.s16=o=>new Int(2,o);Layout$3.s24=o=>new Int(3,o);Layout$3.s32=o=>new Int(4,o);Layout$3.s40=o=>new Int(5,o);Layout$3.s48=o=>new Int(6,o);Layout$3.ns64=o=>new NearInt64$2(o);Layout$3.s16be=o=>new IntBE(2,o);Layout$3.s24be=o=>new IntBE(3,o);Layout$3.s32be=o=>new IntBE(4,o);Layout$3.s40be=o=>new IntBE(5,o);Layout$3.s48be=o=>new IntBE(6,o);Layout$3.ns64be=o=>new NearInt64BE(o);Layout$3.f32=o=>new Float(o);Layout$3.f32be=o=>new FloatBE(o);Layout$3.f64=o=>new Double(o);Layout$3.f64be=o=>new DoubleBE(o);Layout$3.struct=(o,e,s)=>new Structure$2(o,e,s);Layout$3.bits=(o,e,s)=>new BitStructure(o,e,s);Layout$3.seq=(o,e,s)=>new Sequence(o,e,s);Layout$3.union=(o,e,s)=>new Union$2(o,e,s);Layout$3.unionLayoutDiscriminator=(o,e)=>new UnionLayoutDiscriminator$2(o,e);Layout$3.blob=(o,e)=>new Blob$2(o,e);Layout$3.cstr=o=>new CString(o);Layout$3.utf8=(o,e)=>new UTF8(o,e);Layout$3.const=(o,e)=>new Constant(o,e);const require$$5=getAugmentedNamespace(index_browser_esm);(function(o){var e=commonjsGlobal$2&&commonjsGlobal$2.__importDefault||function(Ot){return Ot&&Ot.__esModule?Ot:{default:Ot}};Object.defineProperty(o,"__esModule",{value:!0}),o.map=o.array=o.rustEnum=o.str=o.vecU8=o.tagged=o.vec=o.bool=o.option=o.publicKey=o.i256=o.u256=o.i128=o.u128=o.i64=o.u64=o.struct=o.f64=o.f32=o.i32=o.u32=o.i16=o.u16=o.i8=o.u8=void 0;const s=Layout$3,a=require$$5,c=e(bnExports);var d=Layout$3;Object.defineProperty(o,"u8",{enumerable:!0,get:function(){return d.u8}}),Object.defineProperty(o,"i8",{enumerable:!0,get:function(){return d.s8}}),Object.defineProperty(o,"u16",{enumerable:!0,get:function(){return d.u16}}),Object.defineProperty(o,"i16",{enumerable:!0,get:function(){return d.s16}}),Object.defineProperty(o,"u32",{enumerable:!0,get:function(){return d.u32}}),Object.defineProperty(o,"i32",{enumerable:!0,get:function(){return d.s32}}),Object.defineProperty(o,"f32",{enumerable:!0,get:function(){return d.f32}}),Object.defineProperty(o,"f64",{enumerable:!0,get:function(){return d.f64}}),Object.defineProperty(o,"struct",{enumerable:!0,get:function(){return d.struct}});class h extends s.Layout{constructor(yt,j,et){super(yt,et),this.blob=(0,s.blob)(yt),this.signed=j}decode(yt,j=0){const et=new c.default(this.blob.decode(yt,j),10,"le");return this.signed?et.fromTwos(this.span*8).clone():et}encode(yt,j,et=0){return this.signed&&(yt=yt.toTwos(this.span*8)),this.blob.encode(yt.toArrayLike(Buffer,"le",this.span),j,et)}}function _(Ot){return new h(8,!1,Ot)}o.u64=_;function b(Ot){return new h(8,!0,Ot)}o.i64=b;function $(Ot){return new h(16,!1,Ot)}o.u128=$;function _e(Ot){return new h(16,!0,Ot)}o.i128=_e;function nt(Ot){return new h(32,!1,Ot)}o.u256=nt;function rt(Ot){return new h(32,!0,Ot)}o.i256=rt;class tt extends s.Layout{constructor(yt,j,et,at){super(yt.span,at),this.layout=yt,this.decoder=j,this.encoder=et}decode(yt,j){return this.decoder(this.layout.decode(yt,j))}encode(yt,j,et){return this.layout.encode(this.encoder(yt),j,et)}getSpan(yt,j){return this.layout.getSpan(yt,j)}}function ct(Ot){return new tt((0,s.blob)(32),yt=>new a.PublicKey(yt),yt=>yt.toBuffer(),Ot)}o.publicKey=ct;class ht extends s.Layout{constructor(yt,j){super(-1,j),this.layout=yt,this.discriminator=(0,s.u8)()}encode(yt,j,et=0){return yt==null?this.discriminator.encode(0,j,et):(this.discriminator.encode(1,j,et),this.layout.encode(yt,j,et+1)+1)}decode(yt,j=0){const et=this.discriminator.decode(yt,j);if(et===0)return null;if(et===1)return this.layout.decode(yt,j+1);throw new Error("Invalid option "+this.property)}getSpan(yt,j=0){const et=this.discriminator.decode(yt,j);if(et===0)return 1;if(et===1)return this.layout.getSpan(yt,j+1)+1;throw new Error("Invalid option "+this.property)}}function dt(Ot,yt){return new ht(Ot,yt)}o.option=dt;function lt(Ot){return new tt((0,s.u8)(),st,it,Ot)}o.bool=lt;function st(Ot){if(Ot===0)return!1;if(Ot===1)return!0;throw new Error("Invalid bool: "+Ot)}function it(Ot){return Ot?1:0}function _t(Ot,yt){const j=(0,s.u32)("length"),et=(0,s.struct)([j,(0,s.seq)(Ot,(0,s.offset)(j,-j.span),"values")]);return new tt(et,({values:at})=>at,at=>({values:at}),yt)}o.vec=_t;function St(Ot,yt,j){const et=(0,s.struct)([_("tag"),yt.replicate("data")]);function at({tag:pt,data:gt}){if(!pt.eq(Ot))throw new Error("Invalid tag, expected: "+Ot.toString("hex")+", got: "+pt.toString("hex"));return gt}return new tt(et,at,pt=>({tag:Ot,data:pt}),j)}o.tagged=St;function vt(Ot){const yt=(0,s.u32)("length"),j=(0,s.struct)([yt,(0,s.blob)((0,s.offset)(yt,-yt.span),"data")]);return new tt(j,({data:et})=>et,et=>({data:et}),Ot)}o.vecU8=vt;function At(Ot){return new tt(vt(),yt=>yt.toString("utf-8"),yt=>Buffer.from(yt,"utf-8"),Ot)}o.str=At;function It(Ot,yt,j){const et=(0,s.union)(j??(0,s.u8)(),yt);return Ot.forEach((at,pt)=>et.addVariant(pt,at,at.property)),et}o.rustEnum=It;function kt(Ot,yt,j){const et=(0,s.struct)([(0,s.seq)(Ot,yt,"values")]);return new tt(et,({values:at})=>at,at=>({values:at}),j)}o.array=kt;class xt extends s.Layout{constructor(yt,j,et){super(yt.span+j.span,et),this.keyLayout=yt,this.valueLayout=j}decode(yt,j){j=j||0;const et=this.keyLayout.decode(yt,j),at=this.valueLayout.decode(yt,j+this.keyLayout.getSpan(yt,j));return[et,at]}encode(yt,j,et){et=et||0;const at=this.keyLayout.encode(yt[0],j,et),pt=this.valueLayout.encode(yt[1],j,et+at);return at+pt}getSpan(yt,j){return this.keyLayout.getSpan(yt,j)+this.valueLayout.getSpan(yt,j)}}function $t(Ot,yt,j){const et=(0,s.u32)("length"),at=(0,s.struct)([et,(0,s.seq)(new xt(Ot,yt),(0,s.offset)(et,-et.span),"values")]);return new tt(at,({values:pt})=>new Map(pt),pt=>({values:Array.from(pt.entries())}),j)}o.map=$t})(dist$2);/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(o){let e=o.length;for(;--e>=0;)o[e]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),extra_dbits=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(o,e,s,a,c){this.static_tree=o,this.extra_bits=e,this.extra_base=s,this.elems=a,this.max_length=c,this.has_stree=o&&o.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(o,e){this.dyn_tree=o,this.max_code=0,this.stat_desc=e}const d_code=o=>o<256?_dist_code[o]:_dist_code[256+(o>>>7)],put_short=(o,e)=>{o.pending_buf[o.pending++]=e&255,o.pending_buf[o.pending++]=e>>>8&255},send_bits=(o,e,s)=>{o.bi_valid>Buf_size-s?(o.bi_buf|=e<>Buf_size-o.bi_valid,o.bi_valid+=s-Buf_size):(o.bi_buf|=e<{send_bits(o,s[e*2],s[e*2+1])},bi_reverse=(o,e)=>{let s=0;do s|=o&1,o>>>=1,s<<=1;while(--e>0);return s>>>1},bi_flush=o=>{o.bi_valid===16?(put_short(o,o.bi_buf),o.bi_buf=0,o.bi_valid=0):o.bi_valid>=8&&(o.pending_buf[o.pending++]=o.bi_buf&255,o.bi_buf>>=8,o.bi_valid-=8)},gen_bitlen=(o,e)=>{const s=e.dyn_tree,a=e.max_code,c=e.stat_desc.static_tree,d=e.stat_desc.has_stree,h=e.stat_desc.extra_bits,_=e.stat_desc.extra_base,b=e.stat_desc.max_length;let $,_e,nt,rt,tt,ct,ht=0;for(rt=0;rt<=MAX_BITS$1;rt++)o.bl_count[rt]=0;for(s[o.heap[o.heap_max]*2+1]=0,$=o.heap_max+1;$b&&(rt=b,ht++),s[_e*2+1]=rt,!(_e>a)&&(o.bl_count[rt]++,tt=0,_e>=_&&(tt=h[_e-_]),ct=s[_e*2],o.opt_len+=ct*(rt+tt),d&&(o.static_len+=ct*(c[_e*2+1]+tt)));if(ht!==0){do{for(rt=b-1;o.bl_count[rt]===0;)rt--;o.bl_count[rt]--,o.bl_count[rt+1]+=2,o.bl_count[b]--,ht-=2}while(ht>0);for(rt=b;rt!==0;rt--)for(_e=o.bl_count[rt];_e!==0;)nt=o.heap[--$],!(nt>a)&&(s[nt*2+1]!==rt&&(o.opt_len+=(rt-s[nt*2+1])*s[nt*2],s[nt*2+1]=rt),_e--)}},gen_codes=(o,e,s)=>{const a=new Array(MAX_BITS$1+1);let c=0,d,h;for(d=1;d<=MAX_BITS$1;d++)c=c+s[d-1]<<1,a[d]=c;for(h=0;h<=e;h++){let _=o[h*2+1];_!==0&&(o[h*2]=bi_reverse(a[_]++,_))}},tr_static_init=()=>{let o,e,s,a,c;const d=new Array(MAX_BITS$1+1);for(s=0,a=0;a>=7;a{let e;for(e=0;e{o.bi_valid>8?put_short(o,o.bi_buf):o.bi_valid>0&&(o.pending_buf[o.pending++]=o.bi_buf),o.bi_buf=0,o.bi_valid=0},smaller=(o,e,s,a)=>{const c=e*2,d=s*2;return o[c]{const a=o.heap[s];let c=s<<1;for(;c<=o.heap_len&&(c{let a,c,d=0,h,_;if(o.sym_next!==0)do a=o.pending_buf[o.sym_buf+d++]&255,a+=(o.pending_buf[o.sym_buf+d++]&255)<<8,c=o.pending_buf[o.sym_buf+d++],a===0?send_code(o,c,e):(h=_length_code[c],send_code(o,h+LITERALS$1+1,e),_=extra_lbits[h],_!==0&&(c-=base_length[h],send_bits(o,c,_)),a--,h=d_code(a),send_code(o,h,s),_=extra_dbits[h],_!==0&&(a-=base_dist[h],send_bits(o,a,_)));while(d{const s=e.dyn_tree,a=e.stat_desc.static_tree,c=e.stat_desc.has_stree,d=e.stat_desc.elems;let h,_,b=-1,$;for(o.heap_len=0,o.heap_max=HEAP_SIZE$1,h=0;h>1;h>=1;h--)pqdownheap(o,s,h);$=d;do h=o.heap[1],o.heap[1]=o.heap[o.heap_len--],pqdownheap(o,s,1),_=o.heap[1],o.heap[--o.heap_max]=h,o.heap[--o.heap_max]=_,s[$*2]=s[h*2]+s[_*2],o.depth[$]=(o.depth[h]>=o.depth[_]?o.depth[h]:o.depth[_])+1,s[h*2+1]=s[_*2+1]=$,o.heap[1]=$++,pqdownheap(o,s,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],gen_bitlen(o,e),gen_codes(s,b,o.bl_count)},scan_tree=(o,e,s)=>{let a,c=-1,d,h=e[0*2+1],_=0,b=7,$=4;for(h===0&&(b=138,$=3),e[(s+1)*2+1]=65535,a=0;a<=s;a++)d=h,h=e[(a+1)*2+1],!(++_{let a,c=-1,d,h=e[0*2+1],_=0,b=7,$=4;for(h===0&&(b=138,$=3),a=0;a<=s;a++)if(d=h,h=e[(a+1)*2+1],!(++_{let e;for(scan_tree(o,o.dyn_ltree,o.l_desc.max_code),scan_tree(o,o.dyn_dtree,o.d_desc.max_code),build_tree(o,o.bl_desc),e=BL_CODES$1-1;e>=3&&o.bl_tree[bl_order[e]*2+1]===0;e--);return o.opt_len+=3*(e+1)+5+5+4,e},send_all_trees=(o,e,s,a)=>{let c;for(send_bits(o,e-257,5),send_bits(o,s-1,5),send_bits(o,a-4,4),c=0;c{let e=4093624447,s;for(s=0;s<=31;s++,e>>>=1)if(e&1&&o.dyn_ltree[s*2]!==0)return Z_BINARY;if(o.dyn_ltree[9*2]!==0||o.dyn_ltree[10*2]!==0||o.dyn_ltree[13*2]!==0)return Z_TEXT;for(s=32;s{static_init_done||(tr_static_init(),static_init_done=!0),o.l_desc=new TreeDesc(o.dyn_ltree,static_l_desc),o.d_desc=new TreeDesc(o.dyn_dtree,static_d_desc),o.bl_desc=new TreeDesc(o.bl_tree,static_bl_desc),o.bi_buf=0,o.bi_valid=0,init_block(o)},_tr_stored_block$1=(o,e,s,a)=>{send_bits(o,(STORED_BLOCK<<1)+(a?1:0),3),bi_windup(o),put_short(o,s),put_short(o,~s),s&&o.pending_buf.set(o.window.subarray(e,e+s),o.pending),o.pending+=s},_tr_align$1=o=>{send_bits(o,STATIC_TREES<<1,3),send_code(o,END_BLOCK,static_ltree),bi_flush(o)},_tr_flush_block$1=(o,e,s,a)=>{let c,d,h=0;o.level>0?(o.strm.data_type===Z_UNKNOWN$1&&(o.strm.data_type=detect_data_type(o)),build_tree(o,o.l_desc),build_tree(o,o.d_desc),h=build_bl_tree(o),c=o.opt_len+3+7>>>3,d=o.static_len+3+7>>>3,d<=c&&(c=d)):c=d=s+5,s+4<=c&&e!==-1?_tr_stored_block$1(o,e,s,a):o.strategy===Z_FIXED$1||d===c?(send_bits(o,(STATIC_TREES<<1)+(a?1:0),3),compress_block(o,static_ltree,static_dtree)):(send_bits(o,(DYN_TREES<<1)+(a?1:0),3),send_all_trees(o,o.l_desc.max_code+1,o.d_desc.max_code+1,h+1),compress_block(o,o.dyn_ltree,o.dyn_dtree)),init_block(o),a&&bi_windup(o)},_tr_tally$1=(o,e,s)=>(o.pending_buf[o.sym_buf+o.sym_next++]=e,o.pending_buf[o.sym_buf+o.sym_next++]=e>>8,o.pending_buf[o.sym_buf+o.sym_next++]=s,e===0?o.dyn_ltree[s*2]++:(o.matches++,e--,o.dyn_ltree[(_length_code[s]+LITERALS$1+1)*2]++,o.dyn_dtree[d_code(e)*2]++),o.sym_next===o.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(o,e,s,a)=>{let c=o&65535|0,d=o>>>16&65535|0,h=0;for(;s!==0;){h=s>2e3?2e3:s,s-=h;do c=c+e[a++]|0,d=d+c|0;while(--h);c%=65521,d%=65521}return c|d<<16|0};var adler32_1=adler32;const makeTable=()=>{let o,e=[];for(var s=0;s<256;s++){o=s;for(var a=0;a<8;a++)o=o&1?3988292384^o>>>1:o>>>1;e[s]=o}return e},crcTable=new Uint32Array(makeTable()),crc32=(o,e,s,a)=>{const c=crcTable,d=a+s;o^=-1;for(let h=a;h>>8^c[(o^e[h])&255];return o^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(o,e)=>(o.msg=messages[e],e),rank=o=>o*2-(o>4?9:0),zero=o=>{let e=o.length;for(;--e>=0;)o[e]=0},slide_hash=o=>{let e,s,a,c=o.w_size;e=o.hash_size,a=e;do s=o.head[--a],o.head[a]=s>=c?s-c:0;while(--e);e=c,a=e;do s=o.prev[--a],o.prev[a]=s>=c?s-c:0;while(--e)};let HASH_ZLIB=(o,e,s)=>(e<{const e=o.state;let s=e.pending;s>o.avail_out&&(s=o.avail_out),s!==0&&(o.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+s),o.next_out),o.next_out+=s,e.pending_out+=s,o.total_out+=s,o.avail_out-=s,e.pending-=s,e.pending===0&&(e.pending_out=0))},flush_block_only=(o,e)=>{_tr_flush_block(o,o.block_start>=0?o.block_start:-1,o.strstart-o.block_start,e),o.block_start=o.strstart,flush_pending(o.strm)},put_byte=(o,e)=>{o.pending_buf[o.pending++]=e},putShortMSB=(o,e)=>{o.pending_buf[o.pending++]=e>>>8&255,o.pending_buf[o.pending++]=e&255},read_buf=(o,e,s,a)=>{let c=o.avail_in;return c>a&&(c=a),c===0?0:(o.avail_in-=c,e.set(o.input.subarray(o.next_in,o.next_in+c),s),o.state.wrap===1?o.adler=adler32_1(o.adler,e,c,s):o.state.wrap===2&&(o.adler=crc32_1(o.adler,e,c,s)),o.next_in+=c,o.total_in+=c,c)},longest_match=(o,e)=>{let s=o.max_chain_length,a=o.strstart,c,d,h=o.prev_length,_=o.nice_match;const b=o.strstart>o.w_size-MIN_LOOKAHEAD?o.strstart-(o.w_size-MIN_LOOKAHEAD):0,$=o.window,_e=o.w_mask,nt=o.prev,rt=o.strstart+MAX_MATCH;let tt=$[a+h-1],ct=$[a+h];o.prev_length>=o.good_match&&(s>>=2),_>o.lookahead&&(_=o.lookahead);do if(c=e,!($[c+h]!==ct||$[c+h-1]!==tt||$[c]!==$[a]||$[++c]!==$[a+1])){a+=2,c++;do;while($[++a]===$[++c]&&$[++a]===$[++c]&&$[++a]===$[++c]&&$[++a]===$[++c]&&$[++a]===$[++c]&&$[++a]===$[++c]&&$[++a]===$[++c]&&$[++a]===$[++c]&&ah){if(o.match_start=e,h=d,d>=_)break;tt=$[a+h-1],ct=$[a+h]}}while((e=nt[e&_e])>b&&--s!==0);return h<=o.lookahead?h:o.lookahead},fill_window=o=>{const e=o.w_size;let s,a,c;do{if(a=o.window_size-o.lookahead-o.strstart,o.strstart>=e+(e-MIN_LOOKAHEAD)&&(o.window.set(o.window.subarray(e,e+e-a),0),o.match_start-=e,o.strstart-=e,o.block_start-=e,o.insert>o.strstart&&(o.insert=o.strstart),slide_hash(o),a+=e),o.strm.avail_in===0)break;if(s=read_buf(o.strm,o.window,o.strstart+o.lookahead,a),o.lookahead+=s,o.lookahead+o.insert>=MIN_MATCH)for(c=o.strstart-o.insert,o.ins_h=o.window[c],o.ins_h=HASH(o,o.ins_h,o.window[c+1]);o.insert&&(o.ins_h=HASH(o,o.ins_h,o.window[c+MIN_MATCH-1]),o.prev[c&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=c,c++,o.insert--,!(o.lookahead+o.insert{let s=o.pending_buf_size-5>o.w_size?o.w_size:o.pending_buf_size-5,a,c,d,h=0,_=o.strm.avail_in;do{if(a=65535,d=o.bi_valid+42>>3,o.strm.avail_outc+o.strm.avail_in&&(a=c+o.strm.avail_in),a>d&&(a=d),a>8,o.pending_buf[o.pending-2]=~a,o.pending_buf[o.pending-1]=~a>>8,flush_pending(o.strm),c&&(c>a&&(c=a),o.strm.output.set(o.window.subarray(o.block_start,o.block_start+c),o.strm.next_out),o.strm.next_out+=c,o.strm.avail_out-=c,o.strm.total_out+=c,o.block_start+=c,a-=c),a&&(read_buf(o.strm,o.strm.output,o.strm.next_out,a),o.strm.next_out+=a,o.strm.avail_out-=a,o.strm.total_out+=a)}while(h===0);return _-=o.strm.avail_in,_&&(_>=o.w_size?(o.matches=2,o.window.set(o.strm.input.subarray(o.strm.next_in-o.w_size,o.strm.next_in),0),o.strstart=o.w_size,o.insert=o.strstart):(o.window_size-o.strstart<=_&&(o.strstart-=o.w_size,o.window.set(o.window.subarray(o.w_size,o.w_size+o.strstart),0),o.matches<2&&o.matches++,o.insert>o.strstart&&(o.insert=o.strstart)),o.window.set(o.strm.input.subarray(o.strm.next_in-_,o.strm.next_in),o.strstart),o.strstart+=_,o.insert+=_>o.w_size-o.insert?o.w_size-o.insert:_),o.block_start=o.strstart),o.high_waterd&&o.block_start>=o.w_size&&(o.block_start-=o.w_size,o.strstart-=o.w_size,o.window.set(o.window.subarray(o.w_size,o.w_size+o.strstart),0),o.matches<2&&o.matches++,d+=o.w_size,o.insert>o.strstart&&(o.insert=o.strstart)),d>o.strm.avail_in&&(d=o.strm.avail_in),d&&(read_buf(o.strm,o.window,o.strstart,d),o.strstart+=d,o.insert+=d>o.w_size-o.insert?o.w_size-o.insert:d),o.high_water>3,d=o.pending_buf_size-d>65535?65535:o.pending_buf_size-d,s=d>o.w_size?o.w_size:d,c=o.strstart-o.block_start,(c>=s||(c||e===Z_FINISH$3)&&e!==Z_NO_FLUSH$2&&o.strm.avail_in===0&&c<=d)&&(a=c>d?d:c,h=e===Z_FINISH$3&&o.strm.avail_in===0&&a===c?1:0,_tr_stored_block(o,o.block_start,a,h),o.block_start+=a,flush_pending(o.strm)),h?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(o,e)=>{let s,a;for(;;){if(o.lookahead=MIN_MATCH&&(o.ins_h=HASH(o,o.ins_h,o.window[o.strstart+MIN_MATCH-1]),s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart),s!==0&&o.strstart-s<=o.w_size-MIN_LOOKAHEAD&&(o.match_length=longest_match(o,s)),o.match_length>=MIN_MATCH)if(a=_tr_tally(o,o.strstart-o.match_start,o.match_length-MIN_MATCH),o.lookahead-=o.match_length,o.match_length<=o.max_lazy_match&&o.lookahead>=MIN_MATCH){o.match_length--;do o.strstart++,o.ins_h=HASH(o,o.ins_h,o.window[o.strstart+MIN_MATCH-1]),s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart;while(--o.match_length!==0);o.strstart++}else o.strstart+=o.match_length,o.match_length=0,o.ins_h=o.window[o.strstart],o.ins_h=HASH(o,o.ins_h,o.window[o.strstart+1]);else a=_tr_tally(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++;if(a&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}return o.insert=o.strstart{let s,a,c;for(;;){if(o.lookahead=MIN_MATCH&&(o.ins_h=HASH(o,o.ins_h,o.window[o.strstart+MIN_MATCH-1]),s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart),o.prev_length=o.match_length,o.prev_match=o.match_start,o.match_length=MIN_MATCH-1,s!==0&&o.prev_length4096)&&(o.match_length=MIN_MATCH-1)),o.prev_length>=MIN_MATCH&&o.match_length<=o.prev_length){c=o.strstart+o.lookahead-MIN_MATCH,a=_tr_tally(o,o.strstart-1-o.prev_match,o.prev_length-MIN_MATCH),o.lookahead-=o.prev_length-1,o.prev_length-=2;do++o.strstart<=c&&(o.ins_h=HASH(o,o.ins_h,o.window[o.strstart+MIN_MATCH-1]),s=o.prev[o.strstart&o.w_mask]=o.head[o.ins_h],o.head[o.ins_h]=o.strstart);while(--o.prev_length!==0);if(o.match_available=0,o.match_length=MIN_MATCH-1,o.strstart++,a&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}else if(o.match_available){if(a=_tr_tally(o,0,o.window[o.strstart-1]),a&&flush_block_only(o,!1),o.strstart++,o.lookahead--,o.strm.avail_out===0)return BS_NEED_MORE}else o.match_available=1,o.strstart++,o.lookahead--}return o.match_available&&(a=_tr_tally(o,0,o.window[o.strstart-1]),o.match_available=0),o.insert=o.strstart{let s,a,c,d;const h=o.window;for(;;){if(o.lookahead<=MAX_MATCH){if(fill_window(o),o.lookahead<=MAX_MATCH&&e===Z_NO_FLUSH$2)return BS_NEED_MORE;if(o.lookahead===0)break}if(o.match_length=0,o.lookahead>=MIN_MATCH&&o.strstart>0&&(c=o.strstart-1,a=h[c],a===h[++c]&&a===h[++c]&&a===h[++c])){d=o.strstart+MAX_MATCH;do;while(a===h[++c]&&a===h[++c]&&a===h[++c]&&a===h[++c]&&a===h[++c]&&a===h[++c]&&a===h[++c]&&a===h[++c]&&co.lookahead&&(o.match_length=o.lookahead)}if(o.match_length>=MIN_MATCH?(s=_tr_tally(o,1,o.match_length-MIN_MATCH),o.lookahead-=o.match_length,o.strstart+=o.match_length,o.match_length=0):(s=_tr_tally(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++),s&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}return o.insert=0,e===Z_FINISH$3?(flush_block_only(o,!0),o.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):o.sym_next&&(flush_block_only(o,!1),o.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(o,e)=>{let s;for(;;){if(o.lookahead===0&&(fill_window(o),o.lookahead===0)){if(e===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(o.match_length=0,s=_tr_tally(o,0,o.window[o.strstart]),o.lookahead--,o.strstart++,s&&(flush_block_only(o,!1),o.strm.avail_out===0))return BS_NEED_MORE}return o.insert=0,e===Z_FINISH$3?(flush_block_only(o,!0),o.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):o.sym_next&&(flush_block_only(o,!1),o.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(o,e,s,a,c){this.good_length=o,this.max_lazy=e,this.nice_length=s,this.max_chain=a,this.func=c}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=o=>{o.window_size=2*o.w_size,zero(o.head),o.max_lazy_match=configuration_table[o.level].max_lazy,o.good_match=configuration_table[o.level].good_length,o.nice_match=configuration_table[o.level].nice_length,o.max_chain_length=configuration_table[o.level].max_chain,o.strstart=0,o.block_start=0,o.lookahead=0,o.insert=0,o.match_length=o.prev_length=MIN_MATCH-1,o.match_available=0,o.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=o=>{if(!o)return 1;const e=o.state;return!e||e.strm!==o||e.status!==INIT_STATE&&e.status!==GZIP_STATE&&e.status!==EXTRA_STATE&&e.status!==NAME_STATE&&e.status!==COMMENT_STATE&&e.status!==HCRC_STATE&&e.status!==BUSY_STATE&&e.status!==FINISH_STATE?1:0},deflateResetKeep=o=>{if(deflateStateCheck(o))return err(o,Z_STREAM_ERROR$2);o.total_in=o.total_out=0,o.data_type=Z_UNKNOWN;const e=o.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?GZIP_STATE:e.wrap?INIT_STATE:BUSY_STATE,o.adler=e.wrap===2?0:1,e.last_flush=-2,_tr_init(e),Z_OK$3},deflateReset=o=>{const e=deflateResetKeep(o);return e===Z_OK$3&&lm_init(o.state),e},deflateSetHeader=(o,e)=>deflateStateCheck(o)||o.state.wrap!==2?Z_STREAM_ERROR$2:(o.state.gzhead=e,Z_OK$3),deflateInit2=(o,e,s,a,c,d)=>{if(!o)return Z_STREAM_ERROR$2;let h=1;if(e===Z_DEFAULT_COMPRESSION$1&&(e=6),a<0?(h=0,a=-a):a>15&&(h=2,a-=16),c<1||c>MAX_MEM_LEVEL||s!==Z_DEFLATED$2||a<8||a>15||e<0||e>9||d<0||d>Z_FIXED||a===8&&h!==1)return err(o,Z_STREAM_ERROR$2);a===8&&(a=9);const _=new DeflateState;return o.state=_,_.strm=o,_.status=INIT_STATE,_.wrap=h,_.gzhead=null,_.w_bits=a,_.w_size=1<<_.w_bits,_.w_mask=_.w_size-1,_.hash_bits=c+7,_.hash_size=1<<_.hash_bits,_.hash_mask=_.hash_size-1,_.hash_shift=~~((_.hash_bits+MIN_MATCH-1)/MIN_MATCH),_.window=new Uint8Array(_.w_size*2),_.head=new Uint16Array(_.hash_size),_.prev=new Uint16Array(_.w_size),_.lit_bufsize=1<deflateInit2(o,e,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(o,e)=>{if(deflateStateCheck(o)||e>Z_BLOCK$1||e<0)return o?err(o,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const s=o.state;if(!o.output||o.avail_in!==0&&!o.input||s.status===FINISH_STATE&&e!==Z_FINISH$3)return err(o,o.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const a=s.last_flush;if(s.last_flush=e,s.pending!==0){if(flush_pending(o),o.avail_out===0)return s.last_flush=-1,Z_OK$3}else if(o.avail_in===0&&rank(e)<=rank(a)&&e!==Z_FINISH$3)return err(o,Z_BUF_ERROR$1);if(s.status===FINISH_STATE&&o.avail_in!==0)return err(o,Z_BUF_ERROR$1);if(s.status===INIT_STATE&&s.wrap===0&&(s.status=BUSY_STATE),s.status===INIT_STATE){let c=Z_DEFLATED$2+(s.w_bits-8<<4)<<8,d=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2?d=0:s.level<6?d=1:s.level===6?d=2:d=3,c|=d<<6,s.strstart!==0&&(c|=PRESET_DICT),c+=31-c%31,putShortMSB(s,c),s.strstart!==0&&(putShortMSB(s,o.adler>>>16),putShortMSB(s,o.adler&65535)),o.adler=1,s.status=BUSY_STATE,flush_pending(o),s.pending!==0)return s.last_flush=-1,Z_OK$3}if(s.status===GZIP_STATE){if(o.adler=0,put_byte(s,31),put_byte(s,139),put_byte(s,8),s.gzhead)put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),put_byte(s,s.gzhead.time&255),put_byte(s,s.gzhead.time>>8&255),put_byte(s,s.gzhead.time>>16&255),put_byte(s,s.gzhead.time>>24&255),put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,s.gzhead.os&255),s.gzhead.extra&&s.gzhead.extra.length&&(put_byte(s,s.gzhead.extra.length&255),put_byte(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(o.adler=crc32_1(o.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=EXTRA_STATE;else if(put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,OS_CODE),s.status=BUSY_STATE,flush_pending(o),s.pending!==0)return s.last_flush=-1,Z_OK$3}if(s.status===EXTRA_STATE){if(s.gzhead.extra){let c=s.pending,d=(s.gzhead.extra.length&65535)-s.gzindex;for(;s.pending+d>s.pending_buf_size;){let _=s.pending_buf_size-s.pending;if(s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex,s.gzindex+_),s.pending),s.pending=s.pending_buf_size,s.gzhead.hcrc&&s.pending>c&&(o.adler=crc32_1(o.adler,s.pending_buf,s.pending-c,c)),s.gzindex+=_,flush_pending(o),s.pending!==0)return s.last_flush=-1,Z_OK$3;c=0,d-=_}let h=new Uint8Array(s.gzhead.extra);s.pending_buf.set(h.subarray(s.gzindex,s.gzindex+d),s.pending),s.pending+=d,s.gzhead.hcrc&&s.pending>c&&(o.adler=crc32_1(o.adler,s.pending_buf,s.pending-c,c)),s.gzindex=0}s.status=NAME_STATE}if(s.status===NAME_STATE){if(s.gzhead.name){let c=s.pending,d;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>c&&(o.adler=crc32_1(o.adler,s.pending_buf,s.pending-c,c)),flush_pending(o),s.pending!==0)return s.last_flush=-1,Z_OK$3;c=0}s.gzindexc&&(o.adler=crc32_1(o.adler,s.pending_buf,s.pending-c,c)),s.gzindex=0}s.status=COMMENT_STATE}if(s.status===COMMENT_STATE){if(s.gzhead.comment){let c=s.pending,d;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>c&&(o.adler=crc32_1(o.adler,s.pending_buf,s.pending-c,c)),flush_pending(o),s.pending!==0)return s.last_flush=-1,Z_OK$3;c=0}s.gzindexc&&(o.adler=crc32_1(o.adler,s.pending_buf,s.pending-c,c))}s.status=HCRC_STATE}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size&&(flush_pending(o),s.pending!==0))return s.last_flush=-1,Z_OK$3;put_byte(s,o.adler&255),put_byte(s,o.adler>>8&255),o.adler=0}if(s.status=BUSY_STATE,flush_pending(o),s.pending!==0)return s.last_flush=-1,Z_OK$3}if(o.avail_in!==0||s.lookahead!==0||e!==Z_NO_FLUSH$2&&s.status!==FINISH_STATE){let c=s.level===0?deflate_stored(s,e):s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,e):s.strategy===Z_RLE?deflate_rle(s,e):configuration_table[s.level].func(s,e);if((c===BS_FINISH_STARTED||c===BS_FINISH_DONE)&&(s.status=FINISH_STATE),c===BS_NEED_MORE||c===BS_FINISH_STARTED)return o.avail_out===0&&(s.last_flush=-1),Z_OK$3;if(c===BS_BLOCK_DONE&&(e===Z_PARTIAL_FLUSH?_tr_align(s):e!==Z_BLOCK$1&&(_tr_stored_block(s,0,0,!1),e===Z_FULL_FLUSH$1&&(zero(s.head),s.lookahead===0&&(s.strstart=0,s.block_start=0,s.insert=0))),flush_pending(o),o.avail_out===0))return s.last_flush=-1,Z_OK$3}return e!==Z_FINISH$3?Z_OK$3:s.wrap<=0?Z_STREAM_END$3:(s.wrap===2?(put_byte(s,o.adler&255),put_byte(s,o.adler>>8&255),put_byte(s,o.adler>>16&255),put_byte(s,o.adler>>24&255),put_byte(s,o.total_in&255),put_byte(s,o.total_in>>8&255),put_byte(s,o.total_in>>16&255),put_byte(s,o.total_in>>24&255)):(putShortMSB(s,o.adler>>>16),putShortMSB(s,o.adler&65535)),flush_pending(o),s.wrap>0&&(s.wrap=-s.wrap),s.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=o=>{if(deflateStateCheck(o))return Z_STREAM_ERROR$2;const e=o.state.status;return o.state=null,e===BUSY_STATE?err(o,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(o,e)=>{let s=e.length;if(deflateStateCheck(o))return Z_STREAM_ERROR$2;const a=o.state,c=a.wrap;if(c===2||c===1&&a.status!==INIT_STATE||a.lookahead)return Z_STREAM_ERROR$2;if(c===1&&(o.adler=adler32_1(o.adler,e,s,0)),a.wrap=0,s>=a.w_size){c===0&&(zero(a.head),a.strstart=0,a.block_start=0,a.insert=0);let b=new Uint8Array(a.w_size);b.set(e.subarray(s-a.w_size,s),0),e=b,s=a.w_size}const d=o.avail_in,h=o.next_in,_=o.input;for(o.avail_in=s,o.next_in=0,o.input=e,fill_window(a);a.lookahead>=MIN_MATCH;){let b=a.strstart,$=a.lookahead-(MIN_MATCH-1);do a.ins_h=HASH(a,a.ins_h,a.window[b+MIN_MATCH-1]),a.prev[b&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=b,b++;while(--$);a.strstart=b,a.lookahead=MIN_MATCH-1,fill_window(a)}return a.strstart+=a.lookahead,a.block_start=a.strstart,a.insert=a.lookahead,a.lookahead=0,a.match_length=a.prev_length=MIN_MATCH-1,a.match_available=0,o.next_in=h,o.input=_,o.avail_in=d,a.wrap=c,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var assign=function(o){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const s=e.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(const a in s)_has(s,a)&&(o[a]=s[a])}}return o},flattenChunks=o=>{let e=0;for(let a=0,c=o.length;a=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=o=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(o);let e,s,a,c,d,h=o.length,_=0;for(c=0;c>>6,e[d++]=128|s&63):s<65536?(e[d++]=224|s>>>12,e[d++]=128|s>>>6&63,e[d++]=128|s&63):(e[d++]=240|s>>>18,e[d++]=128|s>>>12&63,e[d++]=128|s>>>6&63,e[d++]=128|s&63);return e};const buf2binstring=(o,e)=>{if(e<65534&&o.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,o.length===e?o:o.subarray(0,e));let s="";for(let a=0;a{const s=e||o.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(o.subarray(0,e));let a,c;const d=new Array(s*2);for(c=0,a=0;a4){d[c++]=65533,a+=_-1;continue}for(h&=_===2?31:_===3?15:7;_>1&&a1){d[c++]=65533;continue}h<65536?d[c++]=h:(h-=65536,d[c++]=55296|h>>10&1023,d[c++]=56320|h&1023)}return buf2binstring(d,c)},utf8border=(o,e)=>{e=e||o.length,e>o.length&&(e=o.length);let s=e-1;for(;s>=0&&(o[s]&192)===128;)s--;return s<0||s===0?e:s+_utf8len[o[s]]>e?s:e},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(o){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},o||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let s=deflate_1$2.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(s!==Z_OK$2)throw new Error(messages[s]);if(e.header&&deflate_1$2.deflateSetHeader(this.strm,e.header),e.dictionary){let a;if(typeof e.dictionary=="string"?a=strings.string2buf(e.dictionary):toString$1.call(e.dictionary)==="[object ArrayBuffer]"?a=new Uint8Array(e.dictionary):a=e.dictionary,s=deflate_1$2.deflateSetDictionary(this.strm,a),s!==Z_OK$2)throw new Error(messages[s]);this._dict_set=!0}}Deflate$1.prototype.push=function(o,e){const s=this.strm,a=this.options.chunkSize;let c,d;if(this.ended)return!1;for(e===~~e?d=e:d=e===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof o=="string"?s.input=strings.string2buf(o):toString$1.call(o)==="[object ArrayBuffer]"?s.input=new Uint8Array(o):s.input=o,s.next_in=0,s.avail_in=s.input.length;;){if(s.avail_out===0&&(s.output=new Uint8Array(a),s.next_out=0,s.avail_out=a),(d===Z_SYNC_FLUSH||d===Z_FULL_FLUSH)&&s.avail_out<=6){this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;continue}if(c=deflate_1$2.deflate(s,d),c===Z_STREAM_END$2)return s.next_out>0&&this.onData(s.output.subarray(0,s.next_out)),c=deflate_1$2.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===Z_OK$2;if(s.avail_out===0){this.onData(s.output);continue}if(d>0&&s.next_out>0){this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;continue}if(s.avail_in===0)break}return!0};Deflate$1.prototype.onData=function(o){this.chunks.push(o)};Deflate$1.prototype.onEnd=function(o){o===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=o,this.msg=this.strm.msg};const BAD$1=16209,TYPE$1=16191;var inffast=function(e,s){let a,c,d,h,_,b,$,_e,nt,rt,tt,ct,ht,dt,lt,st,it,_t,St,vt,At,It,kt,xt;const $t=e.state;a=e.next_in,kt=e.input,c=a+(e.avail_in-5),d=e.next_out,xt=e.output,h=d-(s-e.avail_out),_=d+(e.avail_out-257),b=$t.dmax,$=$t.wsize,_e=$t.whave,nt=$t.wnext,rt=$t.window,tt=$t.hold,ct=$t.bits,ht=$t.lencode,dt=$t.distcode,lt=(1<<$t.lenbits)-1,st=(1<<$t.distbits)-1;e:do{ct<15&&(tt+=kt[a++]<>>24,tt>>>=_t,ct-=_t,_t=it>>>16&255,_t===0)xt[d++]=it&65535;else if(_t&16){St=it&65535,_t&=15,_t&&(ct<_t&&(tt+=kt[a++]<>>=_t,ct-=_t),ct<15&&(tt+=kt[a++]<>>24,tt>>>=_t,ct-=_t,_t=it>>>16&255,_t&16){if(vt=it&65535,_t&=15,ct<_t&&(tt+=kt[a++]<b){e.msg="invalid distance too far back",$t.mode=BAD$1;break e}if(tt>>>=_t,ct-=_t,_t=d-h,vt>_t){if(_t=vt-_t,_t>_e&&$t.sane){e.msg="invalid distance too far back",$t.mode=BAD$1;break e}if(At=0,It=rt,nt===0){if(At+=$-_t,_t2;)xt[d++]=It[At++],xt[d++]=It[At++],xt[d++]=It[At++],St-=3;St&&(xt[d++]=It[At++],St>1&&(xt[d++]=It[At++]))}else{At=d-vt;do xt[d++]=xt[At++],xt[d++]=xt[At++],xt[d++]=xt[At++],St-=3;while(St>2);St&&(xt[d++]=xt[At++],St>1&&(xt[d++]=xt[At++]))}}else if(_t&64){e.msg="invalid distance code",$t.mode=BAD$1;break e}else{it=dt[(it&65535)+(tt&(1<<_t)-1)];continue n}break}}else if(_t&64)if(_t&32){$t.mode=TYPE$1;break e}else{e.msg="invalid literal/length code",$t.mode=BAD$1;break e}else{it=ht[(it&65535)+(tt&(1<<_t)-1)];continue t}break}}while(a>3,a-=St,ct-=St<<3,tt&=(1<{const b=_.bits;let $=0,_e=0,nt=0,rt=0,tt=0,ct=0,ht=0,dt=0,lt=0,st=0,it,_t,St,vt,At,It=null,kt;const xt=new Uint16Array(MAXBITS+1),$t=new Uint16Array(MAXBITS+1);let Ot=null,yt,j,et;for($=0;$<=MAXBITS;$++)xt[$]=0;for(_e=0;_e=1&&xt[rt]===0;rt--);if(tt>rt&&(tt=rt),rt===0)return c[d++]=1<<24|64<<16|0,c[d++]=1<<24|64<<16|0,_.bits=1,0;for(nt=1;nt0&&(o===CODES$1||rt!==1))return-1;for($t[1]=0,$=1;$ENOUGH_LENS$1||o===DISTS$1&<>ENOUGH_DISTS$1)return 1;for(;;){yt=$-ht,h[_e]+1=kt?(j=Ot[h[_e]-kt],et=It[h[_e]-kt]):(j=96,et=0),it=1<<$-ht,_t=1<>ht)+_t]=yt<<24|j<<16|et|0;while(_t!==0);for(it=1<<$-1;st⁢)it>>=1;if(it!==0?(st&=it-1,st+=it):st=0,_e++,--xt[$]===0){if($===rt)break;$=e[s+h[_e]]}if($>tt&&(st&vt)!==St){for(ht===0&&(ht=tt),At+=nt,ct=$-ht,dt=1<ENOUGH_LENS$1||o===DISTS$1&<>ENOUGH_DISTS$1)return 1;St=st&vt,c[St]=tt<<24|ct<<16|At-d|0}}return st!==0&&(c[At+st]=$-ht<<24|64<<16|0),_.bits=tt,0};var inftrees=inflate_table;const CODES=0,LENS=1,DISTS=2,{Z_FINISH:Z_FINISH$1,Z_BLOCK,Z_TREES,Z_OK:Z_OK$1,Z_STREAM_END:Z_STREAM_END$1,Z_NEED_DICT:Z_NEED_DICT$1,Z_STREAM_ERROR:Z_STREAM_ERROR$1,Z_DATA_ERROR:Z_DATA_ERROR$1,Z_MEM_ERROR:Z_MEM_ERROR$1,Z_BUF_ERROR,Z_DEFLATED}=constants$2,HEAD=16180,FLAGS=16181,TIME=16182,OS=16183,EXLEN=16184,EXTRA=16185,NAME=16186,COMMENT=16187,HCRC=16188,DICTID=16189,DICT=16190,TYPE=16191,TYPEDO=16192,STORED=16193,COPY_=16194,COPY=16195,TABLE=16196,LENLENS=16197,CODELENS=16198,LEN_=16199,LEN=16200,LENEXT=16201,DIST=16202,DISTEXT=16203,MATCH=16204,LIT=16205,CHECK=16206,LENGTH=16207,DONE=16208,BAD=16209,MEM=16210,SYNC=16211,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS,zswap32=o=>(o>>>24&255)+(o>>>8&65280)+((o&65280)<<8)+((o&255)<<24);function InflateState(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const inflateStateCheck=o=>{if(!o)return 1;const e=o.state;return!e||e.strm!==o||e.modeSYNC?1:0},inflateResetKeep=o=>{if(inflateStateCheck(o))return Z_STREAM_ERROR$1;const e=o.state;return o.total_in=o.total_out=e.total=0,o.msg="",e.wrap&&(o.adler=e.wrap&1),e.mode=HEAD,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(ENOUGH_LENS),e.distcode=e.distdyn=new Int32Array(ENOUGH_DISTS),e.sane=1,e.back=-1,Z_OK$1},inflateReset=o=>{if(inflateStateCheck(o))return Z_STREAM_ERROR$1;const e=o.state;return e.wsize=0,e.whave=0,e.wnext=0,inflateResetKeep(o)},inflateReset2=(o,e)=>{let s;if(inflateStateCheck(o))return Z_STREAM_ERROR$1;const a=o.state;return e<0?(s=0,e=-e):(s=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?Z_STREAM_ERROR$1:(a.window!==null&&a.wbits!==e&&(a.window=null),a.wrap=s,a.wbits=e,inflateReset(o))},inflateInit2=(o,e)=>{if(!o)return Z_STREAM_ERROR$1;const s=new InflateState;o.state=s,s.strm=o,s.window=null,s.mode=HEAD;const a=inflateReset2(o,e);return a!==Z_OK$1&&(o.state=null),a},inflateInit=o=>inflateInit2(o,DEF_WBITS);let virgin=!0,lenfix,distfix;const fixedtables=o=>{if(virgin){lenfix=new Int32Array(512),distfix=new Int32Array(32);let e=0;for(;e<144;)o.lens[e++]=8;for(;e<256;)o.lens[e++]=9;for(;e<280;)o.lens[e++]=7;for(;e<288;)o.lens[e++]=8;for(inftrees(LENS,o.lens,0,288,lenfix,0,o.work,{bits:9}),e=0;e<32;)o.lens[e++]=5;inftrees(DISTS,o.lens,0,32,distfix,0,o.work,{bits:5}),virgin=!1}o.lencode=lenfix,o.lenbits=9,o.distcode=distfix,o.distbits=5},updatewindow=(o,e,s,a)=>{let c;const d=o.state;return d.window===null&&(d.wsize=1<=d.wsize?(d.window.set(e.subarray(s-d.wsize,s),0),d.wnext=0,d.whave=d.wsize):(c=d.wsize-d.wnext,c>a&&(c=a),d.window.set(e.subarray(s-a,s-a+c),d.wnext),a-=c,a?(d.window.set(e.subarray(s-a,s),0),d.wnext=a,d.whave=d.wsize):(d.wnext+=c,d.wnext===d.wsize&&(d.wnext=0),d.whave{let s,a,c,d,h,_,b,$,_e,nt,rt,tt,ct,ht,dt=0,lt,st,it,_t,St,vt,At,It;const kt=new Uint8Array(4);let xt,$t;const Ot=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(inflateStateCheck(o)||!o.output||!o.input&&o.avail_in!==0)return Z_STREAM_ERROR$1;s=o.state,s.mode===TYPE&&(s.mode=TYPEDO),h=o.next_out,c=o.output,b=o.avail_out,d=o.next_in,a=o.input,_=o.avail_in,$=s.hold,_e=s.bits,nt=_,rt=b,It=Z_OK$1;e:for(;;)switch(s.mode){case HEAD:if(s.wrap===0){s.mode=TYPEDO;break}for(;_e<16;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(s.wrap&2&&$===35615){s.wbits===0&&(s.wbits=15),s.check=0,kt[0]=$&255,kt[1]=$>>>8&255,s.check=crc32_1(s.check,kt,2,0),$=0,_e=0,s.mode=FLAGS;break}if(s.head&&(s.head.done=!1),!(s.wrap&1)||((($&255)<<8)+($>>8))%31){o.msg="incorrect header check",s.mode=BAD;break}if(($&15)!==Z_DEFLATED){o.msg="unknown compression method",s.mode=BAD;break}if($>>>=4,_e-=4,At=($&15)+8,s.wbits===0&&(s.wbits=At),At>15||At>s.wbits){o.msg="invalid window size",s.mode=BAD;break}s.dmax=1<>8&1),s.flags&512&&s.wrap&4&&(kt[0]=$&255,kt[1]=$>>>8&255,s.check=crc32_1(s.check,kt,2,0)),$=0,_e=0,s.mode=TIME;case TIME:for(;_e<32;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}s.head&&(s.head.time=$),s.flags&512&&s.wrap&4&&(kt[0]=$&255,kt[1]=$>>>8&255,kt[2]=$>>>16&255,kt[3]=$>>>24&255,s.check=crc32_1(s.check,kt,4,0)),$=0,_e=0,s.mode=OS;case OS:for(;_e<16;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}s.head&&(s.head.xflags=$&255,s.head.os=$>>8),s.flags&512&&s.wrap&4&&(kt[0]=$&255,kt[1]=$>>>8&255,s.check=crc32_1(s.check,kt,2,0)),$=0,_e=0,s.mode=EXLEN;case EXLEN:if(s.flags&1024){for(;_e<16;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}s.length=$,s.head&&(s.head.extra_len=$),s.flags&512&&s.wrap&4&&(kt[0]=$&255,kt[1]=$>>>8&255,s.check=crc32_1(s.check,kt,2,0)),$=0,_e=0}else s.head&&(s.head.extra=null);s.mode=EXTRA;case EXTRA:if(s.flags&1024&&(tt=s.length,tt>_&&(tt=_),tt&&(s.head&&(At=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(a.subarray(d,d+tt),At)),s.flags&512&&s.wrap&4&&(s.check=crc32_1(s.check,a,tt,d)),_-=tt,d+=tt,s.length-=tt),s.length))break e;s.length=0,s.mode=NAME;case NAME:if(s.flags&2048){if(_===0)break e;tt=0;do At=a[d+tt++],s.head&&At&&s.length<65536&&(s.head.name+=String.fromCharCode(At));while(At&&tt<_);if(s.flags&512&&s.wrap&4&&(s.check=crc32_1(s.check,a,tt,d)),_-=tt,d+=tt,At)break e}else s.head&&(s.head.name=null);s.length=0,s.mode=COMMENT;case COMMENT:if(s.flags&4096){if(_===0)break e;tt=0;do At=a[d+tt++],s.head&&At&&s.length<65536&&(s.head.comment+=String.fromCharCode(At));while(At&&tt<_);if(s.flags&512&&s.wrap&4&&(s.check=crc32_1(s.check,a,tt,d)),_-=tt,d+=tt,At)break e}else s.head&&(s.head.comment=null);s.mode=HCRC;case HCRC:if(s.flags&512){for(;_e<16;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(s.wrap&4&&$!==(s.check&65535)){o.msg="header crc mismatch",s.mode=BAD;break}$=0,_e=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),o.adler=s.check=0,s.mode=TYPE;break;case DICTID:for(;_e<32;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}o.adler=s.check=zswap32($),$=0,_e=0,s.mode=DICT;case DICT:if(s.havedict===0)return o.next_out=h,o.avail_out=b,o.next_in=d,o.avail_in=_,s.hold=$,s.bits=_e,Z_NEED_DICT$1;o.adler=s.check=1,s.mode=TYPE;case TYPE:if(e===Z_BLOCK||e===Z_TREES)break e;case TYPEDO:if(s.last){$>>>=_e&7,_e-=_e&7,s.mode=CHECK;break}for(;_e<3;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}switch(s.last=$&1,$>>>=1,_e-=1,$&3){case 0:s.mode=STORED;break;case 1:if(fixedtables(s),s.mode=LEN_,e===Z_TREES){$>>>=2,_e-=2;break e}break;case 2:s.mode=TABLE;break;case 3:o.msg="invalid block type",s.mode=BAD}$>>>=2,_e-=2;break;case STORED:for($>>>=_e&7,_e-=_e&7;_e<32;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(($&65535)!==($>>>16^65535)){o.msg="invalid stored block lengths",s.mode=BAD;break}if(s.length=$&65535,$=0,_e=0,s.mode=COPY_,e===Z_TREES)break e;case COPY_:s.mode=COPY;case COPY:if(tt=s.length,tt){if(tt>_&&(tt=_),tt>b&&(tt=b),tt===0)break e;c.set(a.subarray(d,d+tt),h),_-=tt,d+=tt,b-=tt,h+=tt,s.length-=tt;break}s.mode=TYPE;break;case TABLE:for(;_e<14;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(s.nlen=($&31)+257,$>>>=5,_e-=5,s.ndist=($&31)+1,$>>>=5,_e-=5,s.ncode=($&15)+4,$>>>=4,_e-=4,s.nlen>286||s.ndist>30){o.msg="too many length or distance symbols",s.mode=BAD;break}s.have=0,s.mode=LENLENS;case LENLENS:for(;s.have>>=3,_e-=3}for(;s.have<19;)s.lens[Ot[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,xt={bits:s.lenbits},It=inftrees(CODES,s.lens,0,19,s.lencode,0,s.work,xt),s.lenbits=xt.bits,It){o.msg="invalid code lengths set",s.mode=BAD;break}s.have=0,s.mode=CODELENS;case CODELENS:for(;s.have>>24,st=dt>>>16&255,it=dt&65535,!(lt<=_e);){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(it<16)$>>>=lt,_e-=lt,s.lens[s.have++]=it;else{if(it===16){for($t=lt+2;_e<$t;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if($>>>=lt,_e-=lt,s.have===0){o.msg="invalid bit length repeat",s.mode=BAD;break}At=s.lens[s.have-1],tt=3+($&3),$>>>=2,_e-=2}else if(it===17){for($t=lt+3;_e<$t;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}$>>>=lt,_e-=lt,At=0,tt=3+($&7),$>>>=3,_e-=3}else{for($t=lt+7;_e<$t;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}$>>>=lt,_e-=lt,At=0,tt=11+($&127),$>>>=7,_e-=7}if(s.have+tt>s.nlen+s.ndist){o.msg="invalid bit length repeat",s.mode=BAD;break}for(;tt--;)s.lens[s.have++]=At}}if(s.mode===BAD)break;if(s.lens[256]===0){o.msg="invalid code -- missing end-of-block",s.mode=BAD;break}if(s.lenbits=9,xt={bits:s.lenbits},It=inftrees(LENS,s.lens,0,s.nlen,s.lencode,0,s.work,xt),s.lenbits=xt.bits,It){o.msg="invalid literal/lengths set",s.mode=BAD;break}if(s.distbits=6,s.distcode=s.distdyn,xt={bits:s.distbits},It=inftrees(DISTS,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,xt),s.distbits=xt.bits,It){o.msg="invalid distances set",s.mode=BAD;break}if(s.mode=LEN_,e===Z_TREES)break e;case LEN_:s.mode=LEN;case LEN:if(_>=6&&b>=258){o.next_out=h,o.avail_out=b,o.next_in=d,o.avail_in=_,s.hold=$,s.bits=_e,inffast(o,rt),h=o.next_out,c=o.output,b=o.avail_out,d=o.next_in,a=o.input,_=o.avail_in,$=s.hold,_e=s.bits,s.mode===TYPE&&(s.back=-1);break}for(s.back=0;dt=s.lencode[$&(1<>>24,st=dt>>>16&255,it=dt&65535,!(lt<=_e);){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(st&&!(st&240)){for(_t=lt,St=st,vt=it;dt=s.lencode[vt+(($&(1<<_t+St)-1)>>_t)],lt=dt>>>24,st=dt>>>16&255,it=dt&65535,!(_t+lt<=_e);){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}$>>>=_t,_e-=_t,s.back+=_t}if($>>>=lt,_e-=lt,s.back+=lt,s.length=it,st===0){s.mode=LIT;break}if(st&32){s.back=-1,s.mode=TYPE;break}if(st&64){o.msg="invalid literal/length code",s.mode=BAD;break}s.extra=st&15,s.mode=LENEXT;case LENEXT:if(s.extra){for($t=s.extra;_e<$t;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}s.length+=$&(1<>>=s.extra,_e-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=DIST;case DIST:for(;dt=s.distcode[$&(1<>>24,st=dt>>>16&255,it=dt&65535,!(lt<=_e);){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(!(st&240)){for(_t=lt,St=st,vt=it;dt=s.distcode[vt+(($&(1<<_t+St)-1)>>_t)],lt=dt>>>24,st=dt>>>16&255,it=dt&65535,!(_t+lt<=_e);){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}$>>>=_t,_e-=_t,s.back+=_t}if($>>>=lt,_e-=lt,s.back+=lt,st&64){o.msg="invalid distance code",s.mode=BAD;break}s.offset=it,s.extra=st&15,s.mode=DISTEXT;case DISTEXT:if(s.extra){for($t=s.extra;_e<$t;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}s.offset+=$&(1<>>=s.extra,_e-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){o.msg="invalid distance too far back",s.mode=BAD;break}s.mode=MATCH;case MATCH:if(b===0)break e;if(tt=rt-b,s.offset>tt){if(tt=s.offset-tt,tt>s.whave&&s.sane){o.msg="invalid distance too far back",s.mode=BAD;break}tt>s.wnext?(tt-=s.wnext,ct=s.wsize-tt):ct=s.wnext-tt,tt>s.length&&(tt=s.length),ht=s.window}else ht=c,ct=h-s.offset,tt=s.length;tt>b&&(tt=b),b-=tt,s.length-=tt;do c[h++]=ht[ct++];while(--tt);s.length===0&&(s.mode=LEN);break;case LIT:if(b===0)break e;c[h++]=s.length,b--,s.mode=LEN;break;case CHECK:if(s.wrap){for(;_e<32;){if(_===0)break e;_--,$|=a[d++]<<_e,_e+=8}if(rt-=b,o.total_out+=rt,s.total+=rt,s.wrap&4&&rt&&(o.adler=s.check=s.flags?crc32_1(s.check,c,rt,h-rt):adler32_1(s.check,c,rt,h-rt)),rt=b,s.wrap&4&&(s.flags?$:zswap32($))!==s.check){o.msg="incorrect data check",s.mode=BAD;break}$=0,_e=0}s.mode=LENGTH;case LENGTH:if(s.wrap&&s.flags){for(;_e<32;){if(_===0)break e;_--,$+=a[d++]<<_e,_e+=8}if(s.wrap&4&&$!==(s.total&4294967295)){o.msg="incorrect length check",s.mode=BAD;break}$=0,_e=0}s.mode=DONE;case DONE:It=Z_STREAM_END$1;break e;case BAD:It=Z_DATA_ERROR$1;break e;case MEM:return Z_MEM_ERROR$1;case SYNC:default:return Z_STREAM_ERROR$1}return o.next_out=h,o.avail_out=b,o.next_in=d,o.avail_in=_,s.hold=$,s.bits=_e,(s.wsize||rt!==o.avail_out&&s.mode{if(inflateStateCheck(o))return Z_STREAM_ERROR$1;let e=o.state;return e.window&&(e.window=null),o.state=null,Z_OK$1},inflateGetHeader=(o,e)=>{if(inflateStateCheck(o))return Z_STREAM_ERROR$1;const s=o.state;return s.wrap&2?(s.head=e,e.done=!1,Z_OK$1):Z_STREAM_ERROR$1},inflateSetDictionary=(o,e)=>{const s=e.length;let a,c,d;return inflateStateCheck(o)||(a=o.state,a.wrap!==0&&a.mode!==DICT)?Z_STREAM_ERROR$1:a.mode===DICT&&(c=1,c=adler32_1(c,e,s,0),c!==a.check)?Z_DATA_ERROR$1:(d=updatewindow(o,e,s,s),d?(a.mode=MEM,Z_MEM_ERROR$1):(a.havedict=1,Z_OK$1))};var inflateReset_1=inflateReset,inflateReset2_1=inflateReset2,inflateResetKeep_1=inflateResetKeep,inflateInit_1=inflateInit,inflateInit2_1=inflateInit2,inflate_2$1=inflate$2,inflateEnd_1=inflateEnd,inflateGetHeader_1=inflateGetHeader,inflateSetDictionary_1=inflateSetDictionary,inflateInfo="pako inflate (from Nodeca project)",inflate_1$2={inflateReset:inflateReset_1,inflateReset2:inflateReset2_1,inflateResetKeep:inflateResetKeep_1,inflateInit:inflateInit_1,inflateInit2:inflateInit2_1,inflate:inflate_2$1,inflateEnd:inflateEnd_1,inflateGetHeader:inflateGetHeader_1,inflateSetDictionary:inflateSetDictionary_1,inflateInfo};function GZheader(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var gzheader=GZheader;const toString=Object.prototype.toString,{Z_NO_FLUSH,Z_FINISH,Z_OK,Z_STREAM_END,Z_NEED_DICT,Z_STREAM_ERROR,Z_DATA_ERROR,Z_MEM_ERROR}=constants$2;function Inflate$1(o){this.options=common.assign({chunkSize:1024*64,windowBits:15,to:""},o||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(o&&o.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let s=inflate_1$2.inflateInit2(this.strm,e.windowBits);if(s!==Z_OK)throw new Error(messages[s]);if(this.header=new gzheader,inflate_1$2.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=strings.string2buf(e.dictionary):toString.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(s=inflate_1$2.inflateSetDictionary(this.strm,e.dictionary),s!==Z_OK)))throw new Error(messages[s])}Inflate$1.prototype.push=function(o,e){const s=this.strm,a=this.options.chunkSize,c=this.options.dictionary;let d,h,_;if(this.ended)return!1;for(e===~~e?h=e:h=e===!0?Z_FINISH:Z_NO_FLUSH,toString.call(o)==="[object ArrayBuffer]"?s.input=new Uint8Array(o):s.input=o,s.next_in=0,s.avail_in=s.input.length;;){for(s.avail_out===0&&(s.output=new Uint8Array(a),s.next_out=0,s.avail_out=a),d=inflate_1$2.inflate(s,h),d===Z_NEED_DICT&&c&&(d=inflate_1$2.inflateSetDictionary(s,c),d===Z_OK?d=inflate_1$2.inflate(s,h):d===Z_DATA_ERROR&&(d=Z_NEED_DICT));s.avail_in>0&&d===Z_STREAM_END&&s.state.wrap>0&&o[s.next_in]!==0;)inflate_1$2.inflateReset(s),d=inflate_1$2.inflate(s,h);switch(d){case Z_STREAM_ERROR:case Z_DATA_ERROR:case Z_NEED_DICT:case Z_MEM_ERROR:return this.onEnd(d),this.ended=!0,!1}if(_=s.avail_out,s.next_out&&(s.avail_out===0||d===Z_STREAM_END))if(this.options.to==="string"){let b=strings.utf8border(s.output,s.next_out),$=s.next_out-b,_e=strings.buf2string(s.output,b);s.next_out=$,s.avail_out=a-$,$&&s.output.set(s.output.subarray(b,b+$),0),this.onData(_e)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out));if(!(d===Z_OK&&_===0)){if(d===Z_STREAM_END)return d=inflate_1$2.inflateEnd(this.strm),this.onEnd(d),this.ended=!0,!0;if(s.avail_in===0)break}}return!0};Inflate$1.prototype.onData=function(o){this.chunks.push(o)};Inflate$1.prototype.onEnd=function(o){o===Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=o,this.msg=this.strm.msg};function inflate$1(o,e){const s=new Inflate$1(e);if(s.push(o),s.err)throw s.msg||messages[s.err];return s.result}function inflateRaw$1(o,e){return e=e||{},e.raw=!0,inflate$1(o,e)}var Inflate_1$1=Inflate$1,inflate_2=inflate$1,inflateRaw_1$1=inflateRaw$1,ungzip$1=inflate$1,constants$1=constants$2,inflate_1$1={Inflate:Inflate_1$1,inflate:inflate_2,inflateRaw:inflateRaw_1$1,ungzip:ungzip$1,constants:constants$1};const{Inflate,inflate,inflateRaw,ungzip}=inflate_1$1;var inflate_1=inflate;function chunks(o,e){return Array.apply(0,new Array(Math.ceil(o.length/e))).map((s,a)=>o.slice(a*e,(a+1)*e))}const isVersionedTransaction=o=>"version"in o;function encode$3(o){return o.reduce((e,s)=>e+s.toString(16).padStart(2,"0"),"0x")}function decode$3(o){o.indexOf("0x")===0&&(o=o.substr(2)),o.length%2===1&&(o="0"+o);let e=o.match(/.{2}/g);return e===null?Buffer$1.from([]):Buffer$1.from(e.map(s=>parseInt(s,16)))}var hex=Object.freeze({__proto__:null,encode:encode$3,decode:decode$3});function decode$2(o){return new TextDecoder("utf-8").decode(o)}function encode$2(o){return new TextEncoder().encode(o)}var utf8=Object.freeze({__proto__:null,decode:decode$2,encode:encode$2});function encode$1(o){return bs58$4.encode(o)}function decode$1(o){return bs58$4.decode(o)}var bs58=Object.freeze({__proto__:null,encode:encode$1,decode:decode$1});function encode(o){return o.toString("base64")}function decode(o){return Buffer$1.from(o,"base64")}var base64=Object.freeze({__proto__:null,encode,decode}),index$1=Object.freeze({__proto__:null,hex,utf8,bs58,base64});function isCompositeAccounts(o){return"accounts"in o}async function idlAddress(o){const e=(await PublicKey.findProgramAddress([],o))[0];return await PublicKey.createWithSeed(e,seed(),o)}function seed(){return"anchor:idl"}const IDL_ACCOUNT_LAYOUT=dist$2.struct([dist$2.publicKey("authority"),dist$2.vecU8("data")]);function decodeIdlAccount(o){return IDL_ACCOUNT_LAYOUT.decode(o)}function convertIdlToCamelCase(o){const e=["name","path","account","relations","generic"],s=d=>d.split(".").map(camelCase$1).join("."),a=d=>{for(const h in d){const _=d[h];e.includes(h)?d[h]=Array.isArray(_)?_.map(s):s(_):typeof _=="object"&&a(_)}},c=structuredClone(o);return a(c),c}function handleDefinedFields(o,e,s,a){return o!=null&&o.length?o[0].name?s(o):a(o):e()}function parseIdlErrors(o){const e=new Map;return o.errors&&o.errors.forEach(s=>{var a;let c=(a=s.msg)!==null&&a!==void 0?a:s.name;e.set(s.code,c)}),e}function toInstruction(o,...e){if(o.args.length!=e.length)throw new Error("Invalid argument length");const s={};let a=0;return o.args.forEach(c=>{s[c.name]=e[a],a+=1}),s}function validateAccounts(o,e={}){o.forEach(s=>{if(isCompositeAccounts(s))validateAccounts(s.accounts,e[s.name]);else if(!e[s.name])throw new Error(`Account \`${s.name}\` not provided.`)})}function translateAddress(o){return o instanceof PublicKey?o:new PublicKey(o)}let StructError$1=class extends TypeError{constructor(e,s){let a;const{message:c,...d}=e,{path:h}=e,_=h.length===0?c:"At path: "+h.join(".")+" -- "+c;super(_),this.value=void 0,this.key=void 0,this.type=void 0,this.refinement=void 0,this.path=void 0,this.branch=void 0,this.failures=void 0,Object.assign(this,d),this.name=this.constructor.name,this.failures=()=>{var b;return(b=a)!=null?b:a=[e,...s()]}}};function isIterable$1(o){return isObject$1(o)&&typeof o[Symbol.iterator]=="function"}function isObject$1(o){return typeof o=="object"&&o!=null}function print$1(o){return typeof o=="string"?JSON.stringify(o):""+o}function shiftIterator$1(o){const{done:e,value:s}=o.next();return e?void 0:s}function toFailure$1(o,e,s,a){if(o===!0)return;o===!1?o={}:typeof o=="string"&&(o={message:o});const{path:c,branch:d}=e,{type:h}=s,{refinement:_,message:b="Expected a value of type `"+h+"`"+(_?" with refinement `"+_+"`":"")+", but received: `"+print$1(a)+"`"}=o;return{value:a,type:h,refinement:_,key:c[c.length-1],path:c,branch:d,...o,message:b}}function*toFailures$1(o,e,s,a){isIterable$1(o)||(o=[o]);for(const c of o){const d=toFailure$1(c,e,s,a);d&&(yield d)}}function*run$1(o,e,s){s===void 0&&(s={});const{path:a=[],branch:c=[o],coerce:d=!1,mask:h=!1}=s,_={path:a,branch:c};if(d&&(o=e.coercer(o,_),h&&e.type!=="type"&&isObject$1(e.schema)&&isObject$1(o)&&!Array.isArray(o)))for(const $ in o)e.schema[$]===void 0&&delete o[$];let b=!0;for(const $ of e.validator(o,_))b=!1,yield[$,void 0];for(let[$,_e,nt]of e.entries(o,_)){const rt=run$1(_e,nt,{path:$===void 0?a:[...a,$],branch:$===void 0?c:[...c,_e],coerce:d,mask:h});for(const tt of rt)tt[0]?(b=!1,yield[tt[0],void 0]):d&&(_e=tt[1],$===void 0?o=_e:o instanceof Map?o.set($,_e):o instanceof Set?o.add(_e):isObject$1(o)&&(o[$]=_e))}if(b)for(const $ of e.refiner(o,_))b=!1,yield[$,void 0];b&&(yield[void 0,o])}let Struct$1=class{constructor(e){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:s,schema:a,validator:c,refiner:d,coercer:h=b=>b,entries:_=function*(){}}=e;this.type=s,this.schema=a,this.entries=_,this.coercer=h,c?this.validator=(b,$)=>{const _e=c(b,$);return toFailures$1(_e,$,this,b)}:this.validator=()=>[],d?this.refiner=(b,$)=>{const _e=d(b,$);return toFailures$1(_e,$,this,b)}:this.refiner=()=>[]}assert(e){return assert$2(e,this)}create(e){return create$1(e,this)}is(e){return is$1(e,this)}mask(e){return mask$1(e,this)}validate(e,s){return s===void 0&&(s={}),validate$1(e,this,s)}};function assert$2(o,e){const s=validate$1(o,e);if(s[0])throw s[0]}function create$1(o,e){const s=validate$1(o,e,{coerce:!0});if(s[0])throw s[0];return s[1]}function mask$1(o,e){const s=validate$1(o,e,{coerce:!0,mask:!0});if(s[0])throw s[0];return s[1]}function is$1(o,e){return!validate$1(o,e)[0]}function validate$1(o,e,s){s===void 0&&(s={});const a=run$1(o,e,s),c=shiftIterator$1(a);return c[0]?[new StructError$1(c[0],function*(){for(const h of a)h[0]&&(yield h[0])}),void 0]:[void 0,c[1]]}function define$2(o,e){return new Struct$1({type:o,schema:null,validator:e})}function any$1(){return define$2("any",()=>!0)}function array$1(o){return new Struct$1({type:"array",schema:o,*entries(e){if(o&&Array.isArray(e))for(const[s,a]of e.entries())yield[s,a,o]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||"Expected an array value, but received: "+print$1(e)}})}function boolean$1(){return define$2("boolean",o=>typeof o=="boolean")}function literal$1(o){const e=print$1(o);return new Struct$1({type:"literal",schema:o,validator(s){return s===o||"Expected the literal `"+e+"`, but received: "+print$1(s)}})}function nullable$1(o){return new Struct$1({...o,validator:(e,s)=>e===null||o.validator(e,s),refiner:(e,s)=>e===null||o.refiner(e,s)})}function number$1(){return define$2("number",o=>typeof o=="number"&&!isNaN(o)||"Expected a number, but received: "+print$1(o))}function optional$1(o){return new Struct$1({...o,validator:(e,s)=>e===void 0||o.validator(e,s),refiner:(e,s)=>e===void 0||o.refiner(e,s)})}function string$1(){return define$2("string",o=>typeof o=="string"||"Expected a string, but received: "+print$1(o))}function type$2(o){const e=Object.keys(o);return new Struct$1({type:"type",schema:o,*entries(s){if(isObject$1(s))for(const a of e)yield[a,s[a],o[a]]},validator(s){return isObject$1(s)||"Expected an object, but received: "+print$1(s)}})}function union$1$1(o){const e=o.map(s=>s.type).join(" | ");return new Struct$1({type:"union",schema:null,coercer(s,a){return(o.find(d=>{const[h]=d.validate(s,{coerce:!0});return!h})||unknown$1()).coercer(s,a)},validator(s,a){const c=[];for(const d of o){const[...h]=run$1(s,d,a),[_]=h;if(_[0])for(const[b]of h)b&&c.push(b);else return[]}return["Expected the value to satisfy a union of `"+e+"`, but received: "+print$1(s),...c]}})}function unknown$1(){return define$2("unknown",()=>!0)}function coerce$1(o,e,s){return new Struct$1({...o,coercer:(a,c)=>is$1(a,e)?o.coercer(s(a,c),c):o.coercer(a,c)})}async function invoke(o,e,s,a){o=translateAddress(o),a||(a=getProvider());const c=new Transaction;if(c.add(new TransactionInstruction({programId:o,keys:e??[],data:s})),a.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");return await a.sendAndConfirm(c,[])}const GET_MULTIPLE_ACCOUNTS_LIMIT=99;async function getMultipleAccounts(o,e,s){return(await getMultipleAccountsAndContext(o,e,s)).map(c=>c?{publicKey:c.publicKey,account:c.account}:null)}async function getMultipleAccountsAndContext(o,e,s){if(e.length<=GET_MULTIPLE_ACCOUNTS_LIMIT)return await getMultipleAccountsAndContextCore(o,e,s);{const a=chunks(e,GET_MULTIPLE_ACCOUNTS_LIMIT);return(await Promise.all(a.map(d=>getMultipleAccountsAndContextCore(o,d,s)))).flat()}}async function getMultipleAccountsAndContextCore(o,e,s){const a=s??o.commitment,{value:c,context:d}=await o.getMultipleAccountsInfoAndContext(e,a);return c.map((_,b)=>_===null?null:{publicKey:e[b],account:_,context:d})}async function simulateTransaction(o,e,s,a,c){var d;s&&s.length>0&&e.sign(...s);const h=e._compile(),_=h.serialize(),$=e._serialize(_).toString("base64"),_e={encoding:"base64",commitment:a??o.commitment};if(c){const ct=(Array.isArray(c)?c:h.nonProgramIds()).map(ht=>ht.toBase58());_e.accounts={encoding:"base64",addresses:ct}}s&&s.length>0&&(_e.sigVerify=!0);const nt=[$,_e],rt=await o._rpcRequest("simulateTransaction",nt),tt=create$1(rt,SimulatedTransactionResponseStruct);if("error"in tt){let ct;if("data"in tt.error&&(ct=(d=tt.error.data)===null||d===void 0?void 0:d.logs,ct&&Array.isArray(ct))){const ht=` `,dt=ht+ct.join(ht);console.error(tt.error.message,dt)}throw new SendTransactionError("failed to simulate transaction: "+tt.error.message,ct)}return tt.result}function jsonRpcResult$1(o){return coerce$1(createRpcResult$1(o),UnknownRpcResult$1,e=>"error"in e?e:{...e,result:create$1(e.result,o)})}const UnknownRpcResult$1=createRpcResult$1(unknown$1());function createRpcResult$1(o){return union$1$1([type$2({jsonrpc:literal$1("2.0"),id:string$1(),result:o}),type$2({jsonrpc:literal$1("2.0"),id:string$1(),error:type$2({code:unknown$1(),message:string$1(),data:optional$1(any$1())})})])}function jsonRpcResultAndContext$1(o){return jsonRpcResult$1(type$2({context:type$2({slot:number$1()}),value:o}))}const SimulatedTransactionResponseStruct=jsonRpcResultAndContext$1(type$2({err:nullable$1(union$1$1([type$2({}),string$1()])),logs:nullable$1(array$1(string$1())),accounts:optional$1(nullable$1(array$1(nullable$1(type$2({executable:boolean$1(),owner:string$1(),lamports:number$1(),data:array$1(string$1()),rentEpoch:optional$1(number$1())}))))),unitsConsumed:optional$1(number$1())}));var rpc=Object.freeze({__proto__:null,invoke,getMultipleAccounts,getMultipleAccountsAndContext,simulateTransaction});class AnchorProvider{constructor(e,s,a=AnchorProvider.defaultOptions()){this.connection=e,this.wallet=s,this.opts=a,this.publicKey=s==null?void 0:s.publicKey}static defaultOptions(){return{preflightCommitment:"processed",commitment:"processed"}}static local(e,s=AnchorProvider.defaultOptions()){throw new Error("Provider local is not available on browser.")}static env(){throw new Error("Provider env is not available on browser.")}async sendAndConfirm(e,s,a){var c,d,h,_;if(a===void 0&&(a=this.opts),isVersionedTransaction(e))s&&e.sign(s);else if(e.feePayer=(c=e.feePayer)!==null&&c!==void 0?c:this.wallet.publicKey,e.recentBlockhash=(await this.connection.getLatestBlockhash(a.preflightCommitment)).blockhash,s)for(const $ of s)e.partialSign($);e=await this.wallet.signTransaction(e);const b=e.serialize();try{return await sendAndConfirmRawTransaction(this.connection,b,a)}catch($){if($ instanceof ConfirmError){const _e=encode$1(isVersionedTransaction(e)?((d=e.signatures)===null||d===void 0?void 0:d[0])||new Uint8Array:(h=e.signature)!==null&&h!==void 0?h:new Uint8Array),nt=isVersionedTransaction(e)?0:void 0,rt=await this.connection.getTransaction(_e,{commitment:"confirmed",maxSupportedTransactionVersion:nt});if(rt){const tt=(_=rt.meta)===null||_===void 0?void 0:_.logMessages;throw tt?new SendTransactionError($.message,tt):$}else throw $}else throw $}}async sendAll(e,s){var a,c,d;s===void 0&&(s=this.opts);const h=(await this.connection.getLatestBlockhash(s.preflightCommitment)).blockhash;let _=e.map(_e=>{var nt,rt;if(isVersionedTransaction(_e.tx)){let tt=_e.tx;return _e.signers&&tt.sign(_e.signers),tt}else{let tt=_e.tx,ct=(nt=_e.signers)!==null&&nt!==void 0?nt:[];return tt.feePayer=(rt=tt.feePayer)!==null&&rt!==void 0?rt:this.wallet.publicKey,tt.recentBlockhash=h,ct.forEach(ht=>{tt.partialSign(ht)}),tt}});const b=await this.wallet.signAllTransactions(_),$=[];for(let _e=0;_e<_.length;_e+=1){const nt=b[_e],rt=nt.serialize();try{$.push(await sendAndConfirmRawTransaction(this.connection,rt,s))}catch(tt){if(tt instanceof ConfirmError){const ct=encode$1(isVersionedTransaction(nt)?((a=nt.signatures)===null||a===void 0?void 0:a[0])||new Uint8Array:(c=nt.signature)!==null&&c!==void 0?c:new Uint8Array),ht=isVersionedTransaction(nt)?0:void 0,dt=await this.connection.getTransaction(ct,{commitment:"confirmed",maxSupportedTransactionVersion:ht});if(dt){const lt=(d=dt.meta)===null||d===void 0?void 0:d.logMessages;throw lt?new SendTransactionError(tt.message,lt):tt}else throw tt}else throw tt}}return $}async simulate(e,s,a,c){let d=(await this.connection.getLatestBlockhash(a??this.connection.commitment)).blockhash,h;if(isVersionedTransaction(e)?(s&&s.length>0&&(e.sign(s),e=await this.wallet.signTransaction(e)),h=await this.connection.simulateTransaction(e,{commitment:a})):(e.feePayer=e.feePayer||this.wallet.publicKey,e.recentBlockhash=d,s&&s.length>0&&(e=await this.wallet.signTransaction(e)),h=await simulateTransaction(this.connection,e,s,a,c)),h.value.err)throw new SimulateError(h.value);return h.value}}class SimulateError extends Error{constructor(e,s){super(s),this.simulationResponse=e}}async function sendAndConfirmRawTransaction(o,e,s){const a=s&&{skipPreflight:s.skipPreflight,preflightCommitment:s.preflightCommitment||s.commitment},c=await o.sendRawTransaction(e,a),d=(await o.confirmTransaction(c,s&&s.commitment)).value;if(d.err)throw new ConfirmError(`Raw transaction ${c} failed (${JSON.stringify(d)})`);return c}class ConfirmError extends Error{constructor(e){super(e)}}function getProvider(){return AnchorProvider.local()}var commonjsGlobal$1=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function getDefaultExportFromCjs$1(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var dist$1={};Object.defineProperty(dist$1,"__esModule",{value:!0});var ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=ANCHOR_ERROR__REQUIRE_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_VIOLATED=ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=dist$1.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=dist$1.ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=dist$1.ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=ANCHOR_ERROR__CONSTRAINT_SPACE=dist$1.ANCHOR_ERROR__CONSTRAINT_SPACE=ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=dist$1.ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=dist$1.ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=ANCHOR_ERROR__CONSTRAINT_ZERO=dist$1.ANCHOR_ERROR__CONSTRAINT_ZERO=ANCHOR_ERROR__CONSTRAINT_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_ADDRESS=ANCHOR_ERROR__CONSTRAINT_CLOSE=dist$1.ANCHOR_ERROR__CONSTRAINT_CLOSE=ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=dist$1.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=dist$1.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=ANCHOR_ERROR__CONSTRAINT_STATE=dist$1.ANCHOR_ERROR__CONSTRAINT_STATE=ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=dist$1.ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=ANCHOR_ERROR__CONSTRAINT_SEEDS=dist$1.ANCHOR_ERROR__CONSTRAINT_SEEDS=ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=dist$1.ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=ANCHOR_ERROR__CONSTRAINT_OWNER=dist$1.ANCHOR_ERROR__CONSTRAINT_OWNER=ANCHOR_ERROR__CONSTRAINT_RAW=dist$1.ANCHOR_ERROR__CONSTRAINT_RAW=ANCHOR_ERROR__CONSTRAINT_SIGNER=dist$1.ANCHOR_ERROR__CONSTRAINT_SIGNER=ANCHOR_ERROR__CONSTRAINT_HAS_ONE=dist$1.ANCHOR_ERROR__CONSTRAINT_HAS_ONE=ANCHOR_ERROR__CONSTRAINT_MUT=dist$1.ANCHOR_ERROR__CONSTRAINT_MUT=ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=dist$1.ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=dist$1.ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=dist$1.ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=ANCHOR_ERROR__IDL_INSTRUCTION_STUB=dist$1.ANCHOR_ERROR__IDL_INSTRUCTION_STUB=ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=dist$1.ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=dist$1.ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=dist$1.ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=ANCHOR_ERROR__INSTRUCTION_MISSING=dist$1.ANCHOR_ERROR__INSTRUCTION_MISSING=void 0,ANCHOR_ERROR__DEPRECATED=dist$1.ANCHOR_ERROR__DEPRECATED=ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=dist$1.ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=dist$1.ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=dist$1.ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=dist$1.ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=dist$1.ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=dist$1.ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=dist$1.ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=ANCHOR_ERROR__INVALID_PROGRAM_ID=dist$1.ANCHOR_ERROR__INVALID_PROGRAM_ID=ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=dist$1.ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=dist$1.ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=dist$1.ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=dist$1.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=dist$1.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=dist$1.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=ANCHOR_ERROR__REQUIRE_GT_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_GT_VIOLATED=ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=void 0,ANCHOR_ERROR__INSTRUCTION_MISSING=dist$1.ANCHOR_ERROR__INSTRUCTION_MISSING=100,ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=dist$1.ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=101,ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=dist$1.ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=102,ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=dist$1.ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=103,ANCHOR_ERROR__IDL_INSTRUCTION_STUB=dist$1.ANCHOR_ERROR__IDL_INSTRUCTION_STUB=1e3,ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=dist$1.ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=1001,ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=dist$1.ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=1002,ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=dist$1.ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=1500,ANCHOR_ERROR__CONSTRAINT_MUT=dist$1.ANCHOR_ERROR__CONSTRAINT_MUT=2e3,ANCHOR_ERROR__CONSTRAINT_HAS_ONE=dist$1.ANCHOR_ERROR__CONSTRAINT_HAS_ONE=2001,ANCHOR_ERROR__CONSTRAINT_SIGNER=dist$1.ANCHOR_ERROR__CONSTRAINT_SIGNER=2002,ANCHOR_ERROR__CONSTRAINT_RAW=dist$1.ANCHOR_ERROR__CONSTRAINT_RAW=2003,ANCHOR_ERROR__CONSTRAINT_OWNER=dist$1.ANCHOR_ERROR__CONSTRAINT_OWNER=2004,ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=dist$1.ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=2005,ANCHOR_ERROR__CONSTRAINT_SEEDS=dist$1.ANCHOR_ERROR__CONSTRAINT_SEEDS=2006,ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=dist$1.ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=2007,ANCHOR_ERROR__CONSTRAINT_STATE=dist$1.ANCHOR_ERROR__CONSTRAINT_STATE=2008,ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=dist$1.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=2009,ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=dist$1.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=2010,ANCHOR_ERROR__CONSTRAINT_CLOSE=dist$1.ANCHOR_ERROR__CONSTRAINT_CLOSE=2011,ANCHOR_ERROR__CONSTRAINT_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_ADDRESS=2012,ANCHOR_ERROR__CONSTRAINT_ZERO=dist$1.ANCHOR_ERROR__CONSTRAINT_ZERO=2013,ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=dist$1.ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=2014,ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=dist$1.ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=2015,ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=2016,ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=2017,ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=2018,ANCHOR_ERROR__CONSTRAINT_SPACE=dist$1.ANCHOR_ERROR__CONSTRAINT_SPACE=2019,ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=dist$1.ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=2020,ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=dist$1.ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=2021,ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=2022,ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=dist$1.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=2023,ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=2024,ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=2025,ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=2026,ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=2027,ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=2028,ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=2029,ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=2030,ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=2031,ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=2032,ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=2033,ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=2034,ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=2035,ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=2036,ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=2037,ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=2038,ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=dist$1.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=2039,ANCHOR_ERROR__REQUIRE_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_VIOLATED=2500;ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=2501;var ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=2502,ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=2503,ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=2504,ANCHOR_ERROR__REQUIRE_GT_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_GT_VIOLATED=2505,ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=dist$1.ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=2506,ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=dist$1.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=3e3,ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=dist$1.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=3001,ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=dist$1.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=3002,ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=dist$1.ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=3003,ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=dist$1.ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=3004,ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=3005,ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=3006,ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=dist$1.ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=3007,ANCHOR_ERROR__INVALID_PROGRAM_ID=dist$1.ANCHOR_ERROR__INVALID_PROGRAM_ID=3008,ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=dist$1.ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=3009,ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=3010,ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=3011,ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=3012,ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=3013,ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=dist$1.ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=3014,ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=dist$1.ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=3015,ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=dist$1.ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=3016,ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=dist$1.ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=3017,ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=dist$1.ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=4100,ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=dist$1.ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=4101,ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=dist$1.ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=4102;ANCHOR_ERROR__DEPRECATED=dist$1.ANCHOR_ERROR__DEPRECATED=5e3;const _AVAILABLE_FEATURES=new Set(["debug-logs"]),_FEATURES=new Map;function set(o){if(!_AVAILABLE_FEATURES.has(o))throw new Error("Invalid feature");_FEATURES.set(o,!0)}function isSet(o){return _FEATURES.get(o)!==void 0}var features=Object.freeze({__proto__:null,set,isSet});class IdlError extends Error{constructor(e){super(e),this.name="IdlError"}}class ProgramErrorStack{constructor(e){this.stack=e}static parse(e){var s;const a=/^Program (\w*) invoke/,c=/^Program \w* success/,d=[];for(let h=0;hrt.startsWith("Program log: AnchorError"));if(s===-1)return null;const a=e[s],c=[a];let d;if(s+11)return null;c=_[0].match(/([0-9]+)/g)[0]}let d;try{d=parseInt(c)}catch{return null}let h=s.get(d);return h!==void 0?new ProgramError(d,h,e.logs):(h=LangErrorMessage.get(d),h!==void 0?new ProgramError(d,h,e.logs):null)}get program(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack}toString(){return this.msg}}function translateError(o,e){isSet("debug-logs")&&console.log("Translating error:",o);const s=AnchorError.parse(o.logs);if(s)return s;const a=ProgramError.parse(o,e);if(a)return a;if(o.logs){const c={get:function(d,h){return h==="programErrorStack"?d.programErrorStack.stack:h==="program"?d.programErrorStack.stack[o.programErrorStack.stack.length-1]:Reflect.get(...arguments)}};return o.programErrorStack=ProgramErrorStack.parse(o.logs),new Proxy(o,c)}return o}const LangErrorCode={InstructionMissing:ANCHOR_ERROR__INSTRUCTION_MISSING,InstructionFallbackNotFound:ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND,InstructionDidNotDeserialize:ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE,InstructionDidNotSerialize:ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE,IdlInstructionStub:ANCHOR_ERROR__IDL_INSTRUCTION_STUB,IdlInstructionInvalidProgram:ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM,IdlAccountNotEmpty:ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY,EventInstructionStub:ANCHOR_ERROR__EVENT_INSTRUCTION_STUB,ConstraintMut:ANCHOR_ERROR__CONSTRAINT_MUT,ConstraintHasOne:ANCHOR_ERROR__CONSTRAINT_HAS_ONE,ConstraintSigner:ANCHOR_ERROR__CONSTRAINT_SIGNER,ConstraintRaw:ANCHOR_ERROR__CONSTRAINT_RAW,ConstraintOwner:ANCHOR_ERROR__CONSTRAINT_OWNER,ConstraintRentExempt:ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT,ConstraintSeeds:ANCHOR_ERROR__CONSTRAINT_SEEDS,ConstraintExecutable:ANCHOR_ERROR__CONSTRAINT_EXECUTABLE,ConstraintState:ANCHOR_ERROR__CONSTRAINT_STATE,ConstraintAssociated:ANCHOR_ERROR__CONSTRAINT_ASSOCIATED,ConstraintAssociatedInit:ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT,ConstraintClose:ANCHOR_ERROR__CONSTRAINT_CLOSE,ConstraintAddress:ANCHOR_ERROR__CONSTRAINT_ADDRESS,ConstraintZero:ANCHOR_ERROR__CONSTRAINT_ZERO,ConstraintTokenMint:ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT,ConstraintTokenOwner:ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER,ConstraintMintMintAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY,ConstraintMintFreezeAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY,ConstraintMintDecimals:ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS,ConstraintSpace:ANCHOR_ERROR__CONSTRAINT_SPACE,ConstraintAccountIsNone:ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE,ConstraintTokenTokenProgram:ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM,ConstraintMintTokenProgram:ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM,ConstraintAssociatedTokenTokenProgram:ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM,ConstraintMintGroupPointerExtension:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION,ConstraintMintGroupPointerExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY,ConstraintMintGroupPointerExtensionGroupAddress:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS,ConstraintMintGroupMemberPointerExtension:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION,ConstraintMintGroupMemberPointerExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY,ConstraintMintGroupMemberPointerExtensionMemberAddress:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS,ConstraintMintMetadataPointerExtension:ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION,ConstraintMintMetadataPointerExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY,ConstraintMintMetadataPointerExtensionMetadataAddress:ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS,ConstraintMintCloseAuthorityExtension:ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION,ConstraintMintCloseAuthorityExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY,ConstraintMintPermanentDelegateExtension:ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION,ConstraintMintPermanentDelegateExtensionDelegate:ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE,ConstraintMintTransferHookExtension:ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION,ConstraintMintTransferHookExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY,ConstraintMintTransferHookExtensionProgramId:ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID,RequireViolated:ANCHOR_ERROR__REQUIRE_VIOLATED,RequireEqViolated:ANCHOR_ERROR__REQUIRE_EQ_VIOLATED,RequireKeysEqViolated:ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED,RequireNeqViolated:ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED,RequireKeysNeqViolated:ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED,RequireGtViolated:ANCHOR_ERROR__REQUIRE_GT_VIOLATED,RequireGteViolated:ANCHOR_ERROR__REQUIRE_GTE_VIOLATED,AccountDiscriminatorAlreadySet:ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET,AccountDiscriminatorNotFound:ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND,AccountDiscriminatorMismatch:ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH,AccountDidNotDeserialize:ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE,AccountDidNotSerialize:ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE,AccountNotEnoughKeys:ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS,AccountNotMutable:ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE,AccountOwnedByWrongProgram:ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM,InvalidProgramId:ANCHOR_ERROR__INVALID_PROGRAM_ID,InvalidProgramExecutable:ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE,AccountNotSigner:ANCHOR_ERROR__ACCOUNT_NOT_SIGNER,AccountNotSystemOwned:ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED,AccountNotInitialized:ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED,AccountNotProgramData:ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA,AccountNotAssociatedTokenAccount:ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT,AccountSysvarMismatch:ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH,AccountReallocExceedsLimit:ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT,AccountDuplicateReallocs:ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS,DeclaredProgramIdMismatch:ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH,TryingToInitPayerAsProgramAccount:ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT,InvalidNumericConversion:ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION,Deprecated:ANCHOR_ERROR__DEPRECATED},LangErrorMessage=new Map([[LangErrorCode.InstructionMissing,"8 byte instruction identifier not provided"],[LangErrorCode.InstructionFallbackNotFound,"Fallback functions are not supported"],[LangErrorCode.InstructionDidNotDeserialize,"The program could not deserialize the given instruction"],[LangErrorCode.InstructionDidNotSerialize,"The program could not serialize the given instruction"],[LangErrorCode.IdlInstructionStub,"The program was compiled without idl instructions"],[LangErrorCode.IdlInstructionInvalidProgram,"The transaction was given an invalid program for the IDL instruction"],[LangErrorCode.IdlAccountNotEmpty,"IDL account must be empty in order to resize, try closing first"],[LangErrorCode.EventInstructionStub,"The program was compiled without `event-cpi` feature"],[LangErrorCode.ConstraintMut,"A mut constraint was violated"],[LangErrorCode.ConstraintHasOne,"A has one constraint was violated"],[LangErrorCode.ConstraintSigner,"A signer constraint was violated"],[LangErrorCode.ConstraintRaw,"A raw constraint was violated"],[LangErrorCode.ConstraintOwner,"An owner constraint was violated"],[LangErrorCode.ConstraintRentExempt,"A rent exemption constraint was violated"],[LangErrorCode.ConstraintSeeds,"A seeds constraint was violated"],[LangErrorCode.ConstraintExecutable,"An executable constraint was violated"],[LangErrorCode.ConstraintState,"Deprecated Error, feel free to replace with something else"],[LangErrorCode.ConstraintAssociated,"An associated constraint was violated"],[LangErrorCode.ConstraintAssociatedInit,"An associated init constraint was violated"],[LangErrorCode.ConstraintClose,"A close constraint was violated"],[LangErrorCode.ConstraintAddress,"An address constraint was violated"],[LangErrorCode.ConstraintZero,"Expected zero account discriminant"],[LangErrorCode.ConstraintTokenMint,"A token mint constraint was violated"],[LangErrorCode.ConstraintTokenOwner,"A token owner constraint was violated"],[LangErrorCode.ConstraintMintMintAuthority,"A mint mint authority constraint was violated"],[LangErrorCode.ConstraintMintFreezeAuthority,"A mint freeze authority constraint was violated"],[LangErrorCode.ConstraintMintDecimals,"A mint decimals constraint was violated"],[LangErrorCode.ConstraintSpace,"A space constraint was violated"],[LangErrorCode.ConstraintAccountIsNone,"A required account for the constraint is None"],[LangErrorCode.ConstraintTokenTokenProgram,"A token account token program constraint was violated"],[LangErrorCode.ConstraintMintTokenProgram,"A mint token program constraint was violated"],[LangErrorCode.ConstraintAssociatedTokenTokenProgram,"An associated token account token program constraint was violated"],[LangErrorCode.ConstraintMintGroupPointerExtension,"A group pointer extension constraint was violated"],[LangErrorCode.ConstraintMintGroupPointerExtensionAuthority,"A group pointer extension authority constraint was violated"],[LangErrorCode.ConstraintMintGroupPointerExtensionGroupAddress,"A group pointer extension group address constraint was violated"],[LangErrorCode.ConstraintMintGroupMemberPointerExtension,"A group member pointer extension constraint was violated"],[LangErrorCode.ConstraintMintGroupMemberPointerExtensionAuthority,"A group member pointer extension authority constraint was violated"],[LangErrorCode.ConstraintMintGroupMemberPointerExtensionMemberAddress,"A group member pointer extension group address constraint was violated"],[LangErrorCode.ConstraintMintMetadataPointerExtension,"A metadata pointer extension constraint was violated"],[LangErrorCode.ConstraintMintMetadataPointerExtensionAuthority,"A metadata pointer extension authority constraint was violated"],[LangErrorCode.ConstraintMintMetadataPointerExtensionMetadataAddress,"A metadata pointer extension metadata address constraint was violated"],[LangErrorCode.ConstraintMintCloseAuthorityExtension,"A close authority constraint was violated"],[LangErrorCode.ConstraintMintCloseAuthorityExtensionAuthority,"A close authority extension authority constraint was violated"],[LangErrorCode.ConstraintMintPermanentDelegateExtension,"A permanent delegate extension constraint was violated"],[LangErrorCode.ConstraintMintPermanentDelegateExtensionDelegate,"A permanent delegate extension delegate constraint was violated"],[LangErrorCode.ConstraintMintTransferHookExtension,"A transfer hook extension constraint was violated"],[LangErrorCode.ConstraintMintTransferHookExtensionAuthority,"A transfer hook extension authority constraint was violated"],[LangErrorCode.ConstraintMintTransferHookExtensionProgramId,"A transfer hook extension transfer hook program id constraint was violated"],[LangErrorCode.RequireViolated,"A require expression was violated"],[LangErrorCode.RequireEqViolated,"A require_eq expression was violated"],[LangErrorCode.RequireKeysEqViolated,"A require_keys_eq expression was violated"],[LangErrorCode.RequireNeqViolated,"A require_neq expression was violated"],[LangErrorCode.RequireKeysNeqViolated,"A require_keys_neq expression was violated"],[LangErrorCode.RequireGtViolated,"A require_gt expression was violated"],[LangErrorCode.RequireGteViolated,"A require_gte expression was violated"],[LangErrorCode.AccountDiscriminatorAlreadySet,"The account discriminator was already set on this account"],[LangErrorCode.AccountDiscriminatorNotFound,"No 8 byte discriminator was found on the account"],[LangErrorCode.AccountDiscriminatorMismatch,"8 byte discriminator did not match what was expected"],[LangErrorCode.AccountDidNotDeserialize,"Failed to deserialize the account"],[LangErrorCode.AccountDidNotSerialize,"Failed to serialize the account"],[LangErrorCode.AccountNotEnoughKeys,"Not enough account keys given to the instruction"],[LangErrorCode.AccountNotMutable,"The given account is not mutable"],[LangErrorCode.AccountOwnedByWrongProgram,"The given account is owned by a different program than expected"],[LangErrorCode.InvalidProgramId,"Program ID was not as expected"],[LangErrorCode.InvalidProgramExecutable,"Program account is not executable"],[LangErrorCode.AccountNotSigner,"The given account did not sign"],[LangErrorCode.AccountNotSystemOwned,"The given account is not owned by the system program"],[LangErrorCode.AccountNotInitialized,"The program expected this account to be already initialized"],[LangErrorCode.AccountNotProgramData,"The given account is not a program data account"],[LangErrorCode.AccountNotAssociatedTokenAccount,"The given account is not the associated token account"],[LangErrorCode.AccountSysvarMismatch,"The given public key does not match the required sysvar"],[LangErrorCode.AccountReallocExceedsLimit,"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit"],[LangErrorCode.AccountDuplicateReallocs,"The account was duplicated for more than one reallocation"],[LangErrorCode.DeclaredProgramIdMismatch,"The declared program id does not match the actual program id"],[LangErrorCode.TryingToInitPayerAsProgramAccount,"You cannot/should not initialize the payer account as a program account"],[LangErrorCode.InvalidNumericConversion,"The program could not perform the numeric conversion, out of range integral type conversion attempted"],[LangErrorCode.Deprecated,"The API being used is deprecated and should no longer be used"]]);class IdlCoder{static fieldLayout(e,s=[],a){const c=e.name;switch(e.type){case"bool":return dist$2.bool(c);case"u8":return dist$2.u8(c);case"i8":return dist$2.i8(c);case"u16":return dist$2.u16(c);case"i16":return dist$2.i16(c);case"u32":return dist$2.u32(c);case"i32":return dist$2.i32(c);case"f32":return dist$2.f32(c);case"u64":return dist$2.u64(c);case"i64":return dist$2.i64(c);case"f64":return dist$2.f64(c);case"u128":return dist$2.u128(c);case"i128":return dist$2.i128(c);case"u256":return dist$2.u256(c);case"i256":return dist$2.i256(c);case"bytes":return dist$2.vecU8(c);case"string":return dist$2.str(c);case"pubkey":return dist$2.publicKey(c);default:{if("option"in e.type)return dist$2.option(IdlCoder.fieldLayout({type:e.type.option},s,a),c);if("vec"in e.type)return dist$2.vec(IdlCoder.fieldLayout({type:e.type.vec},s,a),c);if("array"in e.type){let[d,h]=e.type.array;return h=IdlCoder.resolveArrayLen(h,a),dist$2.array(IdlCoder.fieldLayout({type:d},s,a),h,c)}if("defined"in e.type){if(!s)throw new IdlError("User defined types not provided");const d=e.type.defined.name,h=s.find(_=>_.name===d);if(!h)throw new IdlError(`Type not found: ${e.name}`);return IdlCoder.typeDefLayout({typeDef:h,types:s,genericArgs:a??e.type.defined.generics,name:c})}if("generic"in e.type){const d=a==null?void 0:a.at(0);if((d==null?void 0:d.kind)!=="type")throw new IdlError(`Invalid generic field: ${e.name}`);return IdlCoder.fieldLayout({...e,type:d.type},s)}throw new IdlError(`Not yet implemented: ${JSON.stringify(e.type)}`)}}}static typeDefLayout({typeDef:e,types:s,name:a,genericArgs:c}){switch(e.type.kind){case"struct":{const d=handleDefinedFields(e.type.fields,()=>[],h=>h.map(_=>{const b=c&&IdlCoder.resolveGenericArgs({type:_.type,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout(_,s,b)}),h=>h.map((_,b)=>{const $=c&&IdlCoder.resolveGenericArgs({type:_,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout({name:b.toString(),type:_},s,$)}));return dist$2.struct(d,a)}case"enum":{const d=e.type.variants.map(h=>{const _=handleDefinedFields(h.fields,()=>[],b=>b.map($=>{const _e=c&&IdlCoder.resolveGenericArgs({type:$.type,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout($,s,_e)}),b=>b.map(($,_e)=>{const nt=c&&IdlCoder.resolveGenericArgs({type:$,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout({name:_e.toString(),type:$},s,nt)}));return dist$2.struct(_,h.name)});return a!==void 0?dist$2.rustEnum(d).replicate(a):dist$2.rustEnum(d,a)}case"type":return IdlCoder.fieldLayout({type:e.type.alias,name:a},s)}}static typeSize(e,s,a){var c;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"pubkey":return 32;default:if("option"in e)return 1+IdlCoder.typeSize(e.option,s,a);if("coption"in e)return 4+IdlCoder.typeSize(e.coption,s,a);if("vec"in e)return 1;if("array"in e){let[d,h]=e.array;return h=IdlCoder.resolveArrayLen(h,a),IdlCoder.typeSize(d,s,a)*h}if("defined"in e){const d=(c=s.types)===null||c===void 0?void 0:c.find(_=>_.name===e.defined.name);if(!d)throw new IdlError(`Type not found: ${JSON.stringify(e)}`);const h=_=>{const b=a??e.defined.generics,$=b&&IdlCoder.resolveGenericArgs({type:_,typeDef:d,genericArgs:b});return IdlCoder.typeSize(_,s,$)};switch(d.type.kind){case"struct":return handleDefinedFields(d.type.fields,()=>[0],_=>_.map(b=>h(b.type)),_=>_.map(b=>h(b))).reduce((_,b)=>_+b,0);case"enum":{const _=d.type.variants.map(b=>handleDefinedFields(b.fields,()=>[0],$=>$.map(_e=>h(_e.type)),$=>$.map(_e=>h(_e))).reduce(($,_e)=>$+_e,0));return Math.max(..._)+1}case"type":return IdlCoder.typeSize(d.type.alias,s,a)}}if("generic"in e){const d=a==null?void 0:a.at(0);if((d==null?void 0:d.kind)!=="type")throw new IdlError(`Invalid generic: ${e.generic}`);return IdlCoder.typeSize(d.type,s,a)}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}static resolveArrayLen(e,s){if(typeof e=="number")return e;if(s){const a=s.find(c=>c.kind==="const");(a==null?void 0:a.kind)==="const"&&(e=+a.value)}if(typeof e!="number")throw new IdlError("Generic array length did not resolve");return e}static resolveGenericArgs({type:e,typeDef:s,genericArgs:a,isDefined:c}){if(typeof e!="object")return null;for(const d in s.generics){const h=s.generics[d];if("generic"in e&&h.name===e.generic)return[a[d]];if("option"in e){const _=IdlCoder.resolveGenericArgs({type:e.option,typeDef:s,genericArgs:a,isDefined:c});if(!_||!c)return _;if(_[0].kind==="type")return[{kind:"type",type:{option:_[0].type}}]}if("vec"in e){const _=IdlCoder.resolveGenericArgs({type:e.vec,typeDef:s,genericArgs:a,isDefined:c});if(!_||!c)return _;if(_[0].kind==="type")return[{kind:"type",type:{vec:_[0].type}}]}if("array"in e){const[_,b]=e.array,$=typeof b=="object",_e=IdlCoder.resolveGenericArgs({type:_,typeDef:s,genericArgs:a,isDefined:c});if(_e){for(const nt in s.generics.slice(+d)){const rt=+d+ +nt;$&&s.generics[rt].name===b.generic&&_e.push(a[rt])}if(!c)return _e;if(_e[0].kind==="type"&&_e[1].kind==="const")return[{kind:"type",type:{array:[_e[0].type,+_e[1].value]}}]}if($&&h.name===b.generic){const nt=a[d];return c?[{kind:"type",type:{array:[_,+nt.value]}}]:[nt]}return null}if("defined"in e)return e.defined.generics?e.defined.generics.flatMap(_=>{switch(_.kind){case"type":return IdlCoder.resolveGenericArgs({type:_.type,typeDef:s,genericArgs:a,isDefined:!0});case"const":return[_]}}).filter(_=>_!==null):null}return null}}class BorshInstructionCoder{constructor(e){this.idl=e;const s=e.instructions.map(c=>{const d=c.name,h=c.args.map(b=>IdlCoder.fieldLayout(b,e.types)),_=dist$2.struct(h,d);return[d,{discriminator:c.discriminator,layout:_}]});this.ixLayouts=new Map(s);const a=s.map(([c,{discriminator:d,layout:h}])=>[bs58$4.encode(d),{name:c,layout:h}]);this.sighashLayouts=new Map(a)}encode(e,s){const a=Buffer$1.alloc(1e3),c=this.ixLayouts.get(e);if(!c)throw new Error(`Unknown method: ${e}`);const d=c.layout.encode(s,a),h=a.slice(0,d);return Buffer$1.concat([Buffer$1.from(c.discriminator),h])}decode(e,s="hex"){typeof e=="string"&&(e=s==="hex"?Buffer$1.from(e,"hex"):bs58$4.decode(e));const a=e.slice(0,DISCRIMINATOR_SIZE),c=e.slice(DISCRIMINATOR_SIZE),d=this.sighashLayouts.get(bs58$4.encode(a));return d?{name:d.name,data:d.layout.decode(c)}:null}format(e,s){return InstructionFormatter.format(e,s,this.idl)}}class InstructionFormatter{static format(e,s,a){const c=a.instructions.find(b=>e.name===b.name);if(!c)return console.error("Invalid instruction given"),null;const d=c.args.map(b=>({name:b.name,type:InstructionFormatter.formatIdlType(b.type),data:InstructionFormatter.formatIdlData(b,e.data[b.name],a.types)})),h=InstructionFormatter.flattenIdlAccounts(c.accounts),_=s.map((b,$)=>$`;if("coption"in e)return`COption<${this.formatIdlType(e.coption)}>`;if("vec"in e)return`Vec<${this.formatIdlType(e.vec)}>`;if("array"in e)return`Array<${e.array[0]}; ${e.array[1]}>`;if("defined"in e){const s=e.defined.name;if(e.defined.generics){const a=e.defined.generics.map(c=>{switch(c.kind){case"type":return InstructionFormatter.formatIdlType(c.type);case"const":return c.value}}).join(", ");return`${s}<${a}>`}return s}throw new Error(`Unknown IDL type: ${e}`)}static formatIdlData(e,s,a){if(typeof e.type=="string")return s.toString();if("vec"in e.type)return"["+s.map(c=>this.formatIdlData({name:"",type:e.type.vec},c,a)).join(", ")+"]";if("option"in e.type)return s===null?"null":this.formatIdlData({name:"",type:e.type.option},s,a);if("defined"in e.type){if(!a)throw new Error("User defined types not provided");const c=e.type.defined.name,d=a.find(h=>h.name===c);if(!d)throw new Error(`Type not found: ${c}`);return InstructionFormatter.formatIdlDataDefined(d,s,a)}return"unknown"}static formatIdlDataDefined(e,s,a){switch(e.type.kind){case"struct":return"{ "+handleDefinedFields(e.type.fields,()=>"",c=>Object.entries(s).map(([d,h])=>{const _=c.find(b=>b.name===d);if(!_)throw new Error(`Field not found: ${d}`);return d+": "+InstructionFormatter.formatIdlData(_,h,a)}).join(", "),c=>Object.entries(s).map(([d,h])=>d+": "+InstructionFormatter.formatIdlData({name:"",type:c[d]},h,a)).join(", "))+" }";case"enum":{const c=Object.keys(s)[0],d=e.type.variants.find(_=>_.name===c);if(!d)throw new Error(`Unable to find variant: ${c}`);const h=s[c];return handleDefinedFields(d.fields,()=>c,_=>{const b=Object.keys(h).map($=>{const _e=h[$],nt=_.find(rt=>rt.name===$);if(!nt)throw new Error(`Field not found: ${$}`);return $+": "+InstructionFormatter.formatIdlData(nt,_e,a)}).join(", ");return`${c} { ${b} }`},_=>{const b=Object.entries(h).map(([$,_e])=>$+": "+InstructionFormatter.formatIdlData({name:"",type:_[$]},_e,a)).join(", ");return`${c} { ${b} }`})}case"type":return InstructionFormatter.formatIdlType(e.type.alias)}}static flattenIdlAccounts(e,s){return e.map(a=>{const c=sentenceCase(a.name);if(a.hasOwnProperty("accounts")){const d=s?`${s} > ${c}`:c;return InstructionFormatter.flattenIdlAccounts(a.accounts,d)}else return{...a,name:s?`${s} > ${c}`:c}}).flat()}}function sentenceCase(o){const e=o.replace(/([A-Z])/g," $1");return e.charAt(0).toUpperCase()+e.slice(1)}const DISCRIMINATOR_SIZE=8;class BorshAccountsCoder{constructor(e){if(this.idl=e,!e.accounts){this.accountLayouts=new Map;return}const s=e.types;if(!s)throw new Error("Accounts require `idl.types`");const a=e.accounts.map(c=>{const d=s.find(h=>h.name===c.name);if(!d)throw new Error(`Account not found: ${c.name}`);return[c.name,IdlCoder.typeDefLayout({typeDef:d,types:s})]});this.accountLayouts=new Map(a)}async encode(e,s){const a=Buffer$1.alloc(1e3),c=this.accountLayouts.get(e);if(!c)throw new Error(`Unknown account: ${e}`);const d=c.encode(s,a),h=a.slice(0,d),_=this.accountDiscriminator(e);return Buffer$1.concat([_,h])}decode(e,s){if(this.accountDiscriminator(e).compare(s.slice(0,DISCRIMINATOR_SIZE)))throw new Error("Invalid account discriminator");return this.decodeUnchecked(e,s)}decodeAny(e){const s=e.slice(0,DISCRIMINATOR_SIZE),a=Array.from(this.accountLayouts.keys()).find(c=>this.accountDiscriminator(c).equals(s));if(!a)throw new Error("Account not found");return this.decodeUnchecked(a,e)}decodeUnchecked(e,s){const a=s.subarray(DISCRIMINATOR_SIZE),c=this.accountLayouts.get(e);if(!c)throw new Error(`Unknown account: ${e}`);return c.decode(a)}memcmp(e,s){const a=this.accountDiscriminator(e);return{offset:0,bytes:bs58$4.encode(s?Buffer$1.concat([a,s]):a)}}size(e){return DISCRIMINATOR_SIZE+IdlCoder.typeSize({defined:{name:e}},this.idl)}accountDiscriminator(e){var s;const a=(s=this.idl.accounts)===null||s===void 0?void 0:s.find(c=>c.name===e);if(!a)throw new Error(`Account not found: ${e}`);return Buffer$1.from(a.discriminator)}}class BorshEventCoder{constructor(e){var s;if(!e.events){this.layouts=new Map;return}const a=e.types;if(!a)throw new Error("Events require `idl.types`");const c=e.events.map(d=>{const h=a.find(_=>_.name===d.name);if(!h)throw new Error(`Event not found: ${d.name}`);return[d.name,IdlCoder.typeDefLayout({typeDef:h,types:a})]});this.layouts=new Map(c),this.discriminators=new Map(((s=e.events)!==null&&s!==void 0?s:[]).map(d=>[encode(Buffer$1.from(d.discriminator)),d.name]))}decode(e){let s;try{s=decode(e)}catch{return null}const a=encode(s.slice(0,8)),c=this.discriminators.get(a);if(!c)return null;const d=this.layouts.get(c);if(!d)throw new Error(`Unknown event: ${c}`);return{data:d.decode(s.slice(8)),name:c}}}class BorshTypesCoder{constructor(e){const s=e.types;if(!s){this.typeLayouts=new Map;return}const a=s.filter(c=>!c.generics).map(c=>[c.name,IdlCoder.typeDefLayout({typeDef:c,types:s})]);this.typeLayouts=new Map(a)}encode(e,s){const a=Buffer$1.alloc(1e3),c=this.typeLayouts.get(e);if(!c)throw new Error(`Unknown type: ${e}`);const d=c.encode(s,a);return a.slice(0,d)}decode(e,s){const a=this.typeLayouts.get(e);if(!a)throw new Error(`Unknown type: ${e}`);return a.decode(s)}}class BorshCoder{constructor(e){this.instruction=new BorshInstructionCoder(e),this.accounts=new BorshAccountsCoder(e),this.events=new BorshEventCoder(e),this.types=new BorshTypesCoder(e)}}let Layout$1=class{constructor(e,s){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=s}makeDestinationObject(){return{}}decode(e,s){throw new Error("Layout is abstract")}encode(e,s,a){throw new Error("Layout is abstract")}getSpan(e,s){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const s=Object.create(this.constructor.prototype);return Object.assign(s,this),s.property=e,s}fromArray(e){}};var Layout_2$1=Layout$1;function nameWithProperty$1(o,e){return e.property?o+"["+e.property+"]":o}let ExternalLayout$1=class extends Layout$1{isCount(){throw new Error("ExternalLayout is abstract")}},OffsetLayout$1=class extends ExternalLayout$1{constructor(e,s,a){if(!(e instanceof Layout$1))throw new TypeError("layout must be a Layout");if(s===void 0)s=0;else if(!Number.isInteger(s))throw new TypeError("offset must be integer or undefined");super(e.span,a||e.property),this.layout=e,this.offset=s}isCount(){return this.layout instanceof UInt$1||this.layout instanceof UIntBE$1}decode(e,s){return s===void 0&&(s=0),this.layout.decode(e,s+this.offset)}encode(e,s,a){return a===void 0&&(a=0),this.layout.encode(e,s,a+this.offset)}},UInt$1=class extends Layout$1{constructor(e,s){if(super(e,s),6d&&h instanceof Layout$1,!0)))throw new TypeError("fields must be array of Layout instances");typeof s=="boolean"&&a===void 0&&(a=s,s=void 0);for(const d of e)if(0>d.span&&d.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let c=-1;try{c=e.reduce((d,h)=>d+h.getSpan(),0)}catch{}super(c,s),this.fields=e,this.decodePrefixes=!!a}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;try{a=this.fields.reduce((c,d)=>{const h=d.getSpan(e,s);return s+=h,c+h},0)}catch{throw new RangeError("indeterminate span")}return a}decode(e,s){s===void 0&&(s=0);const a=this.makeDestinationObject();for(const c of this.fields)if(c.property!==void 0&&(a[c.property]=c.decode(e,s)),s+=c.getSpan(e,s),this.decodePrefixes&&e.length===s)break;return a}encode(e,s,a){a===void 0&&(a=0);const c=a;let d=0,h=0;for(const _ of this.fields){let b=_.span;if(h=0b&&(b=_.getSpan(s,a)))}d=a,a+=b}return d+h-c}fromArray(e){const s=this.makeDestinationObject();for(const a of this.fields)a.property!==void 0&&0a.span?s=-1:0<=s&&(s+=a.span)}}},UnionDiscriminator$1=class{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}},UnionLayoutDiscriminator$1=class extends UnionDiscriminator$1{constructor(e,s){if(!(e instanceof ExternalLayout$1&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(s||e.property||"variant"),this.layout=e}decode(e,s){return this.layout.decode(e,s)}encode(e,s,a){return this.layout.encode(e,s,a)}},Union$1=class extends Layout$1{constructor(e,s,a){const c=e instanceof UInt$1||e instanceof UIntBE$1;if(c)e=new UnionLayoutDiscriminator$1(new OffsetLayout$1(e));else if(e instanceof ExternalLayout$1&&e.isCount())e=new UnionLayoutDiscriminator$1(e);else if(!(e instanceof UnionDiscriminator$1))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(s===void 0&&(s=null),!(s===null||s instanceof Layout$1))throw new TypeError("defaultLayout must be null or a Layout");if(s!==null){if(0>s.span)throw new Error("defaultLayout must have constant span");s.property===void 0&&(s=s.replicate("content"))}let d=-1;s&&(d=s.span,0<=d&&c&&(d+=e.layout.span)),super(d,a),this.discriminator=e,this.usesPrefixDiscriminator=c,this.defaultLayout=s,this.registry={};let h=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(_){return h(_)},this.configGetSourceVariant=function(_){h=_.bind(this)}}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);const a=this.getVariant(e,s);if(!a)throw new Error("unable to determine span for unrecognized variant");return a.getSpan(e,s)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const s=this.registry[e[this.discriminator.property]];if(s&&(!s.layout||e.hasOwnProperty(s.property)))return s}else for(const s in this.registry){const a=this.registry[s];if(e.hasOwnProperty(a.property))return a}throw new Error("unable to infer src variant")}decode(e,s){s===void 0&&(s=0);let a;const c=this.discriminator,d=c.decode(e,s);let h=this.registry[d];if(h===void 0){let _=0;h=this.defaultLayout,this.usesPrefixDiscriminator&&(_=c.layout.span),a=this.makeDestinationObject(),a[c.property]=d,a[h.property]=this.defaultLayout.decode(e,s+_)}else a=h.decode(e,s);return a}encode(e,s,a){a===void 0&&(a=0);const c=this.getSourceVariant(e);if(c===void 0){const d=this.discriminator,h=this.defaultLayout;let _=0;return this.usesPrefixDiscriminator&&(_=d.layout.span),d.encode(e[d.property],s,a),_+h.encode(e[h.property],s,a+_)}return c.encode(e,s,a)}addVariant(e,s,a){const c=new VariantLayout$1(this,e,s,a);return this.registry[e]=c,c}getVariant(e,s){let a=e;return Buffer.isBuffer(e)&&(s===void 0&&(s=0),a=this.discriminator.decode(e,s)),this.registry[a]}},VariantLayout$1=class extends Layout$1{constructor(e,s,a,c){if(!(e instanceof Union$1))throw new TypeError("union must be a Union");if(!Number.isInteger(s)||0>s)throw new TypeError("variant must be a (non-negative) integer");if(typeof a=="string"&&c===void 0&&(c=a,a=null),a){if(!(a instanceof Layout$1))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=a.span&&a.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof c!="string")throw new TypeError("variant must have a String property")}let d=e.span;0>e.span&&(d=a?a.span:0,0<=d&&e.usesPrefixDiscriminator&&(d+=e.discriminator.layout.span)),super(d,c),this.union=e,this.variant=s,this.layout=a||null}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;return this.union.usesPrefixDiscriminator&&(a=this.union.discriminator.layout.span),a+this.layout.getSpan(e,s+a)}decode(e,s){const a=this.makeDestinationObject();if(s===void 0&&(s=0),this!==this.union.getVariant(e,s))throw new Error("variant mismatch");let c=0;return this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout?a[this.property]=this.layout.decode(e,s+c):this.property?a[this.property]=!0:this.union.usesPrefixDiscriminator&&(a[this.union.discriminator.property]=this.variant),a}encode(e,s,a){a===void 0&&(a=0);let c=0;if(this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,s,a);let d=c;if(this.layout&&(this.layout.encode(e[this.property],s,a+c),d+=this.layout.getSpan(s,a+c),0<=this.union.span&&d>this.union.span))throw new Error("encoded variant overruns containing union");return d}fromArray(e){if(this.layout)return this.layout.fromArray(e)}},Blob$1$1=class extends Layout$1{constructor(e,s){if(!(e instanceof ExternalLayout$1&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let a=-1;e instanceof ExternalLayout$1||(a=e),super(a,s),this.length=e}getSpan(e,s){let a=this.span;return 0>a&&(a=this.length.decode(e,s)),a}decode(e,s){s===void 0&&(s=0);let a=this.span;return 0>a&&(a=this.length.decode(e,s)),e.slice(s,s+a)}encode(e,s,a){let c=this.length;if(this.length instanceof ExternalLayout$1&&(c=e.length),!(Buffer.isBuffer(e)&&c===e.length))throw new TypeError(nameWithProperty$1("Blob.encode",this)+" requires (length "+c+") Buffer as src");if(a+c>s.length)throw new RangeError("encoding overruns Buffer");return s.write(e.toString("hex"),a,c,"hex"),this.length instanceof ExternalLayout$1&&this.length.encode(c,s,a),c}};var offset$1=(o,e,s)=>new OffsetLayout$1(o,e,s),u8$1=o=>new UInt$1(1,o),u32$1=o=>new UInt$1(4,o),nu64$1=o=>new NearUInt64$1(o),ns64$1=o=>new NearInt64$1(o),struct$1=(o,e,s)=>new Structure$1(o,e,s),union$2=(o,e,s)=>new Union$1(o,e,s),blob$1=(o,e)=>new Blob$1$1(o,e);let RustStringLayout$1=class extends Layout_2$1{constructor(e){super(-1,e),this.property=e,this.layout=struct$1([u32$1("length"),u32$1("lengthPadding"),blob$1(offset$1(u32$1(),-8),"chars")],this.property)}encode(e,s,a=0){if(e==null)return this.layout.span;const c={chars:Buffer.from(e,"utf8")};return this.layout.encode(c,s,a)}decode(e,s=0){return this.layout.decode(e,s).chars.toString()}getSpan(e,s=0){return u32$1().span+u32$1().span+new BN(new Uint8Array(e).slice(s,s+4),10,"le").toNumber()}};function rustStringLayout$1(o){return new RustStringLayout$1(o)}function publicKey$2$1(o){return blob$1(32,o)}const LAYOUT$1=union$2(u32$1("instruction"));LAYOUT$1.addVariant(0,struct$1([ns64$1("lamports"),ns64$1("space"),publicKey$2$1("owner")]),"createAccount");LAYOUT$1.addVariant(1,struct$1([publicKey$2$1("owner")]),"assign");LAYOUT$1.addVariant(2,struct$1([ns64$1("lamports")]),"transfer");LAYOUT$1.addVariant(3,struct$1([publicKey$2$1("base"),rustStringLayout$1("seed"),ns64$1("lamports"),ns64$1("space"),publicKey$2$1("owner")]),"createAccountWithSeed");LAYOUT$1.addVariant(4,struct$1([publicKey$2$1("authorized")]),"advanceNonceAccount");LAYOUT$1.addVariant(5,struct$1([ns64$1("lamports")]),"withdrawNonceAccount");LAYOUT$1.addVariant(6,struct$1([publicKey$2$1("authorized")]),"initializeNonceAccount");LAYOUT$1.addVariant(7,struct$1([publicKey$2$1("authorized")]),"authorizeNonceAccount");LAYOUT$1.addVariant(8,struct$1([ns64$1("space")]),"allocate");LAYOUT$1.addVariant(9,struct$1([publicKey$2$1("base"),rustStringLayout$1("seed"),ns64$1("space"),publicKey$2$1("owner")]),"allocateWithSeed");LAYOUT$1.addVariant(10,struct$1([publicKey$2$1("base"),rustStringLayout$1("seed"),publicKey$2$1("owner")]),"assignWithSeed");LAYOUT$1.addVariant(11,struct$1([ns64$1("lamports"),rustStringLayout$1("seed"),publicKey$2$1("owner")]),"transferWithSeed");Math.max(...Object.values(LAYOUT$1.registry).map(o=>o.span));let WrappedLayout$1$1=class extends Layout_2$1{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}};function publicKey$1$1(o){return new WrappedLayout$1$1(blob$1(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}struct$1([u32$1("version"),u32$1("state"),publicKey$1$1("authorizedPubkey"),publicKey$1$1("nonce"),struct$1([nu64$1("lamportsPerSignature")],"feeCalculator")]);function hash(o){return new TextDecoder().decode(sha256$2(o))}var sha256$1=Object.freeze({__proto__:null,hash});function createWithSeedSync(o,e,s){const a=Buffer$1.concat([o.toBuffer(),Buffer$1.from(e),s.toBuffer()]);return new PublicKey(sha256$2(a))}var pubkey=Object.freeze({__proto__:null,createWithSeedSync});const TOKEN_PROGRAM_ID$2=new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),ASSOCIATED_PROGRAM_ID$1=new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");function associatedAddress({mint:o,owner:e}){return PublicKey.findProgramAddressSync([e.toBuffer(),TOKEN_PROGRAM_ID$2.toBuffer(),o.toBuffer()],ASSOCIATED_PROGRAM_ID$1)[0]}var token=Object.freeze({__proto__:null,TOKEN_PROGRAM_ID:TOKEN_PROGRAM_ID$2,ASSOCIATED_PROGRAM_ID:ASSOCIATED_PROGRAM_ID$1,associatedAddress}),browserPonyfill$1={exports:{}};(function(o,e){var s=typeof self<"u"?self:commonjsGlobal$1,a=function(){function d(){this.fetch=!1,this.DOMException=s.DOMException}return d.prototype=s,new d}();(function(d){(function(h){var _={searchParams:"URLSearchParams"in d,iterable:"Symbol"in d&&"iterator"in Symbol,blob:"FileReader"in d&&"Blob"in d&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in d,arrayBuffer:"ArrayBuffer"in d};function b(j){return j&&DataView.prototype.isPrototypeOf(j)}if(_.arrayBuffer)var $=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],_e=ArrayBuffer.isView||function(j){return j&&$.indexOf(Object.prototype.toString.call(j))>-1};function nt(j){if(typeof j!="string"&&(j=String(j)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(j))throw new TypeError("Invalid character in header field name");return j.toLowerCase()}function rt(j){return typeof j!="string"&&(j=String(j)),j}function tt(j){var et={next:function(){var at=j.shift();return{done:at===void 0,value:at}}};return _.iterable&&(et[Symbol.iterator]=function(){return et}),et}function ct(j){this.map={},j instanceof ct?j.forEach(function(et,at){this.append(at,et)},this):Array.isArray(j)?j.forEach(function(et){this.append(et[0],et[1])},this):j&&Object.getOwnPropertyNames(j).forEach(function(et){this.append(et,j[et])},this)}ct.prototype.append=function(j,et){j=nt(j),et=rt(et);var at=this.map[j];this.map[j]=at?at+", "+et:et},ct.prototype.delete=function(j){delete this.map[nt(j)]},ct.prototype.get=function(j){return j=nt(j),this.has(j)?this.map[j]:null},ct.prototype.has=function(j){return this.map.hasOwnProperty(nt(j))},ct.prototype.set=function(j,et){this.map[nt(j)]=rt(et)},ct.prototype.forEach=function(j,et){for(var at in this.map)this.map.hasOwnProperty(at)&&j.call(et,this.map[at],at,this)},ct.prototype.keys=function(){var j=[];return this.forEach(function(et,at){j.push(at)}),tt(j)},ct.prototype.values=function(){var j=[];return this.forEach(function(et){j.push(et)}),tt(j)},ct.prototype.entries=function(){var j=[];return this.forEach(function(et,at){j.push([at,et])}),tt(j)},_.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function ht(j){if(j.bodyUsed)return Promise.reject(new TypeError("Already read"));j.bodyUsed=!0}function dt(j){return new Promise(function(et,at){j.onload=function(){et(j.result)},j.onerror=function(){at(j.error)}})}function lt(j){var et=new FileReader,at=dt(et);return et.readAsArrayBuffer(j),at}function st(j){var et=new FileReader,at=dt(et);return et.readAsText(j),at}function it(j){for(var et=new Uint8Array(j),at=new Array(et.length),pt=0;pt-1?et:j}function It(j,et){et=et||{};var at=et.body;if(j instanceof It){if(j.bodyUsed)throw new TypeError("Already read");this.url=j.url,this.credentials=j.credentials,et.headers||(this.headers=new ct(j.headers)),this.method=j.method,this.mode=j.mode,this.signal=j.signal,!at&&j._bodyInit!=null&&(at=j._bodyInit,j.bodyUsed=!0)}else this.url=String(j);if(this.credentials=et.credentials||this.credentials||"same-origin",(et.headers||!this.headers)&&(this.headers=new ct(et.headers)),this.method=At(et.method||this.method||"GET"),this.mode=et.mode||this.mode||null,this.signal=et.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&at)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(at)}It.prototype.clone=function(){return new It(this,{body:this._bodyInit})};function kt(j){var et=new FormData;return j.trim().split("&").forEach(function(at){if(at){var pt=at.split("="),gt=pt.shift().replace(/\+/g," "),mt=pt.join("=").replace(/\+/g," ");et.append(decodeURIComponent(gt),decodeURIComponent(mt))}}),et}function xt(j){var et=new ct,at=j.replace(/\r?\n[\t ]+/g," ");return at.split(/\r?\n/).forEach(function(pt){var gt=pt.split(":"),mt=gt.shift().trim();if(mt){var wt=gt.join(":").trim();et.append(mt,wt)}}),et}St.call(It.prototype);function $t(j,et){et||(et={}),this.type="default",this.status=et.status===void 0?200:et.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in et?et.statusText:"OK",this.headers=new ct(et.headers),this.url=et.url||"",this._initBody(j)}St.call($t.prototype),$t.prototype.clone=function(){return new $t(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},$t.error=function(){var j=new $t(null,{status:0,statusText:""});return j.type="error",j};var Ot=[301,302,303,307,308];$t.redirect=function(j,et){if(Ot.indexOf(et)===-1)throw new RangeError("Invalid status code");return new $t(null,{status:et,headers:{location:j}})},h.DOMException=d.DOMException;try{new h.DOMException}catch{h.DOMException=function(et,at){this.message=et,this.name=at;var pt=Error(et);this.stack=pt.stack},h.DOMException.prototype=Object.create(Error.prototype),h.DOMException.prototype.constructor=h.DOMException}function yt(j,et){return new Promise(function(at,pt){var gt=new It(j,et);if(gt.signal&>.signal.aborted)return pt(new h.DOMException("Aborted","AbortError"));var mt=new XMLHttpRequest;function wt(){mt.abort()}mt.onload=function(){var Et={status:mt.status,statusText:mt.statusText,headers:xt(mt.getAllResponseHeaders()||"")};Et.url="responseURL"in mt?mt.responseURL:Et.headers.get("X-Request-URL");var ot="response"in mt?mt.response:mt.responseText;at(new $t(ot,Et))},mt.onerror=function(){pt(new TypeError("Network request failed"))},mt.ontimeout=function(){pt(new TypeError("Network request failed"))},mt.onabort=function(){pt(new h.DOMException("Aborted","AbortError"))},mt.open(gt.method,gt.url,!0),gt.credentials==="include"?mt.withCredentials=!0:gt.credentials==="omit"&&(mt.withCredentials=!1),"responseType"in mt&&_.blob&&(mt.responseType="blob"),gt.headers.forEach(function(Et,ot){mt.setRequestHeader(ot,Et)}),gt.signal&&(gt.signal.addEventListener("abort",wt),mt.onreadystatechange=function(){mt.readyState===4&>.signal.removeEventListener("abort",wt)}),mt.send(typeof gt._bodyInit>"u"?null:gt._bodyInit)})}return yt.polyfill=!0,d.fetch||(d.fetch=yt,d.Headers=ct,d.Request=It,d.Response=$t),h.Headers=ct,h.Request=It,h.Response=$t,h.fetch=yt,Object.defineProperty(h,"__esModule",{value:!0}),h})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var c=a;e=c.fetch,e.default=c.fetch,e.fetch=c.fetch,e.Headers=c.Headers,e.Request=c.Request,e.Response=c.Response,o.exports=e})(browserPonyfill$1,browserPonyfill$1.exports);var fetch$1=getDefaultExportFromCjs$1(browserPonyfill$1.exports);async function verifiedBuild(o,e,s=5){const a=`https://api.apr.dev/api/v0/program/${e.toString()}/latest?limit=${s}`,[c,d]=await Promise.all([fetchData(o,e),fetch$1(a)]),h=(await d.json()).filter(b=>!b.aborted&&b.state==="Built"&&b.verified==="Verified");if(h.length===0)return null;const _=h[0];return c.slot.toNumber()!==_.verified_slot?null:_}async function fetchData(o,e){const s=await o.getAccountInfo(e);if(s===null)throw new Error("program account not found");const{program:a}=decodeUpgradeableLoaderState(s.data),c=await o.getAccountInfo(a.programdataAddress);if(c===null)throw new Error("program data account not found");const{programData:d}=decodeUpgradeableLoaderState(c.data);return d}const UPGRADEABLE_LOADER_STATE_LAYOUT=dist$2.rustEnum([dist$2.struct([],"uninitialized"),dist$2.struct([dist$2.option(dist$2.publicKey(),"authorityAddress")],"buffer"),dist$2.struct([dist$2.publicKey("programdataAddress")],"program"),dist$2.struct([dist$2.u64("slot"),dist$2.option(dist$2.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,dist$2.u32());function decodeUpgradeableLoaderState(o){return UPGRADEABLE_LOADER_STATE_LAYOUT.decode(o)}var registry=Object.freeze({__proto__:null,verifiedBuild,fetchData,decodeUpgradeableLoaderState}),index=Object.freeze({__proto__:null,sha256:sha256$1,rpc,publicKey:pubkey,bytes:index$1,token,features,registry});function splitArgsAndCtx(o,e){var s,a;let c={};const d=o.args?o.args.length:0;if(e.length>d){if(e.length!==d+1)throw new Error(`provided too many arguments ${e} to instruction ${o==null?void 0:o.name} expecting: ${(a=(s=o.args)===null||s===void 0?void 0:s.map(h=>h.name))!==null&&a!==void 0?a:[]}`);c=e.pop()}return[e,c]}class InstructionNamespaceFactory{static build(e,s,a){if(e.name==="_inner")throw new IdlError("the _inner name is reserved");const c=(...d)=>{const[h,_]=splitArgsAndCtx(e,[...d]);validateAccounts(e.accounts,_.accounts),validateInstruction(e,...d);const b=c.accounts(_.accounts);return _.remainingAccounts!==void 0&&b.push(..._.remainingAccounts),isSet("debug-logs")&&console.log("Outgoing account metas:",b),new TransactionInstruction({keys:b,programId:a,data:s(e.name,toInstruction(e,...h))})};return c.accounts=d=>InstructionNamespaceFactory.accountsArray(d,e.accounts,a,e.name),c}static accountsArray(e,s,a,c){return e?s.map(d=>{if(isCompositeAccounts(d)){const _e=e[d.name];return InstructionNamespaceFactory.accountsArray(_e,d.accounts,a,c).flat()}let h;try{h=translateAddress(e[d.name])}catch{throw new Error(`Wrong input type for account "${d.name}" in the instruction accounts object${c!==void 0?' for instruction "'+c+'"':""}. Expected PublicKey or string.`)}const _=d.optional&&h.equals(a),b=!!(d.writable&&!_),$=!!(d.signer&&!_);return{pubkey:h,isWritable:b,isSigner:$}}).flat():[]}}function validateInstruction(o,...e){}class TransactionFactory{static build(e,s){return(...c)=>{var d,h,_;const[,b]=splitArgsAndCtx(e,[...c]),$=new Transaction;if(b.preInstructions&&b.instructions)throw new Error("instructions is deprecated, use preInstructions");return(d=b.preInstructions)===null||d===void 0||d.forEach(_e=>$.add(_e)),(h=b.instructions)===null||h===void 0||h.forEach(_e=>$.add(_e)),$.add(s(...c)),(_=b.postInstructions)===null||_===void 0||_.forEach(_e=>$.add(_e)),$}}}class RpcFactory{static build(e,s,a,c){return async(...h)=>{var _;const b=s(...h),[,$]=splitArgsAndCtx(e,[...h]);if(c.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");try{return await c.sendAndConfirm(b,(_=$.signers)!==null&&_!==void 0?_:[],$.options)}catch(_e){throw translateError(_e,a)}}}}class AccountFactory{static build(e,s,a,c){var d;return((d=e.accounts)!==null&&d!==void 0?d:[]).reduce((h,_)=>(h[_.name]=new AccountClient(e,_,a,c,s),h),{})}}class AccountClient{get size(){return this._size}get programId(){return this._programId}get provider(){return this._provider}get coder(){return this._coder}constructor(e,s,a,c,d){this._idlAccount=s,this._programId=a,this._provider=c??getProvider(),this._coder=d??new BorshCoder(e),this._size=this._coder.accounts.size(s.name)}async fetchNullable(e,s){const{data:a}=await this.fetchNullableAndContext(e,s);return a}async fetchNullableAndContext(e,s){const a=await this.getAccountInfoAndContext(e,s),{value:c,context:d}=a;return{data:c&&c.data.length!==0?this._coder.accounts.decode(this._idlAccount.name,c.data):null,context:d}}async fetch(e,s){const{data:a}=await this.fetchNullableAndContext(e,s);if(a===null)throw new Error(`Account does not exist or has no data ${e.toString()}`);return a}async fetchAndContext(e,s){const{data:a,context:c}=await this.fetchNullableAndContext(e,s);if(a===null)throw new Error(`Account does not exist ${e.toString()}`);return{data:a,context:c}}async fetchMultiple(e,s){return(await this.fetchMultipleAndContext(e,s)).map(c=>c?c.data:null)}async fetchMultipleAndContext(e,s){return(await getMultipleAccountsAndContext(this._provider.connection,e.map(c=>translateAddress(c)),s)).map(c=>{if(c==null)return null;const{account:d,context:h}=c;return{data:this._coder.accounts.decode(this._idlAccount.name,d.data),context:h}})}async all(e){const s=this.coder.accounts.memcmp(this._idlAccount.name,e instanceof Buffer?e:void 0),a=[];return(s==null?void 0:s.offset)!=null&&(s==null?void 0:s.bytes)!=null&&a.push({memcmp:{offset:s.offset,bytes:s.bytes}}),(s==null?void 0:s.dataSize)!=null&&a.push({dataSize:s.dataSize}),(await this._provider.connection.getProgramAccounts(this._programId,{commitment:this._provider.connection.commitment,filters:[...a,...Array.isArray(e)?e:[]]})).map(({pubkey:d,account:h})=>({publicKey:d,account:this._coder.accounts.decode(this._idlAccount.name,h.data)}))}subscribe(e,s){const a=subscriptions.get(e.toString());if(a)return a.ee;const c=new EventEmitter;e=translateAddress(e);const d=this._provider.connection.onAccountChange(e,h=>{const _=this._coder.accounts.decode(this._idlAccount.name,h.data);c.emit("change",_)},s);return subscriptions.set(e.toString(),{ee:c,listener:d}),c}async unsubscribe(e){let s=subscriptions.get(e.toString());if(!s){console.warn("Address is not subscribed");return}subscriptions&&await this._provider.connection.removeAccountChangeListener(s.listener).then(()=>{subscriptions.delete(e.toString())}).catch(console.error)}async createInstruction(e,s){const a=this.size;if(this._provider.publicKey===void 0)throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field.");return SystemProgram.createAccount({fromPubkey:this._provider.publicKey,newAccountPubkey:e.publicKey,space:s??a,lamports:await this._provider.connection.getMinimumBalanceForRentExemption(s??a),programId:this._programId})}async getAccountInfo(e,s){return await this._provider.connection.getAccountInfo(translateAddress(e),s)}async getAccountInfoAndContext(e,s){return await this._provider.connection.getAccountInfoAndContext(translateAddress(e),s)}}const subscriptions=new Map,PROGRAM_LOG="Program log: ",PROGRAM_DATA="Program data: ",PROGRAM_LOG_START_INDEX=PROGRAM_LOG.length,PROGRAM_DATA_START_INDEX=PROGRAM_DATA.length;class EventManager{constructor(e,s,a){this._programId=e,this._provider=s,this._eventParser=new EventParser(e,a),this._eventCallbacks=new Map,this._eventListeners=new Map,this._listenerIdCount=0}addEventListener(e,s){var a;let c=this._listenerIdCount;return this._listenerIdCount+=1,this._eventListeners.has(e)||this._eventListeners.set(e,[]),this._eventListeners.set(e,((a=this._eventListeners.get(e))!==null&&a!==void 0?a:[]).concat(c)),this._eventCallbacks.set(c,[e,s]),this._onLogsSubscriptionId!==void 0||(this._onLogsSubscriptionId=this._provider.connection.onLogs(this._programId,(d,h)=>{if(!d.err)for(const _ of this._eventParser.parseLogs(d.logs)){const b=this._eventListeners.get(_.name);b&&b.forEach($=>{const _e=this._eventCallbacks.get($);if(_e){const[,nt]=_e;nt(_.data,h.slot,d.signature)}})}})),c}async removeEventListener(e){const s=this._eventCallbacks.get(e);if(!s)throw new Error(`Event listener ${e} doesn't exist!`);const[a]=s;let c=this._eventListeners.get(a);if(!c)throw new Error(`Event listeners don't exist for ${a}!`);if(this._eventCallbacks.delete(e),c=c.filter(d=>d!==e),this._eventListeners.set(a,c),c.length===0&&this._eventListeners.delete(a),this._eventCallbacks.size===0){if(this._eventListeners.size!==0)throw new Error(`Expected event listeners size to be 0 but got ${this._eventListeners.size}`);this._onLogsSubscriptionId!==void 0&&(await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId),this._onLogsSubscriptionId=void 0)}}}class EventParser{constructor(e,s){this.coder=s,this.programId=e}*parseLogs(e,s=!1){const a=new LogScanner(e),c=new ExecutionContext;let d=a.next();for(;d!==null;){let[h,_,b]=this.handleLog(c,d,s);h&&(yield h),_&&c.push(_),b&&c.pop(),d=a.next()}}handleLog(e,s,a){return e.stack.length>0&&e.program()===this.programId.toString()?this.handleProgramLog(s,a):[null,...this.handleSystemLog(s)]}handleProgramLog(e,s){if(e.startsWith(PROGRAM_LOG)||e.startsWith(PROGRAM_DATA)){const a=e.startsWith(PROGRAM_LOG)?e.slice(PROGRAM_LOG_START_INDEX):e.slice(PROGRAM_DATA_START_INDEX),c=this.coder.events.decode(a);if(s&&c===null)throw new Error(`Unable to decode event ${a}`);return[c,null,!1]}else return[null,...this.handleSystemLog(e)]}handleSystemLog(e){const s=e.split(":")[0];return s.match(/^Program (.*) success/g)!==null?[null,!0]:s.startsWith(`Program ${this.programId.toString()} invoke`)?[this.programId.toString(),!1]:s.includes("invoke")?["cpi",!1]:[null,!1]}}class ExecutionContext{constructor(){this.stack=[]}program(){if(!this.stack.length)throw new Error("Expected the stack to have elements");return this.stack[this.stack.length-1]}push(e){this.stack.push(e)}pop(){if(!this.stack.length)throw new Error("Expected the stack to have elements");this.stack.pop()}}class LogScanner{constructor(e){this.logs=e}next(){if(this.logs.length===0)return null;let e=this.logs[0];return this.logs=this.logs.slice(1),e}}class SimulateFactory{static build(e,s,a,c,d,h,_){return async(...$)=>{var _e;const nt=s(...$),[,rt]=splitArgsAndCtx(e,[...$]);let tt;if(c.simulate===void 0)throw new Error("This function requires 'Provider.simulate' to be implemented.");try{tt=await c.simulate(nt,rt.signers,(_e=rt.options)===null||_e===void 0?void 0:_e.commitment)}catch(dt){throw translateError(dt,a)}if(tt===void 0)throw new Error("Unable to simulate transaction");const ct=tt.logs;if(!ct)throw new Error("Simulated logs not found");const ht=[];if(_.events){let dt=new EventParser(h,d);for(const lt of dt.parseLogs(ct))ht.push(lt)}return{events:ht,raw:ct}}}}function uint64$1(o){return new WrappedLayout$2(blob$1(8),e=>u64$2.fromBuffer(e),e=>e.toBuffer(),o)}function publicKey$4(o){return new WrappedLayout$2(blob$1(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}function coption$1(o,e){return new COptionLayout$1(o,e)}let WrappedLayout$2=class extends Layout_2$1{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}},COptionLayout$1=class extends Layout_2$1{constructor(e,s){super(-1,s),this.layout=e,this.discriminator=u32$1()}encode(e,s,a=0){return e==null?this.layout.span+this.discriminator.encode(0,s,a):(this.discriminator.encode(1,s,a),this.layout.encode(e,s,a+4)+4)}decode(e,s=0){const a=this.discriminator.decode(e,s);if(a===0)return null;if(a===1)return this.layout.decode(e,s+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(e,s=0){return this.layout.getSpan(e,s+4)+4}},u64$2=class ir extends BN{toBuffer(){const e=super.toArray().reverse(),s=Buffer.from(e);if(s.length===8)return s;if(s.length>=8)throw new Error("u64 too large");const a=Buffer.alloc(8);return s.copy(a),a}static fromBuffer(e){if(e.length!==8)throw new Error(`Invalid buffer length: ${e.length}`);return new ir([...e].reverse().map(s=>`00${s.toString(16)}`.slice(-2)).join(""),16)}};const TOKEN_ACCOUNT_LAYOUT=struct$1([publicKey$4("mint"),publicKey$4("owner"),uint64$1("amount"),coption$1(publicKey$4(),"delegate"),(o=>{const e=union$2(u8$1("discriminator"),null,o);return e.addVariant(0,struct$1([]),"uninitialized"),e.addVariant(1,struct$1([]),"initialized"),e.addVariant(2,struct$1([]),"frozen"),e})("state"),coption$1(uint64$1(),"isNative"),uint64$1("delegatedAmount"),coption$1(publicKey$4(),"closeAuthority")]);function decodeTokenAccount(o){return TOKEN_ACCOUNT_LAYOUT.decode(o)}class AccountsResolver{constructor(e,s,a,c,d,h,_,b){this._args=e,this._accounts=s,this._provider=a,this._programId=c,this._idlIx=d,this._idlTypes=_,this._customResolver=b,this._accountStore=new AccountStore(a,h,c)}args(e){this._args=e}async resolve(){this.resolveEventCpi(this._idlIx.accounts),this.resolveConst(this._idlIx.accounts);let e=0;for(;await this.resolvePdasAndRelations(this._idlIx.accounts)+await this.resolveCustom()>0;)if(e++,e===16)throw new Error("Reached maximum depth for account resolution")}resolveOptionals(e){Object.assign(this._accounts,this.resolveOptionalsHelper(e,this._idlIx.accounts))}get(e){const s=e.reduce((a,c)=>a&&a[c],this._accounts);if(s&&s.toBase58)return s}set(e,s){let a=this._accounts;e.forEach((c,d)=>{var h;d===e.length-1&&(a[c]=s),a[c]=(h=a[c])!==null&&h!==void 0?h:{},a=a[c]})}resolveOptionalsHelper(e,s){const a={};for(const c of s){const d=c.name,h=e[d];h!==void 0&&(isPartialAccounts(h)?isCompositeAccounts(c)?a[d]=this.resolveOptionalsHelper(h,c.accounts):a[d]=flattenPartialAccounts(h):h!==null?a[d]=translateAddress(h):c.optional&&(a[d]=this._programId))}return a}async resolveCustom(){if(this._customResolver){const{accounts:e,resolved:s}=await this._customResolver({args:this._args,accounts:this._accounts,provider:this._provider,programId:this._programId,idlIx:this._idlIx});return this._accounts=e,s}return 0}resolveEventCpi(e,s=[]){for(const a in e){const c=e[a];isCompositeAccounts(c)&&this.resolveEventCpi(c.accounts,[...s,c.name]);const d=+a+1;if(d===e.length)return;const h=e[a].name,_=e[d].name;if(h==="eventAuthority"&&_==="program"){const b=[...s,h],$=[...s,_];this.get(b)||this.set(b,PublicKey.findProgramAddressSync([Buffer.from("__event_authority")],this._programId)[0]),this.get($)||this.set($,this._programId);return}}}resolveConst(e,s=[]){for(const a of e){const c=a.name;if(isCompositeAccounts(a))this.resolveConst(a.accounts,[...s,c]);else{const d=a;if((d.signer||d.address)&&!this.get([...s,c])){if(d.signer){if(!this._provider.wallet)throw new Error("This function requires the `Provider` interface implementor to have a `wallet` field.");this.set([...s,c],this._provider.wallet.publicKey)}d.address&&this.set([...s,c],translateAddress(d.address))}}}}async resolvePdasAndRelations(e,s=[]){let a=0;for(const c of e){const d=c.name;if(isCompositeAccounts(c))a+=await this.resolvePdasAndRelations(c.accounts,[...s,d]);else{const h=c;if((h.pda||h.relations)&&!this.get([...s,d])){a++;try{if(h.pda){const _=await Promise.all(h.pda.seeds.map(_e=>this.toBuffer(_e,s)));if(_.some(_e=>!_e))continue;const b=await this.parseProgramId(h,s),[$]=PublicKey.findProgramAddressSync(_,b);this.set([...s,d],$)}}catch{}try{if(h.relations){const _=this.get([...s,h.relations[0]]);if(_){const b=await this._accountStore.fetchAccount({publicKey:_});this.set([...s,d],b[d])}}}catch{}}}}return a}async parseProgramId(e,s=[]){var a;if(!(!((a=e.pda)===null||a===void 0)&&a.program))return this._programId;const c=await this.toBuffer(e.pda.program,s);if(!c)throw new Error(`Program seed not resolved: ${e.name}`);return new PublicKey(c)}async toBuffer(e,s=[]){switch(e.kind){case"const":return this.toBufferConst(e);case"arg":return await this.toBufferArg(e);case"account":return await this.toBufferAccount(e,s);default:throw new Error(`Unexpected seed: ${e}`)}}toBufferConst(e){return this.toBufferValue("bytes",e.value)}async toBufferArg(e){const[s,...a]=e.path.split("."),c=this._idlIx.args.findIndex(_=>_.name===s);if(c===-1)throw new Error(`Unable to find argument for seed: ${s}`);const d=a.reduce((_,b)=>(_??{})[b],this._args[c]);if(d===void 0)return;const h=this.getType(this._idlIx.args[c].type,a);return this.toBufferValue(h,d)}async toBufferAccount(e,s=[]){const[a,...c]=e.path.split("."),d=this.get([...s,a]);if(!d)return;if(!c.length)return this.toBufferValue("pubkey",d);if(!e.account)throw new Error(`Seed account is required in order to resolve type: ${e.path}`);let _=await this._accountStore.fetchAccount({publicKey:d,name:e.account}),b=c;for(;b.length>0;)_=_[b[0]],b=b.slice(1);if(_===void 0)return;const $=this.getType({defined:{name:e.account}},c);return this.toBufferValue($,_)}toBufferValue(e,s){switch(e){case"u8":case"i8":return Buffer.from([s]);case"u16":case"i16":return new BN(s).toArrayLike(Buffer,"le",2);case"u32":case"i32":return new BN(s).toArrayLike(Buffer,"le",4);case"u64":case"i64":return new BN(s).toArrayLike(Buffer,"le",8);case"u128":case"i128":return new BN(s).toArrayLike(Buffer,"le",16);case"u256":case"i256":return new BN(s).toArrayLike(Buffer,"le",32);case"string":return Buffer.from(s);case"pubkey":return s.toBuffer();case"bytes":return Buffer.from(s);default:if(e!=null&&e.array)return Buffer.from(s);throw new Error(`Unexpected seed type: ${e}`)}}getType(e,s=[]){var a;const c=(a=e==null?void 0:e.defined)===null||a===void 0?void 0:a.name;if(c){if(c==="tokenAccount")switch(s.at(0)){case"mint":case"owner":return"pubkey";case"amount":case"delagatedAmount":return"u64";default:throw new Error(`Unknown token account path: ${s}`)}const d=this._idlTypes.find(_e=>_e.name===c);if(!d)throw new Error(`Type not found: ${c}`);const[h,..._]=s,$=d.type.fields.find(_e=>_e.name===h);if(!$)throw new Error(`Field not found: ${h}`);return this.getType($.type,_)}return e}}class AccountStore{constructor(e,s,a){this._provider=e,this._cache=new Map,this._idls={},this._idls[a.toBase58()]=s}async fetchAccount({publicKey:e,name:s}){const a=e.toBase58();if(!this._cache.has(a)){const c=await this._provider.connection.getAccountInfo(e);if(c===null)throw new Error(`Account not found: ${a}`);if(s==="tokenAccount"){const d=decodeTokenAccount(c.data);this._cache.set(a,d)}else{const d=await this.getAccountsNs(c.owner);if(d){const h=Object.values(d)[0];if(h){const _=h.coder.accounts.decodeAny(c.data);this._cache.set(a,_)}}}}return this._cache.get(a)}async getAccountsNs(e){const s=e.toBase58();if(!this._idls[s]){const a=await Program.fetchIdl(e,this._provider);if(a){const c=new Program(a,this._provider);this._idls[s]=c.account}}return this._idls[s]}}class MethodsBuilderFactory{static build(e,s,a,c,d,h,_,b,$,_e,nt){return(...rt)=>new MethodsBuilder(rt,c,d,h,_,b,e,s,a,$,_e,nt)}}function isPartialAccounts(o){return typeof o=="object"&&o!==null&&!("_bn"in o)}function flattenPartialAccounts(o,e){const s={};for(const a in o){const c=o[a];if(c===null)throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!");s[a]=isPartialAccounts(c)?flattenPartialAccounts(c):translateAddress(c)}return s}class MethodsBuilder{constructor(e,s,a,c,d,h,_,b,$,_e,nt,rt){this._args=e,this._ixFn=s,this._txFn=a,this._rpcFn=c,this._simulateFn=d,this._viewFn=h,this._accounts={},this._remainingAccounts=[],this._signers=[],this._preInstructions=[],this._postInstructions=[],this._resolveAccounts=!0,this._accountsResolver=new AccountsResolver(e,this._accounts,_,b,$,_e,nt,rt)}args(e){this._args=e,this._accountsResolver.args(e)}accounts(e){return this.accountsPartial(e)}accountsPartial(e){return this._resolveAccounts=!0,this._accountsResolver.resolveOptionals(e),this}accountsStrict(e){return this._resolveAccounts=!1,this._accountsResolver.resolveOptionals(e),this}signers(e){return this._signers=this._signers.concat(e),this}remainingAccounts(e){return this._remainingAccounts=this._remainingAccounts.concat(e),this}preInstructions(e,s=!1){return s?this._preInstructions=e.concat(this._preInstructions):this._preInstructions=this._preInstructions.concat(e),this}postInstructions(e){return this._postInstructions=this._postInstructions.concat(e),this}async pubkeys(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._accounts}async rpc(e){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._rpcFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async rpcAndKeys(e){return{pubkeys:await this.pubkeys(),signature:await this.rpc(e)}}async view(e){if(this._resolveAccounts&&await this._accountsResolver.resolve(),!this._viewFn)throw new Error("Method does not support views");return this._viewFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async simulate(e){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._simulateFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async instruction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._ixFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async prepare(){return{instruction:await this.instruction(),pubkeys:await this.pubkeys(),signers:this._signers}}async transaction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._txFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}}class ViewFactory{static build(e,s,a,c){const d=s.accounts.find(b=>b.writable),h=!!s.returns;return d||!h?void 0:async(...b)=>{let $=await a(...b);const _e=`Program return: ${e} `;let nt=$.raw.find(ht=>ht.startsWith(_e));if(!nt)throw new Error("View expected return log");let rt=decode(nt.slice(_e.length)),tt=s.returns;if(!tt)throw new Error("View expected return type");return IdlCoder.fieldLayout({type:tt},c.types).decode(rt)}}}class NamespaceFactory{static build(e,s,a,c,d){const h={},_={},b={},$={},_e={},nt={},rt=parseIdlErrors(e),tt=e.accounts?AccountFactory.build(e,s,a,c):{};return e.instructions.forEach(ct=>{const ht=InstructionNamespaceFactory.build(ct,(vt,At)=>s.instruction.encode(vt,At),a),dt=TransactionFactory.build(ct,ht),lt=RpcFactory.build(ct,dt,rt,c),st=SimulateFactory.build(ct,dt,rt,c,s,a,e),it=ViewFactory.build(a,ct,st,e),_t=MethodsBuilderFactory.build(c,a,ct,ht,dt,lt,st,it,tt,e.types||[],d==null?void 0:d(ct)),St=ct.name;_[St]=ht,b[St]=dt,h[St]=lt,$[St]=st,_e[St]=_t,it&&(nt[St]=it)}),[h,_,b,tt,$,_e,nt]}}class Program{get programId(){return this._programId}get idl(){return this._idl}get rawIdl(){return this._rawIdl}get coder(){return this._coder}get provider(){return this._provider}constructor(e,s=getProvider(),a,c){const d=convertIdlToCamelCase(e);this._idl=d,this._rawIdl=e,this._provider=s,this._programId=translateAddress(e.address),this._coder=a??new BorshCoder(d),this._events=new EventManager(this._programId,s,this._coder);const[h,_,b,$,_e,nt,rt]=NamespaceFactory.build(d,this._coder,this._programId,s,c);this.rpc=h,this.instruction=_,this.transaction=b,this.account=$,this.simulate=_e,this.methods=nt,this.views=rt}static async at(e,s){const a=translateAddress(e),c=await Program.fetchIdl(a,s);if(!c)throw new Error(`IDL not found for program: ${e.toString()}`);return new Program(c,s)}static async fetchIdl(e,s){s=s??getProvider();const a=translateAddress(e),c=await idlAddress(a),d=await s.connection.getAccountInfo(c);if(!d)return null;let h=decodeIdlAccount(d.data.slice(8));const _=inflate_1(h.data);return JSON.parse(decode$2(_))}addEventListener(e,s){return this._events.addEventListener(e,s)}async removeEventListener(e){return await this._events.removeEventListener(e)}}new PublicKey("11111111111111111111111111111111");const address="3DNfsn8oRdET1qob8PsoKuWkZ78r6qTCWfMZskUmpJgL",metadata={name:"fall",version:"0.1.0",spec:"0.1.0",description:"Created with Anchor"},instructions=[{name:"borrow",discriminator:[228,253,131,202,207,116,89,18],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"borrower",signer:!0},{name:"borrower_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_b",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_borrow_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrow_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_borrow_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrower_borrow_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"borrow_amount",type:"u64"}]},{name:"create_amm",discriminator:[242,91,21,170,5,68,125,64],accounts:[{name:"amm",writable:!0,pda:{seeds:[{kind:"arg",path:"id"}]}},{name:"admin"},{name:"payer",writable:!0,signer:!0},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"id",type:"pubkey"}]},{name:"create_pool",discriminator:[233,146,209,142,207,104,64,188],accounts:[{name:"amm",pda:{seeds:[{kind:"account",path:"amm.id",account:"Amm"}]}},{name:"mint_a"},{name:"mint_b"},{name:"pool",writable:!0,pda:{seeds:[{kind:"account",path:"amm"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"amm"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"fee",type:"u16"}]},{name:"deposit_collateral",discriminator:[156,131,142,116,146,247,162,120],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_b",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"borrower",signer:!0},{name:"borrower_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_b",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_borrow_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrower_borrow_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount",type:"u64"}]},{name:"deposit_liquidity",discriminator:[245,99,59,25,151,71,233,249],accounts:[{name:"pool",writable:!0,pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"depositor",docs:["The account paying for all rents"],signer:!0},{name:"liquidity_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[98]}]}},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_liquidity",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"liquidity_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",docs:["The account paying for all rents"],writable:!0,signer:!0},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount_a",type:"u64"},{name:"amount_b",type:"u64"}]},{name:"init_lending_pool_1",discriminator:[111,87,89,249,229,194,59,237],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"mint_a"},{name:"mint_b"},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"init_lending_pool_2",discriminator:[70,160,247,111,154,255,24,219],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[101]}]}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"init_lending_pool_3",discriminator:[226,110,186,213,63,178,83,62],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lender_lending_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[105]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"lend",discriminator:[89,34,75,168,122,47,185,45],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[101]}]}},{name:"lender_lending_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[105]}]}},{name:"lender",signer:!0},{name:"lender_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lender"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"lender"},{kind:"const",value:[103]}]}},{name:"lender_lend_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lending_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_lending_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lender_lending_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",docs:["The account paying for all rents"],writable:!0,signer:!0},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"user_lending_amount",type:"u64"}]},{name:"liquidate",discriminator:[223,179,226,125,48,46,39,74],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"trader",signer:!0},{name:"trader_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"trader"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower"},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_borrow_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrow_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"price",discriminator:[129,85,239,229,61,225,218,20],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[],returns:{defined:{name:"PriceResult"}}},{name:"redeem",discriminator:[184,12,86,149,70,196,97,225],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"},{kind:"const",value:[97]}]}},{name:"mint_a"},{name:"mint_b"},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[101]}]}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"lender_lending_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[105]}]}},{name:"lender",signer:!0},{name:"lender_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lender"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lender"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"lender"},{kind:"const",value:[103]}]}},{name:"lender_lending_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lending_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_lending_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lender_lending_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"repay",discriminator:[234,103,67,82,208,234,219,166],accounts:[{name:"mint_a"},{name:"mint_b"},{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"borrower",signer:!0},{name:"borrower_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_borrow_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrow_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_borrow_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrower_borrow_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"swap_exact_tokens_for_tokens",discriminator:[249,86,253,50,177,221,73,162],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"trader",signer:!0},{name:"trader_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"trader"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"trader_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"trader"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"swap_a",type:"bool"},{name:"input_amount",type:"u64"},{name:"min_output_amount",type:"u64"}]},{name:"withdraw_liquidity",discriminator:[149,158,33,185,47,243,253,31],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"depositor",signer:!0},{name:"liquidity_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[98]}]}},{name:"mint_a",writable:!0,relations:["pool"]},{name:"mint_b",writable:!0,relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_liquidity",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"liquidity_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",docs:["The account paying for all rents"],writable:!0,signer:!0},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount",type:"u64"}]}],accounts=[{name:"Amm",discriminator:[143,245,200,17,74,214,196,135]},{name:"Pool",discriminator:[241,154,109,4,17,177,109,188]}],errors$1=[{code:6e3,name:"ExistingLending",msg:"Existing lending"},{code:6001,name:"InsufficientBalance",msg:"Insufficient balance"}],types$1=[{name:"Amm",type:{kind:"struct",fields:[{name:"id",docs:["The primary key of the AMM"],type:"pubkey"},{name:"admin",docs:["Account that has admin authority over the AMM"],type:"pubkey"}]}},{name:"Pool",type:{kind:"struct",fields:[{name:"amm",docs:["Primary key of the AMM"],type:"pubkey"},{name:"mint_a",docs:["Mint of token A"],type:"pubkey"},{name:"mint_b",docs:["Mint of token B"],type:"pubkey"},{name:"fee",docs:["The LP fee taken on each trade, in basis points"],type:"u16"},{name:"token_a_amount",docs:["借贷池中token a的数量"],type:"u64"},{name:"token_b_amount",docs:["借贷池中token b的数量"],type:"u64"},{name:"min_collateral_ratio",docs:["最小抵押率 (基点表示,20000 = 200%)"],type:"u64"},{name:"borrow_interest_accumulator_block_height",docs:["记录上次借贷池interest_step更新时的区块高度"],type:"u64"},{name:"borrow_interest_accumulator",docs:["借款累计利息,随着区块高度增加而增加,但是增加幅度与资金借出量正相关"],type:"u64"},{name:"share_lending_block_height",docs:["共享借贷累加器区块高度"],type:"u64"},{name:"share_lending_accumulator",docs:["共享借贷累加器,资金借出量的时间积分"],type:"u64"}]}},{name:"PriceResult",type:{kind:"struct",fields:[{name:"token_a_amount",type:"u64"},{name:"token_b_amount",type:"u64"}]}}],constants=[{name:"AUTHORITY_SEED",type:"bytes",value:"[97]"},{name:"BASE_RATE",type:"u64",value:"10000"},{name:"BORROWER_AUTHORITY_SEED",type:"bytes",value:"[103]"},{name:"BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED",type:"bytes",value:"[106]"},{name:"BORROW_TOKEN_SEED",type:"bytes",value:"[102]"},{name:"COLLATERAL_TOKEN_SEED",type:"bytes",value:"[104]"},{name:"LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED",type:"bytes",value:"[105]"},{name:"LENDING_AUTHORITY_SEED",type:"bytes",value:"[100]"},{name:"LENDING_TOKEN_SEED",type:"bytes",value:"[101]"},{name:"LIQUIDITY_SEED",type:"bytes",value:"[98]"},{name:"MINIMUM_LIQUIDITY",type:"u64",value:"100"},{name:"MIN_COLLATERAL_RATIO_BASE",type:"u64",value:"10000"}],fallIdl={address,metadata,instructions,accounts,errors:errors$1,types:types$1,constants};async function createAmm(o,e,s){try{const a=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),c=new Program(fallIdl,a),[d]=PublicKey.findProgramAddressSync([s.toBuffer()],c.programId);return await c.methods.createAmm(s).accounts({amm:d,admin:a.wallet.publicKey,payer:a.wallet.publicKey,systemProgram:SystemProgram.programId}).rpc()}catch(a){throw console.error("Error details:",a),a}}const CreateAmmForm=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState(""),[c,d]=reactExports.useState("500"),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async nt=>{if(nt.preventDefault(),a(""),_(!0),!o){a("Please connect your wallet first"),_(!1);return}const rt=Number(c);if(rt<1||rt>1e4){a("Fee must be between 1 and 10000"),_(!1);return}try{const tt=PublicKey.unique(),ct=await createAmm(o,e,tt);console.log(`Transaction URL: https://explorer.solana.com/tx/${ct}`),$(tt.toString()),d("500")}catch(tt){console.error("Error creating AMM:",tt),a(tt instanceof Error?tt.message:"Failed to create AMM. Please try again.")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"create-amm-container",children:[s&&jsxRuntimeExports.jsx("div",{className:"error-message",children:s}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["AMM created successfully! ID: ",b]}),jsxRuntimeExports.jsx("form",{onSubmit:_e,className:"form",children:jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:h||!o,children:h?"Creating...":"Create AMM"})})]})},getAmmAccounts=async(o,e)=>{console.log("Getting AMM accounts connection:",e);const s=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),c=await new Program(fallIdl,s).account.amm.all();for(const d of c)console.log("AMM Account Details:",{publicKey:d.publicKey.toString(),id:d.account.id.toString(),admin:d.account.admin.toString()});return c.map(d=>({pubkey:d.publicKey.toString(),ammid:d.account.id.toString()}))},AmmContext=reactExports.createContext(void 0),AmmProvider=({children:o})=>{const[e,s]=reactExports.useState(null);return jsxRuntimeExports.jsx(AmmContext.Provider,{value:{amm:e,setAmm:s},children:o})},useAmm=()=>{const o=reactExports.useContext(AmmContext);if(!o)throw new Error("useAmm must be used within an AmmProvider");return o},AmmList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),{setAmm:b}=useAmm(),$=async()=>{if(o){d(!0);try{const nt=await getAmmAccounts(o,e);a(nt),nt.length>0&&b(nt[0])}catch(nt){console.error("Error fetching AMMs:",nt),_(nt instanceof Error?nt.message:"Failed to fetch AMMs")}finally{d(!1)}}};reactExports.useEffect(()=>{$()},[o,e]);const _e=nt=>{b(nt)};return jsxRuntimeExports.jsxs("div",{className:"create-amm-container",children:[jsxRuntimeExports.jsx("h2",{children:"Existing AMMs"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),c?jsxRuntimeExports.jsx("div",{children:"Loading AMMs..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"form-group",children:jsxRuntimeExports.jsx("p",{children:"No AMMs found"})}):jsxRuntimeExports.jsx("div",{className:"form-group",children:s.map(nt=>jsxRuntimeExports.jsxs("div",{className:"amm-item",onClick:()=>_e(nt),children:[jsxRuntimeExports.jsxs("div",{className:"amm-details",children:[jsxRuntimeExports.jsx("span",{className:"amm-label",children:"AMM Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"amm-value",children:nt.pubkey})]}),jsxRuntimeExports.jsxs("div",{className:"amm-details",children:[jsxRuntimeExports.jsx("span",{className:"amm-label",children:"AMM ID:"}),jsxRuntimeExports.jsxs("span",{className:"amm-value",children:[nt.ammid," bps"]})]})]},nt.pubkey))})]})};function getDefaultExportFromCjs(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var browser={exports:{}},process=browser.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(o){if(cachedSetTimeout===setTimeout)return setTimeout(o,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(o,0);try{return cachedSetTimeout(o,0)}catch{try{return cachedSetTimeout.call(null,o,0)}catch{return cachedSetTimeout.call(this,o,0)}}}function runClearTimeout(o){if(cachedClearTimeout===clearTimeout)return clearTimeout(o);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(o);try{return cachedClearTimeout(o)}catch{try{return cachedClearTimeout.call(null,o)}catch{return cachedClearTimeout.call(this,o)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var o=runTimeout(cleanUpNextTick);draining=!0;for(var e=queue.length;e;){for(currentQueue=queue,queue=[];++queueIndex1)for(var s=1;s>2]|=o[c]<>2]|=a<>2]|=(192|a>>6)<>2]|=(128|a&63)<=57344?(_[d>>2]|=(224|a>>12)<>2]|=(128|a>>6&63)<>2]|=(128|a&63)<>2]|=(240|a>>18)<>2]|=(128|a>>12&63)<>2]|=(128|a>>6&63)<>2]|=(128|a&63)<=64?(this.block=_[16],this.start=d-64,this.hash(),this.hashed=!0):this.start=d}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var o=this.blocks,e=this.lastByteIndex;o[16]=this.block,o[e>>2]|=EXTRA[e&3],this.block=o[16],e>=56&&(this.hashed||this.hash(),o[0]=this.block,o[16]=o[1]=o[2]=o[3]=o[4]=o[5]=o[6]=o[7]=o[8]=o[9]=o[10]=o[11]=o[12]=o[13]=o[14]=o[15]=0),o[14]=this.hBytes<<3|this.bytes>>>29,o[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var o=this.h0,e=this.h1,s=this.h2,a=this.h3,c=this.h4,d=this.h5,h=this.h6,_=this.h7,b=this.blocks,$,_e,nt,rt,tt,ct,ht,dt,lt,st,it;for($=16;$<64;++$)tt=b[$-15],_e=(tt>>>7|tt<<25)^(tt>>>18|tt<<14)^tt>>>3,tt=b[$-2],nt=(tt>>>17|tt<<15)^(tt>>>19|tt<<13)^tt>>>10,b[$]=b[$-16]+_e+b[$-7]+nt<<0;for(it=e&s,$=0;$<64;$+=4)this.first?(this.is224?(dt=300032,tt=b[0]-1413257819,_=tt-150054599<<0,a=tt+24177077<<0):(dt=704751109,tt=b[0]-210244248,_=tt-1521486534<<0,a=tt+143694565<<0),this.first=!1):(_e=(o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10),nt=(c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7),dt=o&e,rt=dt^o&s^it,ht=c&d^~c&h,tt=_+nt+ht+K[$]+b[$],ct=_e+rt,_=a+tt<<0,a=tt+ct<<0),_e=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),nt=(_>>>6|_<<26)^(_>>>11|_<<21)^(_>>>25|_<<7),lt=a&o,rt=lt^a&e^dt,ht=_&c^~_&d,tt=h+nt+ht+K[$+1]+b[$+1],ct=_e+rt,h=s+tt<<0,s=tt+ct<<0,_e=(s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10),nt=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),st=s&a,rt=st^s&o^lt,ht=h&_^~h&c,tt=d+nt+ht+K[$+2]+b[$+2],ct=_e+rt,d=e+tt<<0,e=tt+ct<<0,_e=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),nt=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7),it=e&s,rt=it^e&a^st,ht=d&h^~d&_,tt=c+nt+ht+K[$+3]+b[$+3],ct=_e+rt,c=o+tt<<0,o=tt+ct<<0;this.h0=this.h0+o<<0,this.h1=this.h1+e<<0,this.h2=this.h2+s<<0,this.h3=this.h3+a<<0,this.h4=this.h4+c<<0,this.h5=this.h5+d<<0,this.h6=this.h6+h<<0,this.h7=this.h7+_<<0},Sha256.prototype.hex=function(){this.finalize();var o=this.h0,e=this.h1,s=this.h2,a=this.h3,c=this.h4,d=this.h5,h=this.h6,_=this.h7,b=HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[c>>28&15]+HEX_CHARS[c>>24&15]+HEX_CHARS[c>>20&15]+HEX_CHARS[c>>16&15]+HEX_CHARS[c>>12&15]+HEX_CHARS[c>>8&15]+HEX_CHARS[c>>4&15]+HEX_CHARS[c&15]+HEX_CHARS[d>>28&15]+HEX_CHARS[d>>24&15]+HEX_CHARS[d>>20&15]+HEX_CHARS[d>>16&15]+HEX_CHARS[d>>12&15]+HEX_CHARS[d>>8&15]+HEX_CHARS[d>>4&15]+HEX_CHARS[d&15]+HEX_CHARS[h>>28&15]+HEX_CHARS[h>>24&15]+HEX_CHARS[h>>20&15]+HEX_CHARS[h>>16&15]+HEX_CHARS[h>>12&15]+HEX_CHARS[h>>8&15]+HEX_CHARS[h>>4&15]+HEX_CHARS[h&15];return this.is224||(b+=HEX_CHARS[_>>28&15]+HEX_CHARS[_>>24&15]+HEX_CHARS[_>>20&15]+HEX_CHARS[_>>16&15]+HEX_CHARS[_>>12&15]+HEX_CHARS[_>>8&15]+HEX_CHARS[_>>4&15]+HEX_CHARS[_&15]),b},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var o=this.h0,e=this.h1,s=this.h2,a=this.h3,c=this.h4,d=this.h5,h=this.h6,_=this.h7,b=[o>>24&255,o>>16&255,o>>8&255,o&255,e>>24&255,e>>16&255,e>>8&255,e&255,s>>24&255,s>>16&255,s>>8&255,s&255,a>>24&255,a>>16&255,a>>8&255,a&255,c>>24&255,c>>16&255,c>>8&255,c&255,d>>24&255,d>>16&255,d>>8&255,d&255,h>>24&255,h>>16&255,h>>8&255,h&255];return this.is224||b.push(_>>24&255,_>>16&255,_>>8&255,_&255),b},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var o=new ArrayBuffer(this.is224?28:32),e=new DataView(o);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),o};function HmacSha256(o,e,s){var a,c=typeof o;if(c==="string"){var d=[],h=o.length,_=0,b;for(a=0;a>6,d[_++]=128|b&63):b<55296||b>=57344?(d[_++]=224|b>>12,d[_++]=128|b>>6&63,d[_++]=128|b&63):(b=65536+((b&1023)<<10|o.charCodeAt(++a)&1023),d[_++]=240|b>>18,d[_++]=128|b>>12&63,d[_++]=128|b>>6&63,d[_++]=128|b&63);o=d}else if(c==="object"){if(o===null)throw new Error(ERROR);if(ARRAY_BUFFER&&o.constructor===ArrayBuffer)o=new Uint8Array(o);else if(!Array.isArray(o)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(o)))throw new Error(ERROR)}else throw new Error(ERROR);o.length>64&&(o=new Sha256(e,!0).update(o).array());var $=[],_e=[];for(a=0;a<64;++a){var nt=o[a]||0;$[a]=92^nt,_e[a]=54^nt}Sha256.call(this,e,s),this.update(_e),this.oKeyPad=$,this.inner=!0,this.sharedMemory=s}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var o=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(o),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224)})()})(sha256);var dist={};(function(o){var e=commonjsGlobal$2&&commonjsGlobal$2.__importDefault||function(Ot){return Ot&&Ot.__esModule?Ot:{default:Ot}};Object.defineProperty(o,"__esModule",{value:!0}),o.map=o.array=o.rustEnum=o.str=o.vecU8=o.tagged=o.vec=o.bool=o.option=o.publicKey=o.i256=o.u256=o.i128=o.u128=o.i64=o.u64=o.struct=o.f64=o.f32=o.i32=o.u32=o.i16=o.u16=o.i8=o.u8=void 0;const s=Layout$3,a=require$$5,c=e(bnExports);var d=Layout$3;Object.defineProperty(o,"u8",{enumerable:!0,get:function(){return d.u8}}),Object.defineProperty(o,"i8",{enumerable:!0,get:function(){return d.s8}}),Object.defineProperty(o,"u16",{enumerable:!0,get:function(){return d.u16}}),Object.defineProperty(o,"i16",{enumerable:!0,get:function(){return d.s16}}),Object.defineProperty(o,"u32",{enumerable:!0,get:function(){return d.u32}}),Object.defineProperty(o,"i32",{enumerable:!0,get:function(){return d.s32}}),Object.defineProperty(o,"f32",{enumerable:!0,get:function(){return d.f32}}),Object.defineProperty(o,"f64",{enumerable:!0,get:function(){return d.f64}}),Object.defineProperty(o,"struct",{enumerable:!0,get:function(){return d.struct}});class h extends s.Layout{constructor(yt,j,et){super(yt,et),this.blob=(0,s.blob)(yt),this.signed=j}decode(yt,j=0){const et=new c.default(this.blob.decode(yt,j),10,"le");return this.signed?et.fromTwos(this.span*8).clone():et}encode(yt,j,et=0){return this.signed&&(yt=yt.toTwos(this.span*8)),this.blob.encode(yt.toArrayLike(Buffer,"le",this.span),j,et)}}function _(Ot){return new h(8,!1,Ot)}o.u64=_;function b(Ot){return new h(8,!0,Ot)}o.i64=b;function $(Ot){return new h(16,!1,Ot)}o.u128=$;function _e(Ot){return new h(16,!0,Ot)}o.i128=_e;function nt(Ot){return new h(32,!1,Ot)}o.u256=nt;function rt(Ot){return new h(32,!0,Ot)}o.i256=rt;class tt extends s.Layout{constructor(yt,j,et,at){super(yt.span,at),this.layout=yt,this.decoder=j,this.encoder=et}decode(yt,j){return this.decoder(this.layout.decode(yt,j))}encode(yt,j,et){return this.layout.encode(this.encoder(yt),j,et)}getSpan(yt,j){return this.layout.getSpan(yt,j)}}function ct(Ot){return new tt((0,s.blob)(32),yt=>new a.PublicKey(yt),yt=>yt.toBuffer(),Ot)}o.publicKey=ct;class ht extends s.Layout{constructor(yt,j){super(-1,j),this.layout=yt,this.discriminator=(0,s.u8)()}encode(yt,j,et=0){return yt==null?this.discriminator.encode(0,j,et):(this.discriminator.encode(1,j,et),this.layout.encode(yt,j,et+1)+1)}decode(yt,j=0){const et=this.discriminator.decode(yt,j);if(et===0)return null;if(et===1)return this.layout.decode(yt,j+1);throw new Error("Invalid option "+this.property)}getSpan(yt,j=0){const et=this.discriminator.decode(yt,j);if(et===0)return 1;if(et===1)return this.layout.getSpan(yt,j+1)+1;throw new Error("Invalid option "+this.property)}}function dt(Ot,yt){return new ht(Ot,yt)}o.option=dt;function lt(Ot){return new tt((0,s.u8)(),st,it,Ot)}o.bool=lt;function st(Ot){if(Ot===0)return!1;if(Ot===1)return!0;throw new Error("Invalid bool: "+Ot)}function it(Ot){return Ot?1:0}function _t(Ot,yt){const j=(0,s.u32)("length"),et=(0,s.struct)([j,(0,s.seq)(Ot,(0,s.offset)(j,-j.span),"values")]);return new tt(et,({values:at})=>at,at=>({values:at}),yt)}o.vec=_t;function St(Ot,yt,j){const et=(0,s.struct)([_("tag"),yt.replicate("data")]);function at({tag:pt,data:gt}){if(!pt.eq(Ot))throw new Error("Invalid tag, expected: "+Ot.toString("hex")+", got: "+pt.toString("hex"));return gt}return new tt(et,at,pt=>({tag:Ot,data:pt}),j)}o.tagged=St;function vt(Ot){const yt=(0,s.u32)("length"),j=(0,s.struct)([yt,(0,s.blob)((0,s.offset)(yt,-yt.span),"data")]);return new tt(j,({data:et})=>et,et=>({data:et}),Ot)}o.vecU8=vt;function At(Ot){return new tt(vt(),yt=>yt.toString("utf-8"),yt=>Buffer.from(yt,"utf-8"),Ot)}o.str=At;function It(Ot,yt,j){const et=(0,s.union)(j??(0,s.u8)(),yt);return Ot.forEach((at,pt)=>et.addVariant(pt,at,at.property)),et}o.rustEnum=It;function kt(Ot,yt,j){const et=(0,s.struct)([(0,s.seq)(Ot,yt,"values")]);return new tt(et,({values:at})=>at,at=>({values:at}),j)}o.array=kt;class xt extends s.Layout{constructor(yt,j,et){super(yt.span+j.span,et),this.keyLayout=yt,this.valueLayout=j}decode(yt,j){j=j||0;const et=this.keyLayout.decode(yt,j),at=this.valueLayout.decode(yt,j+this.keyLayout.getSpan(yt,j));return[et,at]}encode(yt,j,et){et=et||0;const at=this.keyLayout.encode(yt[0],j,et),pt=this.valueLayout.encode(yt[1],j,et+at);return at+pt}getSpan(yt,j){return this.keyLayout.getSpan(yt,j)+this.valueLayout.getSpan(yt,j)}}function $t(Ot,yt,j){const et=(0,s.u32)("length"),at=(0,s.struct)([et,(0,s.seq)(new xt(Ot,yt),(0,s.offset)(et,-et.span),"values")]);return new tt(at,({values:pt})=>new Map(pt),pt=>({values:Array.from(pt.entries())}),j)}o.map=$t})(dist);var assert$1={exports:{}},errors={},util={},types={},shams$1=function o(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},s=Symbol("test"),a=Object(s);if(typeof s=="string"||Object.prototype.toString.call(s)!=="[object Symbol]"||Object.prototype.toString.call(a)!=="[object Symbol]")return!1;var c=42;e[s]=c;for(s in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var d=Object.getOwnPropertySymbols(e);if(d.length!==1||d[0]!==s||!Object.prototype.propertyIsEnumerable.call(e,s))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var h=Object.getOwnPropertyDescriptor(e,s);if(h.value!==c||h.enumerable!==!0)return!1}return!0},hasSymbols$3=shams$1,shams=function o(){return hasSymbols$3()&&!!Symbol.toStringTag},esErrors=Error,_eval=EvalError,range=RangeError,ref=ReferenceError,syntax=SyntaxError,type$1=TypeError,uri=URIError,origSymbol=typeof Symbol<"u"&&Symbol,hasSymbolSham=shams$1,hasSymbols$2=function o(){return typeof origSymbol!="function"||typeof Symbol!="function"||typeof origSymbol("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hasSymbolSham()},test={__proto__:null,foo:{}},$Object=Object,hasProto$1=function o(){return{__proto__:test}.foo===test.foo&&!(test instanceof $Object)},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr$4=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function o(e,s){for(var a=[],c=0;c"u"||!getProto$1?undefined$1:getProto$1(Uint8Array),INTRINSICS={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":$Error,"%eval%":eval,"%EvalError%":$EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1(getProto$1([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols$1||!getProto$1?undefined$1:getProto$1(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":$RangeError,"%ReferenceError%":$ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols$1||!getProto$1?undefined$1:getProto$1(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols$1?Symbol:undefined$1,"%SyntaxError%":$SyntaxError$1,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$2,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":$URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto$1)try{null.error}catch(o){var errorProto=getProto$1(getProto$1(o));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function o(e){var s;if(e==="%AsyncFunction%")s=getEvalledConstructor("async function () {}");else if(e==="%GeneratorFunction%")s=getEvalledConstructor("function* () {}");else if(e==="%AsyncGeneratorFunction%")s=getEvalledConstructor("async function* () {}");else if(e==="%AsyncGenerator%"){var a=o("%AsyncGeneratorFunction%");a&&(s=a.prototype)}else if(e==="%AsyncIteratorPrototype%"){var c=o("%AsyncGenerator%");c&&getProto$1&&(s=getProto$1(c.prototype))}return INTRINSICS[e]=s,s},LEGACY_ALIASES={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=functionBind,hasOwn=hasown,$concat=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function o(e){var s=$strSlice(e,0,1),a=$strSlice(e,-1);if(s==="%"&&a!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected closing `%`");if(a==="%"&&s!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected opening `%`");var c=[];return $replace(e,rePropName,function(d,h,_,b){c[c.length]=_?$replace(b,reEscapeChar,"$1"):h||d}),c},getBaseIntrinsic=function o(e,s){var a=e,c;if(hasOwn(LEGACY_ALIASES,a)&&(c=LEGACY_ALIASES[a],a="%"+c[0]+"%"),hasOwn(INTRINSICS,a)){var d=INTRINSICS[a];if(d===needsEval&&(d=doEval(a)),typeof d>"u"&&!s)throw new $TypeError$2("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:c,name:a,value:d}}throw new $SyntaxError$1("intrinsic "+e+" does not exist!")},getIntrinsic=function o(e,s){if(typeof e!="string"||e.length===0)throw new $TypeError$2("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof s!="boolean")throw new $TypeError$2('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,e)===null)throw new $SyntaxError$1("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var a=stringToPath(e),c=a.length>0?a[0]:"",d=getBaseIntrinsic("%"+c+"%",s),h=d.name,_=d.value,b=!1,$=d.alias;$&&(c=$[0],$spliceApply(a,$concat([0,1],$)));for(var _e=1,nt=!0;_e=a.length){var ht=$gOPD$1(_,rt);nt=!!ht,nt&&"get"in ht&&!("originalValue"in ht.get)?_=ht.get:_=_[rt]}else nt=hasOwn(_,rt),_=_[rt];nt&&!b&&(INTRINSICS[h]=_)}}return _},callBind$2={exports:{}},esDefineProperty,hasRequiredEsDefineProperty;function requireEsDefineProperty(){if(hasRequiredEsDefineProperty)return esDefineProperty;hasRequiredEsDefineProperty=1;var o=getIntrinsic,e=o("%Object.defineProperty%",!0)||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return esDefineProperty=e,esDefineProperty}var GetIntrinsic$2=getIntrinsic,$gOPD=GetIntrinsic$2("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch{$gOPD=null}var gopd$1=$gOPD,$defineProperty$1=requireEsDefineProperty(),$SyntaxError=syntax,$TypeError$1=type$1,gopd=gopd$1,defineDataProperty=function o(e,s,a){if(!e||typeof e!="object"&&typeof e!="function")throw new $TypeError$1("`obj` must be an object or a function`");if(typeof s!="string"&&typeof s!="symbol")throw new $TypeError$1("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $TypeError$1("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $TypeError$1("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $TypeError$1("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $TypeError$1("`loose`, if provided, must be a boolean");var c=arguments.length>3?arguments[3]:null,d=arguments.length>4?arguments[4]:null,h=arguments.length>5?arguments[5]:null,_=arguments.length>6?arguments[6]:!1,b=!!gopd&&gopd(e,s);if($defineProperty$1)$defineProperty$1(e,s,{configurable:h===null&&b?b.configurable:!h,enumerable:c===null&&b?b.enumerable:!c,value:a,writable:d===null&&b?b.writable:!d});else if(_||!c&&!d&&!h)e[s]=a;else throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},$defineProperty=requireEsDefineProperty(),hasPropertyDescriptors=function o(){return!!$defineProperty};hasPropertyDescriptors.hasArrayLengthDefineBug=function o(){if(!$defineProperty)return null;try{return $defineProperty([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors,GetIntrinsic$1=getIntrinsic,define$1=defineDataProperty,hasDescriptors=hasPropertyDescriptors_1(),gOPD$1=gopd$1,$TypeError=type$1,$floor=GetIntrinsic$1("%Math.floor%"),setFunctionLength=function o(e,s){if(typeof e!="function")throw new $TypeError("`fn` is not a function");if(typeof s!="number"||s<0||s>4294967295||$floor(s)!==s)throw new $TypeError("`length` must be a positive 32-bit integer");var a=arguments.length>2&&!!arguments[2],c=!0,d=!0;if("length"in e&&gOPD$1){var h=gOPD$1(e,"length");h&&!h.configurable&&(c=!1),h&&!h.writable&&(d=!1)}return(c||d||!a)&&(hasDescriptors?define$1(e,"length",s,!0,!0):define$1(e,"length",s)),e};(function(o){var e=functionBind,s=getIntrinsic,a=setFunctionLength,c=type$1,d=s("%Function.prototype.apply%"),h=s("%Function.prototype.call%"),_=s("%Reflect.apply%",!0)||e.call(h,d),b=requireEsDefineProperty(),$=s("%Math.max%");o.exports=function(rt){if(typeof rt!="function")throw new c("a function is required");var tt=_(e,h,arguments);return a(tt,1+$(0,rt.length-(arguments.length-1)),!0)};var _e=function(){return _(e,d,arguments)};b?b(o.exports,"apply",{value:_e}):o.exports.apply=_e})(callBind$2);var callBindExports=callBind$2.exports,GetIntrinsic=getIntrinsic,callBind$1=callBindExports,$indexOf$1=callBind$1(GetIntrinsic("String.prototype.indexOf")),callBound$3=function o(e,s){var a=GetIntrinsic(e,!!s);return typeof a=="function"&&$indexOf$1(e,".prototype.")>-1?callBind$1(a):a},hasToStringTag$3=shams(),callBound$2=callBound$3,$toString$1=callBound$2("Object.prototype.toString"),isStandardArguments=function o(e){return hasToStringTag$3&&e&&typeof e=="object"&&Symbol.toStringTag in e?!1:$toString$1(e)==="[object Arguments]"},isLegacyArguments=function o(e){return isStandardArguments(e)?!0:e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&$toString$1(e)!=="[object Array]"&&$toString$1(e.callee)==="[object Function]"},supportsStandardArguments=function(){return isStandardArguments(arguments)}();isStandardArguments.isLegacyArguments=isLegacyArguments;var isArguments$1=supportsStandardArguments?isStandardArguments:isLegacyArguments,toStr$3=Object.prototype.toString,fnToStr$1=Function.prototype.toString,isFnRegex=/^\s*(?:function)?\*/,hasToStringTag$2=shams(),getProto=Object.getPrototypeOf,getGeneratorFunc=function(){if(!hasToStringTag$2)return!1;try{return Function("return function*() {}")()}catch{}},GeneratorFunction,isGeneratorFunction=function o(e){if(typeof e!="function")return!1;if(isFnRegex.test(fnToStr$1.call(e)))return!0;if(!hasToStringTag$2){var s=toStr$3.call(e);return s==="[object GeneratorFunction]"}if(!getProto)return!1;if(typeof GeneratorFunction>"u"){var a=getGeneratorFunc();GeneratorFunction=a?getProto(a):!1}return getProto(e)===GeneratorFunction},fnToStr=Function.prototype.toString,reflectApply=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,badArrayLike,isCallableMarker;if(typeof reflectApply=="function"&&typeof Object.defineProperty=="function")try{badArrayLike=Object.defineProperty({},"length",{get:function(){throw isCallableMarker}}),isCallableMarker={},reflectApply(function(){throw 42},null,badArrayLike)}catch(o){o!==isCallableMarker&&(reflectApply=null)}else reflectApply=null;var constructorRegex=/^\s*class\b/,isES6ClassFn=function o(e){try{var s=fnToStr.call(e);return constructorRegex.test(s)}catch{return!1}},tryFunctionObject=function o(e){try{return isES6ClassFn(e)?!1:(fnToStr.call(e),!0)}catch{return!1}},toStr$2=Object.prototype.toString,objectClass="[object Object]",fnClass="[object Function]",genClass="[object GeneratorFunction]",ddaClass="[object HTMLAllCollection]",ddaClass2="[object HTML document.all class]",ddaClass3="[object HTMLCollection]",hasToStringTag$1=typeof Symbol=="function"&&!!Symbol.toStringTag,isIE68=!(0 in[,]),isDDA=function o(){return!1};if(typeof document=="object"){var all=document.all;toStr$2.call(all)===toStr$2.call(document.all)&&(isDDA=function(e){if((isIE68||!e)&&(typeof e>"u"||typeof e=="object"))try{var s=toStr$2.call(e);return(s===ddaClass||s===ddaClass2||s===ddaClass3||s===objectClass)&&e("")==null}catch{}return!1})}var isCallable$1=reflectApply?function o(e){if(isDDA(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;try{reflectApply(e,null,badArrayLike)}catch(s){if(s!==isCallableMarker)return!1}return!isES6ClassFn(e)&&tryFunctionObject(e)}:function o(e){if(isDDA(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;if(hasToStringTag$1)return tryFunctionObject(e);if(isES6ClassFn(e))return!1;var s=toStr$2.call(e);return s!==fnClass&&s!==genClass&&!/^\[object HTML/.test(s)?!1:tryFunctionObject(e)},isCallable=isCallable$1,toStr$1=Object.prototype.toString,hasOwnProperty=Object.prototype.hasOwnProperty,forEachArray=function o(e,s,a){for(var c=0,d=e.length;c=3&&(c=a),toStr$1.call(e)==="[object Array]"?forEachArray(e,s,c):typeof e=="string"?forEachString(e,s,c):forEachObject(e,s,c)},forEach_1=forEach$1,possibleTypedArrayNames=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"],possibleNames=possibleTypedArrayNames,g$1=globalThis,availableTypedArrays$1=function o(){for(var e=[],s=0;s-1?s:s!=="Object"?!1:trySlices(e)}return gOPD?tryTypedArrays(e):null},whichTypedArray=whichTypedArray$1,isTypedArray=function o(e){return!!whichTypedArray(e)};(function(o){var e=isArguments$1,s=isGeneratorFunction,a=whichTypedArray$1,c=isTypedArray;function d(Mt){return Mt.call.bind(Mt)}var h=typeof BigInt<"u",_=typeof Symbol<"u",b=d(Object.prototype.toString),$=d(Number.prototype.valueOf),_e=d(String.prototype.valueOf),nt=d(Boolean.prototype.valueOf);if(h)var rt=d(BigInt.prototype.valueOf);if(_)var tt=d(Symbol.prototype.valueOf);function ct(Mt,nn){if(typeof Mt!="object")return!1;try{return nn(Mt),!0}catch{return!1}}o.isArgumentsObject=e,o.isGeneratorFunction=s,o.isTypedArray=c;function ht(Mt){return typeof Promise<"u"&&Mt instanceof Promise||Mt!==null&&typeof Mt=="object"&&typeof Mt.then=="function"&&typeof Mt.catch=="function"}o.isPromise=ht;function dt(Mt){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(Mt):c(Mt)||ft(Mt)}o.isArrayBufferView=dt;function lt(Mt){return a(Mt)==="Uint8Array"}o.isUint8Array=lt;function st(Mt){return a(Mt)==="Uint8ClampedArray"}o.isUint8ClampedArray=st;function it(Mt){return a(Mt)==="Uint16Array"}o.isUint16Array=it;function _t(Mt){return a(Mt)==="Uint32Array"}o.isUint32Array=_t;function St(Mt){return a(Mt)==="Int8Array"}o.isInt8Array=St;function vt(Mt){return a(Mt)==="Int16Array"}o.isInt16Array=vt;function At(Mt){return a(Mt)==="Int32Array"}o.isInt32Array=At;function It(Mt){return a(Mt)==="Float32Array"}o.isFloat32Array=It;function kt(Mt){return a(Mt)==="Float64Array"}o.isFloat64Array=kt;function xt(Mt){return a(Mt)==="BigInt64Array"}o.isBigInt64Array=xt;function $t(Mt){return a(Mt)==="BigUint64Array"}o.isBigUint64Array=$t;function Ot(Mt){return b(Mt)==="[object Map]"}Ot.working=typeof Map<"u"&&Ot(new Map);function yt(Mt){return typeof Map>"u"?!1:Ot.working?Ot(Mt):Mt instanceof Map}o.isMap=yt;function j(Mt){return b(Mt)==="[object Set]"}j.working=typeof Set<"u"&&j(new Set);function et(Mt){return typeof Set>"u"?!1:j.working?j(Mt):Mt instanceof Set}o.isSet=et;function at(Mt){return b(Mt)==="[object WeakMap]"}at.working=typeof WeakMap<"u"&&at(new WeakMap);function pt(Mt){return typeof WeakMap>"u"?!1:at.working?at(Mt):Mt instanceof WeakMap}o.isWeakMap=pt;function gt(Mt){return b(Mt)==="[object WeakSet]"}gt.working=typeof WeakSet<"u"&>(new WeakSet);function mt(Mt){return gt(Mt)}o.isWeakSet=mt;function wt(Mt){return b(Mt)==="[object ArrayBuffer]"}wt.working=typeof ArrayBuffer<"u"&&wt(new ArrayBuffer);function Et(Mt){return typeof ArrayBuffer>"u"?!1:wt.working?wt(Mt):Mt instanceof ArrayBuffer}o.isArrayBuffer=Et;function ot(Mt){return b(Mt)==="[object DataView]"}ot.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&ot(new DataView(new ArrayBuffer(1),0,1));function ft(Mt){return typeof DataView>"u"?!1:ot.working?ot(Mt):Mt instanceof DataView}o.isDataView=ft;var Rt=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function bt(Mt){return b(Mt)==="[object SharedArrayBuffer]"}function Tt(Mt){return typeof Rt>"u"?!1:(typeof bt.working>"u"&&(bt.working=bt(new Rt)),bt.working?bt(Mt):Mt instanceof Rt)}o.isSharedArrayBuffer=Tt;function Bt(Mt){return b(Mt)==="[object AsyncFunction]"}o.isAsyncFunction=Bt;function Ct(Mt){return b(Mt)==="[object Map Iterator]"}o.isMapIterator=Ct;function Pt(Mt){return b(Mt)==="[object Set Iterator]"}o.isSetIterator=Pt;function Dt(Mt){return b(Mt)==="[object Generator]"}o.isGeneratorObject=Dt;function jt(Mt){return b(Mt)==="[object WebAssembly.Module]"}o.isWebAssemblyCompiledModule=jt;function Kt(Mt){return ct(Mt,$)}o.isNumberObject=Kt;function qt(Mt){return ct(Mt,_e)}o.isStringObject=qt;function Gt(Mt){return ct(Mt,nt)}o.isBooleanObject=Gt;function Yt(Mt){return h&&ct(Mt,rt)}o.isBigIntObject=Yt;function On(Mt){return _&&ct(Mt,tt)}o.isSymbolObject=On;function tn(Mt){return Kt(Mt)||qt(Mt)||Gt(Mt)||Yt(Mt)||On(Mt)}o.isBoxedPrimitive=tn;function Zt(Mt){return typeof Uint8Array<"u"&&(Et(Mt)||Tt(Mt))}o.isAnyArrayBuffer=Zt,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(Mt){Object.defineProperty(o,Mt,{enumerable:!1,value:function(){throw new Error(Mt+" is not supported in userland")}})})})(types);var isBufferBrowser=function o(e){return e&&typeof e=="object"&&typeof e.copy=="function"&&typeof e.fill=="function"&&typeof e.readUInt8=="function"},inherits_browser={exports:{}};typeof Object.create=="function"?inherits_browser.exports=function(e,s){s&&(e.super_=s,e.prototype=Object.create(s.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:inherits_browser.exports=function(e,s){if(s){e.super_=s;var a=function(){};a.prototype=s.prototype,e.prototype=new a,e.prototype.constructor=e}};var inherits_browserExports=inherits_browser.exports;(function(o){var e={},s=Object.getOwnPropertyDescriptors||function(Rt){for(var bt=Object.keys(Rt),Tt={},Bt=0;Bt=Bt)return Dt;switch(Dt){case"%s":return String(Tt[bt++]);case"%d":return Number(Tt[bt++]);case"%j":try{return JSON.stringify(Tt[bt++])}catch{return"[Circular]"}default:return Dt}}),Pt=Tt[bt];bt"u")return function(){return o.deprecate(ft,Rt).apply(this,arguments)};var bt=!1;function Tt(){if(!bt){if(process$1.throwDeprecation)throw new Error(Rt);process$1.traceDeprecation?console.trace(Rt):console.error(Rt),bt=!0}return ft.apply(this,arguments)}return Tt};var c={},d=/^$/;if(e.NODE_DEBUG){var h=e.NODE_DEBUG;h=h.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+h+"$","i")}o.debuglog=function(ft){if(ft=ft.toUpperCase(),!c[ft])if(d.test(ft)){var Rt=process$1.pid;c[ft]=function(){var bt=o.format.apply(o,arguments);console.error("%s %d: %s",ft,Rt,bt)}}else c[ft]=function(){};return c[ft]};function _(ft,Rt){var bt={seen:[],stylize:$};return arguments.length>=3&&(bt.depth=arguments[2]),arguments.length>=4&&(bt.colors=arguments[3]),st(Rt)?bt.showHidden=Rt:Rt&&o._extend(bt,Rt),It(bt.showHidden)&&(bt.showHidden=!1),It(bt.depth)&&(bt.depth=2),It(bt.colors)&&(bt.colors=!1),It(bt.customInspect)&&(bt.customInspect=!0),bt.colors&&(bt.stylize=b),nt(bt,ft,bt.depth)}o.inspect=_,_.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},_.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function b(ft,Rt){var bt=_.styles[Rt];return bt?"\x1B["+_.colors[bt][0]+"m"+ft+"\x1B["+_.colors[bt][1]+"m":ft}function $(ft,Rt){return ft}function _e(ft){var Rt={};return ft.forEach(function(bt,Tt){Rt[bt]=!0}),Rt}function nt(ft,Rt,bt){if(ft.customInspect&&Rt&&yt(Rt.inspect)&&Rt.inspect!==o.inspect&&!(Rt.constructor&&Rt.constructor.prototype===Rt)){var Tt=Rt.inspect(bt,ft);return vt(Tt)||(Tt=nt(ft,Tt,bt)),Tt}var Bt=rt(ft,Rt);if(Bt)return Bt;var Ct=Object.keys(Rt),Pt=_e(Ct);if(ft.showHidden&&(Ct=Object.getOwnPropertyNames(Rt)),Ot(Rt)&&(Ct.indexOf("message")>=0||Ct.indexOf("description")>=0))return tt(Rt);if(Ct.length===0){if(yt(Rt)){var Dt=Rt.name?": "+Rt.name:"";return ft.stylize("[Function"+Dt+"]","special")}if(kt(Rt))return ft.stylize(RegExp.prototype.toString.call(Rt),"regexp");if($t(Rt))return ft.stylize(Date.prototype.toString.call(Rt),"date");if(Ot(Rt))return tt(Rt)}var jt="",Kt=!1,qt=["{","}"];if(lt(Rt)&&(Kt=!0,qt=["[","]"]),yt(Rt)){var Gt=Rt.name?": "+Rt.name:"";jt=" [Function"+Gt+"]"}if(kt(Rt)&&(jt=" "+RegExp.prototype.toString.call(Rt)),$t(Rt)&&(jt=" "+Date.prototype.toUTCString.call(Rt)),Ot(Rt)&&(jt=" "+tt(Rt)),Ct.length===0&&(!Kt||Rt.length==0))return qt[0]+jt+qt[1];if(bt<0)return kt(Rt)?ft.stylize(RegExp.prototype.toString.call(Rt),"regexp"):ft.stylize("[Object]","special");ft.seen.push(Rt);var Yt;return Kt?Yt=ct(ft,Rt,bt,Pt,Ct):Yt=Ct.map(function(On){return ht(ft,Rt,bt,Pt,On,Kt)}),ft.seen.pop(),dt(Yt,jt,qt)}function rt(ft,Rt){if(It(Rt))return ft.stylize("undefined","undefined");if(vt(Rt)){var bt="'"+JSON.stringify(Rt).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ft.stylize(bt,"string")}if(St(Rt))return ft.stylize(""+Rt,"number");if(st(Rt))return ft.stylize(""+Rt,"boolean");if(it(Rt))return ft.stylize("null","null")}function tt(ft){return"["+Error.prototype.toString.call(ft)+"]"}function ct(ft,Rt,bt,Tt,Bt){for(var Ct=[],Pt=0,Dt=Rt.length;Ptrt.startsWith("Program log: AnchorError"));if(s===-1)return null;const a=e[s],c=[a];let d;if(s+11)return null;c=_[0].match(/([0-9]+)/g)[0]}let d;try{d=parseInt(c)}catch{return null}let h=s.get(d);return h!==void 0?new ProgramError(d,h,e.logs):(h=LangErrorMessage.get(d),h!==void 0?new ProgramError(d,h,e.logs):null)}get program(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack}toString(){return this.msg}}function translateError(o,e){isSet("debug-logs")&&console.log("Translating error:",o);const s=AnchorError.parse(o.logs);if(s)return s;const a=ProgramError.parse(o,e);if(a)return a;if(o.logs){const c={get:function(d,h){return h==="programErrorStack"?d.programErrorStack.stack:h==="program"?d.programErrorStack.stack[o.programErrorStack.stack.length-1]:Reflect.get(...arguments)}};return o.programErrorStack=ProgramErrorStack.parse(o.logs),new Proxy(o,c)}return o}const LangErrorCode={InstructionMissing:ANCHOR_ERROR__INSTRUCTION_MISSING,InstructionFallbackNotFound:ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND,InstructionDidNotDeserialize:ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE,InstructionDidNotSerialize:ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE,IdlInstructionStub:ANCHOR_ERROR__IDL_INSTRUCTION_STUB,IdlInstructionInvalidProgram:ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM,IdlAccountNotEmpty:ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY,EventInstructionStub:ANCHOR_ERROR__EVENT_INSTRUCTION_STUB,ConstraintMut:ANCHOR_ERROR__CONSTRAINT_MUT,ConstraintHasOne:ANCHOR_ERROR__CONSTRAINT_HAS_ONE,ConstraintSigner:ANCHOR_ERROR__CONSTRAINT_SIGNER,ConstraintRaw:ANCHOR_ERROR__CONSTRAINT_RAW,ConstraintOwner:ANCHOR_ERROR__CONSTRAINT_OWNER,ConstraintRentExempt:ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT,ConstraintSeeds:ANCHOR_ERROR__CONSTRAINT_SEEDS,ConstraintExecutable:ANCHOR_ERROR__CONSTRAINT_EXECUTABLE,ConstraintState:ANCHOR_ERROR__CONSTRAINT_STATE,ConstraintAssociated:ANCHOR_ERROR__CONSTRAINT_ASSOCIATED,ConstraintAssociatedInit:ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT,ConstraintClose:ANCHOR_ERROR__CONSTRAINT_CLOSE,ConstraintAddress:ANCHOR_ERROR__CONSTRAINT_ADDRESS,ConstraintZero:ANCHOR_ERROR__CONSTRAINT_ZERO,ConstraintTokenMint:ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT,ConstraintTokenOwner:ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER,ConstraintMintMintAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY,ConstraintMintFreezeAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY,ConstraintMintDecimals:ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS,ConstraintSpace:ANCHOR_ERROR__CONSTRAINT_SPACE,ConstraintAccountIsNone:ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE,ConstraintTokenTokenProgram:ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM,ConstraintMintTokenProgram:ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM,ConstraintAssociatedTokenTokenProgram:ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM,ConstraintMintGroupPointerExtension:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION,ConstraintMintGroupPointerExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY,ConstraintMintGroupPointerExtensionGroupAddress:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS,ConstraintMintGroupMemberPointerExtension:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION,ConstraintMintGroupMemberPointerExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY,ConstraintMintGroupMemberPointerExtensionMemberAddress:ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS,ConstraintMintMetadataPointerExtension:ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION,ConstraintMintMetadataPointerExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY,ConstraintMintMetadataPointerExtensionMetadataAddress:ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS,ConstraintMintCloseAuthorityExtension:ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION,ConstraintMintCloseAuthorityExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY,ConstraintMintPermanentDelegateExtension:ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION,ConstraintMintPermanentDelegateExtensionDelegate:ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE,ConstraintMintTransferHookExtension:ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION,ConstraintMintTransferHookExtensionAuthority:ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY,ConstraintMintTransferHookExtensionProgramId:ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID,RequireViolated:ANCHOR_ERROR__REQUIRE_VIOLATED,RequireEqViolated:ANCHOR_ERROR__REQUIRE_EQ_VIOLATED,RequireKeysEqViolated:ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED,RequireNeqViolated:ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED,RequireKeysNeqViolated:ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED,RequireGtViolated:ANCHOR_ERROR__REQUIRE_GT_VIOLATED,RequireGteViolated:ANCHOR_ERROR__REQUIRE_GTE_VIOLATED,AccountDiscriminatorAlreadySet:ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET,AccountDiscriminatorNotFound:ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND,AccountDiscriminatorMismatch:ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH,AccountDidNotDeserialize:ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE,AccountDidNotSerialize:ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE,AccountNotEnoughKeys:ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS,AccountNotMutable:ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE,AccountOwnedByWrongProgram:ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM,InvalidProgramId:ANCHOR_ERROR__INVALID_PROGRAM_ID,InvalidProgramExecutable:ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE,AccountNotSigner:ANCHOR_ERROR__ACCOUNT_NOT_SIGNER,AccountNotSystemOwned:ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED,AccountNotInitialized:ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED,AccountNotProgramData:ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA,AccountNotAssociatedTokenAccount:ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT,AccountSysvarMismatch:ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH,AccountReallocExceedsLimit:ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT,AccountDuplicateReallocs:ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS,DeclaredProgramIdMismatch:ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH,TryingToInitPayerAsProgramAccount:ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT,InvalidNumericConversion:ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION,Deprecated:ANCHOR_ERROR__DEPRECATED},LangErrorMessage=new Map([[LangErrorCode.InstructionMissing,"8 byte instruction identifier not provided"],[LangErrorCode.InstructionFallbackNotFound,"Fallback functions are not supported"],[LangErrorCode.InstructionDidNotDeserialize,"The program could not deserialize the given instruction"],[LangErrorCode.InstructionDidNotSerialize,"The program could not serialize the given instruction"],[LangErrorCode.IdlInstructionStub,"The program was compiled without idl instructions"],[LangErrorCode.IdlInstructionInvalidProgram,"The transaction was given an invalid program for the IDL instruction"],[LangErrorCode.IdlAccountNotEmpty,"IDL account must be empty in order to resize, try closing first"],[LangErrorCode.EventInstructionStub,"The program was compiled without `event-cpi` feature"],[LangErrorCode.ConstraintMut,"A mut constraint was violated"],[LangErrorCode.ConstraintHasOne,"A has one constraint was violated"],[LangErrorCode.ConstraintSigner,"A signer constraint was violated"],[LangErrorCode.ConstraintRaw,"A raw constraint was violated"],[LangErrorCode.ConstraintOwner,"An owner constraint was violated"],[LangErrorCode.ConstraintRentExempt,"A rent exemption constraint was violated"],[LangErrorCode.ConstraintSeeds,"A seeds constraint was violated"],[LangErrorCode.ConstraintExecutable,"An executable constraint was violated"],[LangErrorCode.ConstraintState,"Deprecated Error, feel free to replace with something else"],[LangErrorCode.ConstraintAssociated,"An associated constraint was violated"],[LangErrorCode.ConstraintAssociatedInit,"An associated init constraint was violated"],[LangErrorCode.ConstraintClose,"A close constraint was violated"],[LangErrorCode.ConstraintAddress,"An address constraint was violated"],[LangErrorCode.ConstraintZero,"Expected zero account discriminant"],[LangErrorCode.ConstraintTokenMint,"A token mint constraint was violated"],[LangErrorCode.ConstraintTokenOwner,"A token owner constraint was violated"],[LangErrorCode.ConstraintMintMintAuthority,"A mint mint authority constraint was violated"],[LangErrorCode.ConstraintMintFreezeAuthority,"A mint freeze authority constraint was violated"],[LangErrorCode.ConstraintMintDecimals,"A mint decimals constraint was violated"],[LangErrorCode.ConstraintSpace,"A space constraint was violated"],[LangErrorCode.ConstraintAccountIsNone,"A required account for the constraint is None"],[LangErrorCode.ConstraintTokenTokenProgram,"A token account token program constraint was violated"],[LangErrorCode.ConstraintMintTokenProgram,"A mint token program constraint was violated"],[LangErrorCode.ConstraintAssociatedTokenTokenProgram,"An associated token account token program constraint was violated"],[LangErrorCode.ConstraintMintGroupPointerExtension,"A group pointer extension constraint was violated"],[LangErrorCode.ConstraintMintGroupPointerExtensionAuthority,"A group pointer extension authority constraint was violated"],[LangErrorCode.ConstraintMintGroupPointerExtensionGroupAddress,"A group pointer extension group address constraint was violated"],[LangErrorCode.ConstraintMintGroupMemberPointerExtension,"A group member pointer extension constraint was violated"],[LangErrorCode.ConstraintMintGroupMemberPointerExtensionAuthority,"A group member pointer extension authority constraint was violated"],[LangErrorCode.ConstraintMintGroupMemberPointerExtensionMemberAddress,"A group member pointer extension group address constraint was violated"],[LangErrorCode.ConstraintMintMetadataPointerExtension,"A metadata pointer extension constraint was violated"],[LangErrorCode.ConstraintMintMetadataPointerExtensionAuthority,"A metadata pointer extension authority constraint was violated"],[LangErrorCode.ConstraintMintMetadataPointerExtensionMetadataAddress,"A metadata pointer extension metadata address constraint was violated"],[LangErrorCode.ConstraintMintCloseAuthorityExtension,"A close authority constraint was violated"],[LangErrorCode.ConstraintMintCloseAuthorityExtensionAuthority,"A close authority extension authority constraint was violated"],[LangErrorCode.ConstraintMintPermanentDelegateExtension,"A permanent delegate extension constraint was violated"],[LangErrorCode.ConstraintMintPermanentDelegateExtensionDelegate,"A permanent delegate extension delegate constraint was violated"],[LangErrorCode.ConstraintMintTransferHookExtension,"A transfer hook extension constraint was violated"],[LangErrorCode.ConstraintMintTransferHookExtensionAuthority,"A transfer hook extension authority constraint was violated"],[LangErrorCode.ConstraintMintTransferHookExtensionProgramId,"A transfer hook extension transfer hook program id constraint was violated"],[LangErrorCode.RequireViolated,"A require expression was violated"],[LangErrorCode.RequireEqViolated,"A require_eq expression was violated"],[LangErrorCode.RequireKeysEqViolated,"A require_keys_eq expression was violated"],[LangErrorCode.RequireNeqViolated,"A require_neq expression was violated"],[LangErrorCode.RequireKeysNeqViolated,"A require_keys_neq expression was violated"],[LangErrorCode.RequireGtViolated,"A require_gt expression was violated"],[LangErrorCode.RequireGteViolated,"A require_gte expression was violated"],[LangErrorCode.AccountDiscriminatorAlreadySet,"The account discriminator was already set on this account"],[LangErrorCode.AccountDiscriminatorNotFound,"No 8 byte discriminator was found on the account"],[LangErrorCode.AccountDiscriminatorMismatch,"8 byte discriminator did not match what was expected"],[LangErrorCode.AccountDidNotDeserialize,"Failed to deserialize the account"],[LangErrorCode.AccountDidNotSerialize,"Failed to serialize the account"],[LangErrorCode.AccountNotEnoughKeys,"Not enough account keys given to the instruction"],[LangErrorCode.AccountNotMutable,"The given account is not mutable"],[LangErrorCode.AccountOwnedByWrongProgram,"The given account is owned by a different program than expected"],[LangErrorCode.InvalidProgramId,"Program ID was not as expected"],[LangErrorCode.InvalidProgramExecutable,"Program account is not executable"],[LangErrorCode.AccountNotSigner,"The given account did not sign"],[LangErrorCode.AccountNotSystemOwned,"The given account is not owned by the system program"],[LangErrorCode.AccountNotInitialized,"The program expected this account to be already initialized"],[LangErrorCode.AccountNotProgramData,"The given account is not a program data account"],[LangErrorCode.AccountNotAssociatedTokenAccount,"The given account is not the associated token account"],[LangErrorCode.AccountSysvarMismatch,"The given public key does not match the required sysvar"],[LangErrorCode.AccountReallocExceedsLimit,"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit"],[LangErrorCode.AccountDuplicateReallocs,"The account was duplicated for more than one reallocation"],[LangErrorCode.DeclaredProgramIdMismatch,"The declared program id does not match the actual program id"],[LangErrorCode.TryingToInitPayerAsProgramAccount,"You cannot/should not initialize the payer account as a program account"],[LangErrorCode.InvalidNumericConversion,"The program could not perform the numeric conversion, out of range integral type conversion attempted"],[LangErrorCode.Deprecated,"The API being used is deprecated and should no longer be used"]]);class IdlCoder{static fieldLayout(e,s=[],a){const c=e.name;switch(e.type){case"bool":return dist$2.bool(c);case"u8":return dist$2.u8(c);case"i8":return dist$2.i8(c);case"u16":return dist$2.u16(c);case"i16":return dist$2.i16(c);case"u32":return dist$2.u32(c);case"i32":return dist$2.i32(c);case"f32":return dist$2.f32(c);case"u64":return dist$2.u64(c);case"i64":return dist$2.i64(c);case"f64":return dist$2.f64(c);case"u128":return dist$2.u128(c);case"i128":return dist$2.i128(c);case"u256":return dist$2.u256(c);case"i256":return dist$2.i256(c);case"bytes":return dist$2.vecU8(c);case"string":return dist$2.str(c);case"pubkey":return dist$2.publicKey(c);default:{if("option"in e.type)return dist$2.option(IdlCoder.fieldLayout({type:e.type.option},s,a),c);if("vec"in e.type)return dist$2.vec(IdlCoder.fieldLayout({type:e.type.vec},s,a),c);if("array"in e.type){let[d,h]=e.type.array;return h=IdlCoder.resolveArrayLen(h,a),dist$2.array(IdlCoder.fieldLayout({type:d},s,a),h,c)}if("defined"in e.type){if(!s)throw new IdlError("User defined types not provided");const d=e.type.defined.name,h=s.find(_=>_.name===d);if(!h)throw new IdlError(`Type not found: ${e.name}`);return IdlCoder.typeDefLayout({typeDef:h,types:s,genericArgs:a??e.type.defined.generics,name:c})}if("generic"in e.type){const d=a==null?void 0:a.at(0);if((d==null?void 0:d.kind)!=="type")throw new IdlError(`Invalid generic field: ${e.name}`);return IdlCoder.fieldLayout({...e,type:d.type},s)}throw new IdlError(`Not yet implemented: ${JSON.stringify(e.type)}`)}}}static typeDefLayout({typeDef:e,types:s,name:a,genericArgs:c}){switch(e.type.kind){case"struct":{const d=handleDefinedFields(e.type.fields,()=>[],h=>h.map(_=>{const b=c&&IdlCoder.resolveGenericArgs({type:_.type,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout(_,s,b)}),h=>h.map((_,b)=>{const $=c&&IdlCoder.resolveGenericArgs({type:_,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout({name:b.toString(),type:_},s,$)}));return dist$2.struct(d,a)}case"enum":{const d=e.type.variants.map(h=>{const _=handleDefinedFields(h.fields,()=>[],b=>b.map($=>{const _e=c&&IdlCoder.resolveGenericArgs({type:$.type,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout($,s,_e)}),b=>b.map(($,_e)=>{const nt=c&&IdlCoder.resolveGenericArgs({type:$,typeDef:e,genericArgs:c});return IdlCoder.fieldLayout({name:_e.toString(),type:$},s,nt)}));return dist$2.struct(_,h.name)});return a!==void 0?dist$2.rustEnum(d).replicate(a):dist$2.rustEnum(d,a)}case"type":return IdlCoder.fieldLayout({type:e.type.alias,name:a},s)}}static typeSize(e,s,a){var c;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"pubkey":return 32;default:if("option"in e)return 1+IdlCoder.typeSize(e.option,s,a);if("coption"in e)return 4+IdlCoder.typeSize(e.coption,s,a);if("vec"in e)return 1;if("array"in e){let[d,h]=e.array;return h=IdlCoder.resolveArrayLen(h,a),IdlCoder.typeSize(d,s,a)*h}if("defined"in e){const d=(c=s.types)===null||c===void 0?void 0:c.find(_=>_.name===e.defined.name);if(!d)throw new IdlError(`Type not found: ${JSON.stringify(e)}`);const h=_=>{const b=a??e.defined.generics,$=b&&IdlCoder.resolveGenericArgs({type:_,typeDef:d,genericArgs:b});return IdlCoder.typeSize(_,s,$)};switch(d.type.kind){case"struct":return handleDefinedFields(d.type.fields,()=>[0],_=>_.map(b=>h(b.type)),_=>_.map(b=>h(b))).reduce((_,b)=>_+b,0);case"enum":{const _=d.type.variants.map(b=>handleDefinedFields(b.fields,()=>[0],$=>$.map(_e=>h(_e.type)),$=>$.map(_e=>h(_e))).reduce(($,_e)=>$+_e,0));return Math.max(..._)+1}case"type":return IdlCoder.typeSize(d.type.alias,s,a)}}if("generic"in e){const d=a==null?void 0:a.at(0);if((d==null?void 0:d.kind)!=="type")throw new IdlError(`Invalid generic: ${e.generic}`);return IdlCoder.typeSize(d.type,s,a)}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}static resolveArrayLen(e,s){if(typeof e=="number")return e;if(s){const a=s.find(c=>c.kind==="const");(a==null?void 0:a.kind)==="const"&&(e=+a.value)}if(typeof e!="number")throw new IdlError("Generic array length did not resolve");return e}static resolveGenericArgs({type:e,typeDef:s,genericArgs:a,isDefined:c}){if(typeof e!="object")return null;for(const d in s.generics){const h=s.generics[d];if("generic"in e&&h.name===e.generic)return[a[d]];if("option"in e){const _=IdlCoder.resolveGenericArgs({type:e.option,typeDef:s,genericArgs:a,isDefined:c});if(!_||!c)return _;if(_[0].kind==="type")return[{kind:"type",type:{option:_[0].type}}]}if("vec"in e){const _=IdlCoder.resolveGenericArgs({type:e.vec,typeDef:s,genericArgs:a,isDefined:c});if(!_||!c)return _;if(_[0].kind==="type")return[{kind:"type",type:{vec:_[0].type}}]}if("array"in e){const[_,b]=e.array,$=typeof b=="object",_e=IdlCoder.resolveGenericArgs({type:_,typeDef:s,genericArgs:a,isDefined:c});if(_e){for(const nt in s.generics.slice(+d)){const rt=+d+ +nt;$&&s.generics[rt].name===b.generic&&_e.push(a[rt])}if(!c)return _e;if(_e[0].kind==="type"&&_e[1].kind==="const")return[{kind:"type",type:{array:[_e[0].type,+_e[1].value]}}]}if($&&h.name===b.generic){const nt=a[d];return c?[{kind:"type",type:{array:[_,+nt.value]}}]:[nt]}return null}if("defined"in e)return e.defined.generics?e.defined.generics.flatMap(_=>{switch(_.kind){case"type":return IdlCoder.resolveGenericArgs({type:_.type,typeDef:s,genericArgs:a,isDefined:!0});case"const":return[_]}}).filter(_=>_!==null):null}return null}}class BorshInstructionCoder{constructor(e){this.idl=e;const s=e.instructions.map(c=>{const d=c.name,h=c.args.map(b=>IdlCoder.fieldLayout(b,e.types)),_=dist$2.struct(h,d);return[d,{discriminator:c.discriminator,layout:_}]});this.ixLayouts=new Map(s);const a=s.map(([c,{discriminator:d,layout:h}])=>[bs58$4.encode(d),{name:c,layout:h}]);this.sighashLayouts=new Map(a)}encode(e,s){const a=Buffer$1.alloc(1e3),c=this.ixLayouts.get(e);if(!c)throw new Error(`Unknown method: ${e}`);const d=c.layout.encode(s,a),h=a.slice(0,d);return Buffer$1.concat([Buffer$1.from(c.discriminator),h])}decode(e,s="hex"){typeof e=="string"&&(e=s==="hex"?Buffer$1.from(e,"hex"):bs58$4.decode(e));const a=e.slice(0,DISCRIMINATOR_SIZE),c=e.slice(DISCRIMINATOR_SIZE),d=this.sighashLayouts.get(bs58$4.encode(a));return d?{name:d.name,data:d.layout.decode(c)}:null}format(e,s){return InstructionFormatter.format(e,s,this.idl)}}class InstructionFormatter{static format(e,s,a){const c=a.instructions.find(b=>e.name===b.name);if(!c)return console.error("Invalid instruction given"),null;const d=c.args.map(b=>({name:b.name,type:InstructionFormatter.formatIdlType(b.type),data:InstructionFormatter.formatIdlData(b,e.data[b.name],a.types)})),h=InstructionFormatter.flattenIdlAccounts(c.accounts),_=s.map((b,$)=>$`;if("coption"in e)return`COption<${this.formatIdlType(e.coption)}>`;if("vec"in e)return`Vec<${this.formatIdlType(e.vec)}>`;if("array"in e)return`Array<${e.array[0]}; ${e.array[1]}>`;if("defined"in e){const s=e.defined.name;if(e.defined.generics){const a=e.defined.generics.map(c=>{switch(c.kind){case"type":return InstructionFormatter.formatIdlType(c.type);case"const":return c.value}}).join(", ");return`${s}<${a}>`}return s}throw new Error(`Unknown IDL type: ${e}`)}static formatIdlData(e,s,a){if(typeof e.type=="string")return s.toString();if("vec"in e.type)return"["+s.map(c=>this.formatIdlData({name:"",type:e.type.vec},c,a)).join(", ")+"]";if("option"in e.type)return s===null?"null":this.formatIdlData({name:"",type:e.type.option},s,a);if("defined"in e.type){if(!a)throw new Error("User defined types not provided");const c=e.type.defined.name,d=a.find(h=>h.name===c);if(!d)throw new Error(`Type not found: ${c}`);return InstructionFormatter.formatIdlDataDefined(d,s,a)}return"unknown"}static formatIdlDataDefined(e,s,a){switch(e.type.kind){case"struct":return"{ "+handleDefinedFields(e.type.fields,()=>"",c=>Object.entries(s).map(([d,h])=>{const _=c.find(b=>b.name===d);if(!_)throw new Error(`Field not found: ${d}`);return d+": "+InstructionFormatter.formatIdlData(_,h,a)}).join(", "),c=>Object.entries(s).map(([d,h])=>d+": "+InstructionFormatter.formatIdlData({name:"",type:c[d]},h,a)).join(", "))+" }";case"enum":{const c=Object.keys(s)[0],d=e.type.variants.find(_=>_.name===c);if(!d)throw new Error(`Unable to find variant: ${c}`);const h=s[c];return handleDefinedFields(d.fields,()=>c,_=>{const b=Object.keys(h).map($=>{const _e=h[$],nt=_.find(rt=>rt.name===$);if(!nt)throw new Error(`Field not found: ${$}`);return $+": "+InstructionFormatter.formatIdlData(nt,_e,a)}).join(", ");return`${c} { ${b} }`},_=>{const b=Object.entries(h).map(([$,_e])=>$+": "+InstructionFormatter.formatIdlData({name:"",type:_[$]},_e,a)).join(", ");return`${c} { ${b} }`})}case"type":return InstructionFormatter.formatIdlType(e.type.alias)}}static flattenIdlAccounts(e,s){return e.map(a=>{const c=sentenceCase(a.name);if(a.hasOwnProperty("accounts")){const d=s?`${s} > ${c}`:c;return InstructionFormatter.flattenIdlAccounts(a.accounts,d)}else return{...a,name:s?`${s} > ${c}`:c}}).flat()}}function sentenceCase(o){const e=o.replace(/([A-Z])/g," $1");return e.charAt(0).toUpperCase()+e.slice(1)}const DISCRIMINATOR_SIZE=8;class BorshAccountsCoder{constructor(e){if(this.idl=e,!e.accounts){this.accountLayouts=new Map;return}const s=e.types;if(!s)throw new Error("Accounts require `idl.types`");const a=e.accounts.map(c=>{const d=s.find(h=>h.name===c.name);if(!d)throw new Error(`Account not found: ${c.name}`);return[c.name,IdlCoder.typeDefLayout({typeDef:d,types:s})]});this.accountLayouts=new Map(a)}async encode(e,s){const a=Buffer$1.alloc(1e3),c=this.accountLayouts.get(e);if(!c)throw new Error(`Unknown account: ${e}`);const d=c.encode(s,a),h=a.slice(0,d),_=this.accountDiscriminator(e);return Buffer$1.concat([_,h])}decode(e,s){if(this.accountDiscriminator(e).compare(s.slice(0,DISCRIMINATOR_SIZE)))throw new Error("Invalid account discriminator");return this.decodeUnchecked(e,s)}decodeAny(e){const s=e.slice(0,DISCRIMINATOR_SIZE),a=Array.from(this.accountLayouts.keys()).find(c=>this.accountDiscriminator(c).equals(s));if(!a)throw new Error("Account not found");return this.decodeUnchecked(a,e)}decodeUnchecked(e,s){const a=s.subarray(DISCRIMINATOR_SIZE),c=this.accountLayouts.get(e);if(!c)throw new Error(`Unknown account: ${e}`);return c.decode(a)}memcmp(e,s){const a=this.accountDiscriminator(e);return{offset:0,bytes:bs58$4.encode(s?Buffer$1.concat([a,s]):a)}}size(e){return DISCRIMINATOR_SIZE+IdlCoder.typeSize({defined:{name:e}},this.idl)}accountDiscriminator(e){var s;const a=(s=this.idl.accounts)===null||s===void 0?void 0:s.find(c=>c.name===e);if(!a)throw new Error(`Account not found: ${e}`);return Buffer$1.from(a.discriminator)}}class BorshEventCoder{constructor(e){var s;if(!e.events){this.layouts=new Map;return}const a=e.types;if(!a)throw new Error("Events require `idl.types`");const c=e.events.map(d=>{const h=a.find(_=>_.name===d.name);if(!h)throw new Error(`Event not found: ${d.name}`);return[d.name,IdlCoder.typeDefLayout({typeDef:h,types:a})]});this.layouts=new Map(c),this.discriminators=new Map(((s=e.events)!==null&&s!==void 0?s:[]).map(d=>[encode(Buffer$1.from(d.discriminator)),d.name]))}decode(e){let s;try{s=decode(e)}catch{return null}const a=encode(s.slice(0,8)),c=this.discriminators.get(a);if(!c)return null;const d=this.layouts.get(c);if(!d)throw new Error(`Unknown event: ${c}`);return{data:d.decode(s.slice(8)),name:c}}}class BorshTypesCoder{constructor(e){const s=e.types;if(!s){this.typeLayouts=new Map;return}const a=s.filter(c=>!c.generics).map(c=>[c.name,IdlCoder.typeDefLayout({typeDef:c,types:s})]);this.typeLayouts=new Map(a)}encode(e,s){const a=Buffer$1.alloc(1e3),c=this.typeLayouts.get(e);if(!c)throw new Error(`Unknown type: ${e}`);const d=c.encode(s,a);return a.slice(0,d)}decode(e,s){const a=this.typeLayouts.get(e);if(!a)throw new Error(`Unknown type: ${e}`);return a.decode(s)}}class BorshCoder{constructor(e){this.instruction=new BorshInstructionCoder(e),this.accounts=new BorshAccountsCoder(e),this.events=new BorshEventCoder(e),this.types=new BorshTypesCoder(e)}}let Layout$1=class{constructor(e,s){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=s}makeDestinationObject(){return{}}decode(e,s){throw new Error("Layout is abstract")}encode(e,s,a){throw new Error("Layout is abstract")}getSpan(e,s){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const s=Object.create(this.constructor.prototype);return Object.assign(s,this),s.property=e,s}fromArray(e){}};var Layout_2$1=Layout$1;function nameWithProperty$1(o,e){return e.property?o+"["+e.property+"]":o}let ExternalLayout$1=class extends Layout$1{isCount(){throw new Error("ExternalLayout is abstract")}},OffsetLayout$1=class extends ExternalLayout$1{constructor(e,s,a){if(!(e instanceof Layout$1))throw new TypeError("layout must be a Layout");if(s===void 0)s=0;else if(!Number.isInteger(s))throw new TypeError("offset must be integer or undefined");super(e.span,a||e.property),this.layout=e,this.offset=s}isCount(){return this.layout instanceof UInt$1||this.layout instanceof UIntBE$1}decode(e,s){return s===void 0&&(s=0),this.layout.decode(e,s+this.offset)}encode(e,s,a){return a===void 0&&(a=0),this.layout.encode(e,s,a+this.offset)}},UInt$1=class extends Layout$1{constructor(e,s){if(super(e,s),6d&&h instanceof Layout$1,!0)))throw new TypeError("fields must be array of Layout instances");typeof s=="boolean"&&a===void 0&&(a=s,s=void 0);for(const d of e)if(0>d.span&&d.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let c=-1;try{c=e.reduce((d,h)=>d+h.getSpan(),0)}catch{}super(c,s),this.fields=e,this.decodePrefixes=!!a}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;try{a=this.fields.reduce((c,d)=>{const h=d.getSpan(e,s);return s+=h,c+h},0)}catch{throw new RangeError("indeterminate span")}return a}decode(e,s){s===void 0&&(s=0);const a=this.makeDestinationObject();for(const c of this.fields)if(c.property!==void 0&&(a[c.property]=c.decode(e,s)),s+=c.getSpan(e,s),this.decodePrefixes&&e.length===s)break;return a}encode(e,s,a){a===void 0&&(a=0);const c=a;let d=0,h=0;for(const _ of this.fields){let b=_.span;if(h=0b&&(b=_.getSpan(s,a)))}d=a,a+=b}return d+h-c}fromArray(e){const s=this.makeDestinationObject();for(const a of this.fields)a.property!==void 0&&0a.span?s=-1:0<=s&&(s+=a.span)}}},UnionDiscriminator$1=class{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}},UnionLayoutDiscriminator$1=class extends UnionDiscriminator$1{constructor(e,s){if(!(e instanceof ExternalLayout$1&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(s||e.property||"variant"),this.layout=e}decode(e,s){return this.layout.decode(e,s)}encode(e,s,a){return this.layout.encode(e,s,a)}},Union$1=class extends Layout$1{constructor(e,s,a){const c=e instanceof UInt$1||e instanceof UIntBE$1;if(c)e=new UnionLayoutDiscriminator$1(new OffsetLayout$1(e));else if(e instanceof ExternalLayout$1&&e.isCount())e=new UnionLayoutDiscriminator$1(e);else if(!(e instanceof UnionDiscriminator$1))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(s===void 0&&(s=null),!(s===null||s instanceof Layout$1))throw new TypeError("defaultLayout must be null or a Layout");if(s!==null){if(0>s.span)throw new Error("defaultLayout must have constant span");s.property===void 0&&(s=s.replicate("content"))}let d=-1;s&&(d=s.span,0<=d&&c&&(d+=e.layout.span)),super(d,a),this.discriminator=e,this.usesPrefixDiscriminator=c,this.defaultLayout=s,this.registry={};let h=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(_){return h(_)},this.configGetSourceVariant=function(_){h=_.bind(this)}}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);const a=this.getVariant(e,s);if(!a)throw new Error("unable to determine span for unrecognized variant");return a.getSpan(e,s)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const s=this.registry[e[this.discriminator.property]];if(s&&(!s.layout||e.hasOwnProperty(s.property)))return s}else for(const s in this.registry){const a=this.registry[s];if(e.hasOwnProperty(a.property))return a}throw new Error("unable to infer src variant")}decode(e,s){s===void 0&&(s=0);let a;const c=this.discriminator,d=c.decode(e,s);let h=this.registry[d];if(h===void 0){let _=0;h=this.defaultLayout,this.usesPrefixDiscriminator&&(_=c.layout.span),a=this.makeDestinationObject(),a[c.property]=d,a[h.property]=this.defaultLayout.decode(e,s+_)}else a=h.decode(e,s);return a}encode(e,s,a){a===void 0&&(a=0);const c=this.getSourceVariant(e);if(c===void 0){const d=this.discriminator,h=this.defaultLayout;let _=0;return this.usesPrefixDiscriminator&&(_=d.layout.span),d.encode(e[d.property],s,a),_+h.encode(e[h.property],s,a+_)}return c.encode(e,s,a)}addVariant(e,s,a){const c=new VariantLayout$1(this,e,s,a);return this.registry[e]=c,c}getVariant(e,s){let a=e;return Buffer.isBuffer(e)&&(s===void 0&&(s=0),a=this.discriminator.decode(e,s)),this.registry[a]}},VariantLayout$1=class extends Layout$1{constructor(e,s,a,c){if(!(e instanceof Union$1))throw new TypeError("union must be a Union");if(!Number.isInteger(s)||0>s)throw new TypeError("variant must be a (non-negative) integer");if(typeof a=="string"&&c===void 0&&(c=a,a=null),a){if(!(a instanceof Layout$1))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=a.span&&a.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof c!="string")throw new TypeError("variant must have a String property")}let d=e.span;0>e.span&&(d=a?a.span:0,0<=d&&e.usesPrefixDiscriminator&&(d+=e.discriminator.layout.span)),super(d,c),this.union=e,this.variant=s,this.layout=a||null}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;return this.union.usesPrefixDiscriminator&&(a=this.union.discriminator.layout.span),a+this.layout.getSpan(e,s+a)}decode(e,s){const a=this.makeDestinationObject();if(s===void 0&&(s=0),this!==this.union.getVariant(e,s))throw new Error("variant mismatch");let c=0;return this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout?a[this.property]=this.layout.decode(e,s+c):this.property?a[this.property]=!0:this.union.usesPrefixDiscriminator&&(a[this.union.discriminator.property]=this.variant),a}encode(e,s,a){a===void 0&&(a=0);let c=0;if(this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,s,a);let d=c;if(this.layout&&(this.layout.encode(e[this.property],s,a+c),d+=this.layout.getSpan(s,a+c),0<=this.union.span&&d>this.union.span))throw new Error("encoded variant overruns containing union");return d}fromArray(e){if(this.layout)return this.layout.fromArray(e)}},Blob$1$1=class extends Layout$1{constructor(e,s){if(!(e instanceof ExternalLayout$1&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let a=-1;e instanceof ExternalLayout$1||(a=e),super(a,s),this.length=e}getSpan(e,s){let a=this.span;return 0>a&&(a=this.length.decode(e,s)),a}decode(e,s){s===void 0&&(s=0);let a=this.span;return 0>a&&(a=this.length.decode(e,s)),e.slice(s,s+a)}encode(e,s,a){let c=this.length;if(this.length instanceof ExternalLayout$1&&(c=e.length),!(Buffer.isBuffer(e)&&c===e.length))throw new TypeError(nameWithProperty$1("Blob.encode",this)+" requires (length "+c+") Buffer as src");if(a+c>s.length)throw new RangeError("encoding overruns Buffer");return s.write(e.toString("hex"),a,c,"hex"),this.length instanceof ExternalLayout$1&&this.length.encode(c,s,a),c}};var offset$1=(o,e,s)=>new OffsetLayout$1(o,e,s),u8$1=o=>new UInt$1(1,o),u32$1=o=>new UInt$1(4,o),nu64$1=o=>new NearUInt64$1(o),ns64$1=o=>new NearInt64$1(o),struct$1=(o,e,s)=>new Structure$1(o,e,s),union$2=(o,e,s)=>new Union$1(o,e,s),blob$1=(o,e)=>new Blob$1$1(o,e);let RustStringLayout$1=class extends Layout_2$1{constructor(e){super(-1,e),this.property=e,this.layout=struct$1([u32$1("length"),u32$1("lengthPadding"),blob$1(offset$1(u32$1(),-8),"chars")],this.property)}encode(e,s,a=0){if(e==null)return this.layout.span;const c={chars:Buffer.from(e,"utf8")};return this.layout.encode(c,s,a)}decode(e,s=0){return this.layout.decode(e,s).chars.toString()}getSpan(e,s=0){return u32$1().span+u32$1().span+new BN(new Uint8Array(e).slice(s,s+4),10,"le").toNumber()}};function rustStringLayout$1(o){return new RustStringLayout$1(o)}function publicKey$2$1(o){return blob$1(32,o)}const LAYOUT$1=union$2(u32$1("instruction"));LAYOUT$1.addVariant(0,struct$1([ns64$1("lamports"),ns64$1("space"),publicKey$2$1("owner")]),"createAccount");LAYOUT$1.addVariant(1,struct$1([publicKey$2$1("owner")]),"assign");LAYOUT$1.addVariant(2,struct$1([ns64$1("lamports")]),"transfer");LAYOUT$1.addVariant(3,struct$1([publicKey$2$1("base"),rustStringLayout$1("seed"),ns64$1("lamports"),ns64$1("space"),publicKey$2$1("owner")]),"createAccountWithSeed");LAYOUT$1.addVariant(4,struct$1([publicKey$2$1("authorized")]),"advanceNonceAccount");LAYOUT$1.addVariant(5,struct$1([ns64$1("lamports")]),"withdrawNonceAccount");LAYOUT$1.addVariant(6,struct$1([publicKey$2$1("authorized")]),"initializeNonceAccount");LAYOUT$1.addVariant(7,struct$1([publicKey$2$1("authorized")]),"authorizeNonceAccount");LAYOUT$1.addVariant(8,struct$1([ns64$1("space")]),"allocate");LAYOUT$1.addVariant(9,struct$1([publicKey$2$1("base"),rustStringLayout$1("seed"),ns64$1("space"),publicKey$2$1("owner")]),"allocateWithSeed");LAYOUT$1.addVariant(10,struct$1([publicKey$2$1("base"),rustStringLayout$1("seed"),publicKey$2$1("owner")]),"assignWithSeed");LAYOUT$1.addVariant(11,struct$1([ns64$1("lamports"),rustStringLayout$1("seed"),publicKey$2$1("owner")]),"transferWithSeed");Math.max(...Object.values(LAYOUT$1.registry).map(o=>o.span));let WrappedLayout$1$1=class extends Layout_2$1{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}};function publicKey$1$1(o){return new WrappedLayout$1$1(blob$1(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}struct$1([u32$1("version"),u32$1("state"),publicKey$1$1("authorizedPubkey"),publicKey$1$1("nonce"),struct$1([nu64$1("lamportsPerSignature")],"feeCalculator")]);function hash(o){return new TextDecoder().decode(sha256$2(o))}var sha256$1=Object.freeze({__proto__:null,hash});function createWithSeedSync(o,e,s){const a=Buffer$1.concat([o.toBuffer(),Buffer$1.from(e),s.toBuffer()]);return new PublicKey(sha256$2(a))}var pubkey=Object.freeze({__proto__:null,createWithSeedSync});const TOKEN_PROGRAM_ID$2=new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),ASSOCIATED_PROGRAM_ID$1=new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");function associatedAddress({mint:o,owner:e}){return PublicKey.findProgramAddressSync([e.toBuffer(),TOKEN_PROGRAM_ID$2.toBuffer(),o.toBuffer()],ASSOCIATED_PROGRAM_ID$1)[0]}var token=Object.freeze({__proto__:null,TOKEN_PROGRAM_ID:TOKEN_PROGRAM_ID$2,ASSOCIATED_PROGRAM_ID:ASSOCIATED_PROGRAM_ID$1,associatedAddress}),browserPonyfill$1={exports:{}};(function(o,e){var s=typeof self<"u"?self:commonjsGlobal$1,a=function(){function d(){this.fetch=!1,this.DOMException=s.DOMException}return d.prototype=s,new d}();(function(d){(function(h){var _={searchParams:"URLSearchParams"in d,iterable:"Symbol"in d&&"iterator"in Symbol,blob:"FileReader"in d&&"Blob"in d&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in d,arrayBuffer:"ArrayBuffer"in d};function b(j){return j&&DataView.prototype.isPrototypeOf(j)}if(_.arrayBuffer)var $=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],_e=ArrayBuffer.isView||function(j){return j&&$.indexOf(Object.prototype.toString.call(j))>-1};function nt(j){if(typeof j!="string"&&(j=String(j)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(j))throw new TypeError("Invalid character in header field name");return j.toLowerCase()}function rt(j){return typeof j!="string"&&(j=String(j)),j}function tt(j){var et={next:function(){var at=j.shift();return{done:at===void 0,value:at}}};return _.iterable&&(et[Symbol.iterator]=function(){return et}),et}function ct(j){this.map={},j instanceof ct?j.forEach(function(et,at){this.append(at,et)},this):Array.isArray(j)?j.forEach(function(et){this.append(et[0],et[1])},this):j&&Object.getOwnPropertyNames(j).forEach(function(et){this.append(et,j[et])},this)}ct.prototype.append=function(j,et){j=nt(j),et=rt(et);var at=this.map[j];this.map[j]=at?at+", "+et:et},ct.prototype.delete=function(j){delete this.map[nt(j)]},ct.prototype.get=function(j){return j=nt(j),this.has(j)?this.map[j]:null},ct.prototype.has=function(j){return this.map.hasOwnProperty(nt(j))},ct.prototype.set=function(j,et){this.map[nt(j)]=rt(et)},ct.prototype.forEach=function(j,et){for(var at in this.map)this.map.hasOwnProperty(at)&&j.call(et,this.map[at],at,this)},ct.prototype.keys=function(){var j=[];return this.forEach(function(et,at){j.push(at)}),tt(j)},ct.prototype.values=function(){var j=[];return this.forEach(function(et){j.push(et)}),tt(j)},ct.prototype.entries=function(){var j=[];return this.forEach(function(et,at){j.push([at,et])}),tt(j)},_.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function ht(j){if(j.bodyUsed)return Promise.reject(new TypeError("Already read"));j.bodyUsed=!0}function dt(j){return new Promise(function(et,at){j.onload=function(){et(j.result)},j.onerror=function(){at(j.error)}})}function lt(j){var et=new FileReader,at=dt(et);return et.readAsArrayBuffer(j),at}function st(j){var et=new FileReader,at=dt(et);return et.readAsText(j),at}function it(j){for(var et=new Uint8Array(j),at=new Array(et.length),pt=0;pt-1?et:j}function It(j,et){et=et||{};var at=et.body;if(j instanceof It){if(j.bodyUsed)throw new TypeError("Already read");this.url=j.url,this.credentials=j.credentials,et.headers||(this.headers=new ct(j.headers)),this.method=j.method,this.mode=j.mode,this.signal=j.signal,!at&&j._bodyInit!=null&&(at=j._bodyInit,j.bodyUsed=!0)}else this.url=String(j);if(this.credentials=et.credentials||this.credentials||"same-origin",(et.headers||!this.headers)&&(this.headers=new ct(et.headers)),this.method=At(et.method||this.method||"GET"),this.mode=et.mode||this.mode||null,this.signal=et.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&at)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(at)}It.prototype.clone=function(){return new It(this,{body:this._bodyInit})};function kt(j){var et=new FormData;return j.trim().split("&").forEach(function(at){if(at){var pt=at.split("="),gt=pt.shift().replace(/\+/g," "),mt=pt.join("=").replace(/\+/g," ");et.append(decodeURIComponent(gt),decodeURIComponent(mt))}}),et}function xt(j){var et=new ct,at=j.replace(/\r?\n[\t ]+/g," ");return at.split(/\r?\n/).forEach(function(pt){var gt=pt.split(":"),mt=gt.shift().trim();if(mt){var wt=gt.join(":").trim();et.append(mt,wt)}}),et}St.call(It.prototype);function $t(j,et){et||(et={}),this.type="default",this.status=et.status===void 0?200:et.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in et?et.statusText:"OK",this.headers=new ct(et.headers),this.url=et.url||"",this._initBody(j)}St.call($t.prototype),$t.prototype.clone=function(){return new $t(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},$t.error=function(){var j=new $t(null,{status:0,statusText:""});return j.type="error",j};var Ot=[301,302,303,307,308];$t.redirect=function(j,et){if(Ot.indexOf(et)===-1)throw new RangeError("Invalid status code");return new $t(null,{status:et,headers:{location:j}})},h.DOMException=d.DOMException;try{new h.DOMException}catch{h.DOMException=function(et,at){this.message=et,this.name=at;var pt=Error(et);this.stack=pt.stack},h.DOMException.prototype=Object.create(Error.prototype),h.DOMException.prototype.constructor=h.DOMException}function yt(j,et){return new Promise(function(at,pt){var gt=new It(j,et);if(gt.signal&>.signal.aborted)return pt(new h.DOMException("Aborted","AbortError"));var mt=new XMLHttpRequest;function wt(){mt.abort()}mt.onload=function(){var Et={status:mt.status,statusText:mt.statusText,headers:xt(mt.getAllResponseHeaders()||"")};Et.url="responseURL"in mt?mt.responseURL:Et.headers.get("X-Request-URL");var ot="response"in mt?mt.response:mt.responseText;at(new $t(ot,Et))},mt.onerror=function(){pt(new TypeError("Network request failed"))},mt.ontimeout=function(){pt(new TypeError("Network request failed"))},mt.onabort=function(){pt(new h.DOMException("Aborted","AbortError"))},mt.open(gt.method,gt.url,!0),gt.credentials==="include"?mt.withCredentials=!0:gt.credentials==="omit"&&(mt.withCredentials=!1),"responseType"in mt&&_.blob&&(mt.responseType="blob"),gt.headers.forEach(function(Et,ot){mt.setRequestHeader(ot,Et)}),gt.signal&&(gt.signal.addEventListener("abort",wt),mt.onreadystatechange=function(){mt.readyState===4&>.signal.removeEventListener("abort",wt)}),mt.send(typeof gt._bodyInit>"u"?null:gt._bodyInit)})}return yt.polyfill=!0,d.fetch||(d.fetch=yt,d.Headers=ct,d.Request=It,d.Response=$t),h.Headers=ct,h.Request=It,h.Response=$t,h.fetch=yt,Object.defineProperty(h,"__esModule",{value:!0}),h})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var c=a;e=c.fetch,e.default=c.fetch,e.fetch=c.fetch,e.Headers=c.Headers,e.Request=c.Request,e.Response=c.Response,o.exports=e})(browserPonyfill$1,browserPonyfill$1.exports);var fetch$1=getDefaultExportFromCjs$1(browserPonyfill$1.exports);async function verifiedBuild(o,e,s=5){const a=`https://api.apr.dev/api/v0/program/${e.toString()}/latest?limit=${s}`,[c,d]=await Promise.all([fetchData(o,e),fetch$1(a)]),h=(await d.json()).filter(b=>!b.aborted&&b.state==="Built"&&b.verified==="Verified");if(h.length===0)return null;const _=h[0];return c.slot.toNumber()!==_.verified_slot?null:_}async function fetchData(o,e){const s=await o.getAccountInfo(e);if(s===null)throw new Error("program account not found");const{program:a}=decodeUpgradeableLoaderState(s.data),c=await o.getAccountInfo(a.programdataAddress);if(c===null)throw new Error("program data account not found");const{programData:d}=decodeUpgradeableLoaderState(c.data);return d}const UPGRADEABLE_LOADER_STATE_LAYOUT=dist$2.rustEnum([dist$2.struct([],"uninitialized"),dist$2.struct([dist$2.option(dist$2.publicKey(),"authorityAddress")],"buffer"),dist$2.struct([dist$2.publicKey("programdataAddress")],"program"),dist$2.struct([dist$2.u64("slot"),dist$2.option(dist$2.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,dist$2.u32());function decodeUpgradeableLoaderState(o){return UPGRADEABLE_LOADER_STATE_LAYOUT.decode(o)}var registry=Object.freeze({__proto__:null,verifiedBuild,fetchData,decodeUpgradeableLoaderState}),index=Object.freeze({__proto__:null,sha256:sha256$1,rpc,publicKey:pubkey,bytes:index$1,token,features,registry});function splitArgsAndCtx(o,e){var s,a;let c={};const d=o.args?o.args.length:0;if(e.length>d){if(e.length!==d+1)throw new Error(`provided too many arguments ${e} to instruction ${o==null?void 0:o.name} expecting: ${(a=(s=o.args)===null||s===void 0?void 0:s.map(h=>h.name))!==null&&a!==void 0?a:[]}`);c=e.pop()}return[e,c]}class InstructionNamespaceFactory{static build(e,s,a){if(e.name==="_inner")throw new IdlError("the _inner name is reserved");const c=(...d)=>{const[h,_]=splitArgsAndCtx(e,[...d]);validateAccounts(e.accounts,_.accounts),validateInstruction(e,...d);const b=c.accounts(_.accounts);return _.remainingAccounts!==void 0&&b.push(..._.remainingAccounts),isSet("debug-logs")&&console.log("Outgoing account metas:",b),new TransactionInstruction({keys:b,programId:a,data:s(e.name,toInstruction(e,...h))})};return c.accounts=d=>InstructionNamespaceFactory.accountsArray(d,e.accounts,a,e.name),c}static accountsArray(e,s,a,c){return e?s.map(d=>{if(isCompositeAccounts(d)){const _e=e[d.name];return InstructionNamespaceFactory.accountsArray(_e,d.accounts,a,c).flat()}let h;try{h=translateAddress(e[d.name])}catch{throw new Error(`Wrong input type for account "${d.name}" in the instruction accounts object${c!==void 0?' for instruction "'+c+'"':""}. Expected PublicKey or string.`)}const _=d.optional&&h.equals(a),b=!!(d.writable&&!_),$=!!(d.signer&&!_);return{pubkey:h,isWritable:b,isSigner:$}}).flat():[]}}function validateInstruction(o,...e){}class TransactionFactory{static build(e,s){return(...c)=>{var d,h,_;const[,b]=splitArgsAndCtx(e,[...c]),$=new Transaction;if(b.preInstructions&&b.instructions)throw new Error("instructions is deprecated, use preInstructions");return(d=b.preInstructions)===null||d===void 0||d.forEach(_e=>$.add(_e)),(h=b.instructions)===null||h===void 0||h.forEach(_e=>$.add(_e)),$.add(s(...c)),(_=b.postInstructions)===null||_===void 0||_.forEach(_e=>$.add(_e)),$}}}class RpcFactory{static build(e,s,a,c){return async(...h)=>{var _;const b=s(...h),[,$]=splitArgsAndCtx(e,[...h]);if(c.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");try{return await c.sendAndConfirm(b,(_=$.signers)!==null&&_!==void 0?_:[],$.options)}catch(_e){throw translateError(_e,a)}}}}class AccountFactory{static build(e,s,a,c){var d;return((d=e.accounts)!==null&&d!==void 0?d:[]).reduce((h,_)=>(h[_.name]=new AccountClient(e,_,a,c,s),h),{})}}class AccountClient{get size(){return this._size}get programId(){return this._programId}get provider(){return this._provider}get coder(){return this._coder}constructor(e,s,a,c,d){this._idlAccount=s,this._programId=a,this._provider=c??getProvider(),this._coder=d??new BorshCoder(e),this._size=this._coder.accounts.size(s.name)}async fetchNullable(e,s){const{data:a}=await this.fetchNullableAndContext(e,s);return a}async fetchNullableAndContext(e,s){const a=await this.getAccountInfoAndContext(e,s),{value:c,context:d}=a;return{data:c&&c.data.length!==0?this._coder.accounts.decode(this._idlAccount.name,c.data):null,context:d}}async fetch(e,s){const{data:a}=await this.fetchNullableAndContext(e,s);if(a===null)throw new Error(`Account does not exist or has no data ${e.toString()}`);return a}async fetchAndContext(e,s){const{data:a,context:c}=await this.fetchNullableAndContext(e,s);if(a===null)throw new Error(`Account does not exist ${e.toString()}`);return{data:a,context:c}}async fetchMultiple(e,s){return(await this.fetchMultipleAndContext(e,s)).map(c=>c?c.data:null)}async fetchMultipleAndContext(e,s){return(await getMultipleAccountsAndContext(this._provider.connection,e.map(c=>translateAddress(c)),s)).map(c=>{if(c==null)return null;const{account:d,context:h}=c;return{data:this._coder.accounts.decode(this._idlAccount.name,d.data),context:h}})}async all(e){const s=this.coder.accounts.memcmp(this._idlAccount.name,e instanceof Buffer?e:void 0),a=[];return(s==null?void 0:s.offset)!=null&&(s==null?void 0:s.bytes)!=null&&a.push({memcmp:{offset:s.offset,bytes:s.bytes}}),(s==null?void 0:s.dataSize)!=null&&a.push({dataSize:s.dataSize}),(await this._provider.connection.getProgramAccounts(this._programId,{commitment:this._provider.connection.commitment,filters:[...a,...Array.isArray(e)?e:[]]})).map(({pubkey:d,account:h})=>({publicKey:d,account:this._coder.accounts.decode(this._idlAccount.name,h.data)}))}subscribe(e,s){const a=subscriptions.get(e.toString());if(a)return a.ee;const c=new EventEmitter;e=translateAddress(e);const d=this._provider.connection.onAccountChange(e,h=>{const _=this._coder.accounts.decode(this._idlAccount.name,h.data);c.emit("change",_)},s);return subscriptions.set(e.toString(),{ee:c,listener:d}),c}async unsubscribe(e){let s=subscriptions.get(e.toString());if(!s){console.warn("Address is not subscribed");return}subscriptions&&await this._provider.connection.removeAccountChangeListener(s.listener).then(()=>{subscriptions.delete(e.toString())}).catch(console.error)}async createInstruction(e,s){const a=this.size;if(this._provider.publicKey===void 0)throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field.");return SystemProgram.createAccount({fromPubkey:this._provider.publicKey,newAccountPubkey:e.publicKey,space:s??a,lamports:await this._provider.connection.getMinimumBalanceForRentExemption(s??a),programId:this._programId})}async getAccountInfo(e,s){return await this._provider.connection.getAccountInfo(translateAddress(e),s)}async getAccountInfoAndContext(e,s){return await this._provider.connection.getAccountInfoAndContext(translateAddress(e),s)}}const subscriptions=new Map,PROGRAM_LOG="Program log: ",PROGRAM_DATA="Program data: ",PROGRAM_LOG_START_INDEX=PROGRAM_LOG.length,PROGRAM_DATA_START_INDEX=PROGRAM_DATA.length;class EventManager{constructor(e,s,a){this._programId=e,this._provider=s,this._eventParser=new EventParser(e,a),this._eventCallbacks=new Map,this._eventListeners=new Map,this._listenerIdCount=0}addEventListener(e,s){var a;let c=this._listenerIdCount;return this._listenerIdCount+=1,this._eventListeners.has(e)||this._eventListeners.set(e,[]),this._eventListeners.set(e,((a=this._eventListeners.get(e))!==null&&a!==void 0?a:[]).concat(c)),this._eventCallbacks.set(c,[e,s]),this._onLogsSubscriptionId!==void 0||(this._onLogsSubscriptionId=this._provider.connection.onLogs(this._programId,(d,h)=>{if(!d.err)for(const _ of this._eventParser.parseLogs(d.logs)){const b=this._eventListeners.get(_.name);b&&b.forEach($=>{const _e=this._eventCallbacks.get($);if(_e){const[,nt]=_e;nt(_.data,h.slot,d.signature)}})}})),c}async removeEventListener(e){const s=this._eventCallbacks.get(e);if(!s)throw new Error(`Event listener ${e} doesn't exist!`);const[a]=s;let c=this._eventListeners.get(a);if(!c)throw new Error(`Event listeners don't exist for ${a}!`);if(this._eventCallbacks.delete(e),c=c.filter(d=>d!==e),this._eventListeners.set(a,c),c.length===0&&this._eventListeners.delete(a),this._eventCallbacks.size===0){if(this._eventListeners.size!==0)throw new Error(`Expected event listeners size to be 0 but got ${this._eventListeners.size}`);this._onLogsSubscriptionId!==void 0&&(await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId),this._onLogsSubscriptionId=void 0)}}}class EventParser{constructor(e,s){this.coder=s,this.programId=e}*parseLogs(e,s=!1){const a=new LogScanner(e),c=new ExecutionContext;let d=a.next();for(;d!==null;){let[h,_,b]=this.handleLog(c,d,s);h&&(yield h),_&&c.push(_),b&&c.pop(),d=a.next()}}handleLog(e,s,a){return e.stack.length>0&&e.program()===this.programId.toString()?this.handleProgramLog(s,a):[null,...this.handleSystemLog(s)]}handleProgramLog(e,s){if(e.startsWith(PROGRAM_LOG)||e.startsWith(PROGRAM_DATA)){const a=e.startsWith(PROGRAM_LOG)?e.slice(PROGRAM_LOG_START_INDEX):e.slice(PROGRAM_DATA_START_INDEX),c=this.coder.events.decode(a);if(s&&c===null)throw new Error(`Unable to decode event ${a}`);return[c,null,!1]}else return[null,...this.handleSystemLog(e)]}handleSystemLog(e){const s=e.split(":")[0];return s.match(/^Program (.*) success/g)!==null?[null,!0]:s.startsWith(`Program ${this.programId.toString()} invoke`)?[this.programId.toString(),!1]:s.includes("invoke")?["cpi",!1]:[null,!1]}}class ExecutionContext{constructor(){this.stack=[]}program(){if(!this.stack.length)throw new Error("Expected the stack to have elements");return this.stack[this.stack.length-1]}push(e){this.stack.push(e)}pop(){if(!this.stack.length)throw new Error("Expected the stack to have elements");this.stack.pop()}}class LogScanner{constructor(e){this.logs=e}next(){if(this.logs.length===0)return null;let e=this.logs[0];return this.logs=this.logs.slice(1),e}}class SimulateFactory{static build(e,s,a,c,d,h,_){return async(...$)=>{var _e;const nt=s(...$),[,rt]=splitArgsAndCtx(e,[...$]);let tt;if(c.simulate===void 0)throw new Error("This function requires 'Provider.simulate' to be implemented.");try{tt=await c.simulate(nt,rt.signers,(_e=rt.options)===null||_e===void 0?void 0:_e.commitment)}catch(dt){throw translateError(dt,a)}if(tt===void 0)throw new Error("Unable to simulate transaction");const ct=tt.logs;if(!ct)throw new Error("Simulated logs not found");const ht=[];if(_.events){let dt=new EventParser(h,d);for(const lt of dt.parseLogs(ct))ht.push(lt)}return{events:ht,raw:ct}}}}function uint64$1(o){return new WrappedLayout$2(blob$1(8),e=>u64$2.fromBuffer(e),e=>e.toBuffer(),o)}function publicKey$4(o){return new WrappedLayout$2(blob$1(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}function coption$1(o,e){return new COptionLayout$1(o,e)}let WrappedLayout$2=class extends Layout_2$1{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}},COptionLayout$1=class extends Layout_2$1{constructor(e,s){super(-1,s),this.layout=e,this.discriminator=u32$1()}encode(e,s,a=0){return e==null?this.layout.span+this.discriminator.encode(0,s,a):(this.discriminator.encode(1,s,a),this.layout.encode(e,s,a+4)+4)}decode(e,s=0){const a=this.discriminator.decode(e,s);if(a===0)return null;if(a===1)return this.layout.decode(e,s+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(e,s=0){return this.layout.getSpan(e,s+4)+4}},u64$2=class ir extends BN{toBuffer(){const e=super.toArray().reverse(),s=Buffer.from(e);if(s.length===8)return s;if(s.length>=8)throw new Error("u64 too large");const a=Buffer.alloc(8);return s.copy(a),a}static fromBuffer(e){if(e.length!==8)throw new Error(`Invalid buffer length: ${e.length}`);return new ir([...e].reverse().map(s=>`00${s.toString(16)}`.slice(-2)).join(""),16)}};const TOKEN_ACCOUNT_LAYOUT=struct$1([publicKey$4("mint"),publicKey$4("owner"),uint64$1("amount"),coption$1(publicKey$4(),"delegate"),(o=>{const e=union$2(u8$1("discriminator"),null,o);return e.addVariant(0,struct$1([]),"uninitialized"),e.addVariant(1,struct$1([]),"initialized"),e.addVariant(2,struct$1([]),"frozen"),e})("state"),coption$1(uint64$1(),"isNative"),uint64$1("delegatedAmount"),coption$1(publicKey$4(),"closeAuthority")]);function decodeTokenAccount(o){return TOKEN_ACCOUNT_LAYOUT.decode(o)}class AccountsResolver{constructor(e,s,a,c,d,h,_,b){this._args=e,this._accounts=s,this._provider=a,this._programId=c,this._idlIx=d,this._idlTypes=_,this._customResolver=b,this._accountStore=new AccountStore(a,h,c)}args(e){this._args=e}async resolve(){this.resolveEventCpi(this._idlIx.accounts),this.resolveConst(this._idlIx.accounts);let e=0;for(;await this.resolvePdasAndRelations(this._idlIx.accounts)+await this.resolveCustom()>0;)if(e++,e===16)throw new Error("Reached maximum depth for account resolution")}resolveOptionals(e){Object.assign(this._accounts,this.resolveOptionalsHelper(e,this._idlIx.accounts))}get(e){const s=e.reduce((a,c)=>a&&a[c],this._accounts);if(s&&s.toBase58)return s}set(e,s){let a=this._accounts;e.forEach((c,d)=>{var h;d===e.length-1&&(a[c]=s),a[c]=(h=a[c])!==null&&h!==void 0?h:{},a=a[c]})}resolveOptionalsHelper(e,s){const a={};for(const c of s){const d=c.name,h=e[d];h!==void 0&&(isPartialAccounts(h)?isCompositeAccounts(c)?a[d]=this.resolveOptionalsHelper(h,c.accounts):a[d]=flattenPartialAccounts(h):h!==null?a[d]=translateAddress(h):c.optional&&(a[d]=this._programId))}return a}async resolveCustom(){if(this._customResolver){const{accounts:e,resolved:s}=await this._customResolver({args:this._args,accounts:this._accounts,provider:this._provider,programId:this._programId,idlIx:this._idlIx});return this._accounts=e,s}return 0}resolveEventCpi(e,s=[]){for(const a in e){const c=e[a];isCompositeAccounts(c)&&this.resolveEventCpi(c.accounts,[...s,c.name]);const d=+a+1;if(d===e.length)return;const h=e[a].name,_=e[d].name;if(h==="eventAuthority"&&_==="program"){const b=[...s,h],$=[...s,_];this.get(b)||this.set(b,PublicKey.findProgramAddressSync([Buffer.from("__event_authority")],this._programId)[0]),this.get($)||this.set($,this._programId);return}}}resolveConst(e,s=[]){for(const a of e){const c=a.name;if(isCompositeAccounts(a))this.resolveConst(a.accounts,[...s,c]);else{const d=a;if((d.signer||d.address)&&!this.get([...s,c])){if(d.signer){if(!this._provider.wallet)throw new Error("This function requires the `Provider` interface implementor to have a `wallet` field.");this.set([...s,c],this._provider.wallet.publicKey)}d.address&&this.set([...s,c],translateAddress(d.address))}}}}async resolvePdasAndRelations(e,s=[]){let a=0;for(const c of e){const d=c.name;if(isCompositeAccounts(c))a+=await this.resolvePdasAndRelations(c.accounts,[...s,d]);else{const h=c;if((h.pda||h.relations)&&!this.get([...s,d])){a++;try{if(h.pda){const _=await Promise.all(h.pda.seeds.map(_e=>this.toBuffer(_e,s)));if(_.some(_e=>!_e))continue;const b=await this.parseProgramId(h,s),[$]=PublicKey.findProgramAddressSync(_,b);this.set([...s,d],$)}}catch{}try{if(h.relations){const _=this.get([...s,h.relations[0]]);if(_){const b=await this._accountStore.fetchAccount({publicKey:_});this.set([...s,d],b[d])}}}catch{}}}}return a}async parseProgramId(e,s=[]){var a;if(!(!((a=e.pda)===null||a===void 0)&&a.program))return this._programId;const c=await this.toBuffer(e.pda.program,s);if(!c)throw new Error(`Program seed not resolved: ${e.name}`);return new PublicKey(c)}async toBuffer(e,s=[]){switch(e.kind){case"const":return this.toBufferConst(e);case"arg":return await this.toBufferArg(e);case"account":return await this.toBufferAccount(e,s);default:throw new Error(`Unexpected seed: ${e}`)}}toBufferConst(e){return this.toBufferValue("bytes",e.value)}async toBufferArg(e){const[s,...a]=e.path.split("."),c=this._idlIx.args.findIndex(_=>_.name===s);if(c===-1)throw new Error(`Unable to find argument for seed: ${s}`);const d=a.reduce((_,b)=>(_??{})[b],this._args[c]);if(d===void 0)return;const h=this.getType(this._idlIx.args[c].type,a);return this.toBufferValue(h,d)}async toBufferAccount(e,s=[]){const[a,...c]=e.path.split("."),d=this.get([...s,a]);if(!d)return;if(!c.length)return this.toBufferValue("pubkey",d);if(!e.account)throw new Error(`Seed account is required in order to resolve type: ${e.path}`);let _=await this._accountStore.fetchAccount({publicKey:d,name:e.account}),b=c;for(;b.length>0;)_=_[b[0]],b=b.slice(1);if(_===void 0)return;const $=this.getType({defined:{name:e.account}},c);return this.toBufferValue($,_)}toBufferValue(e,s){switch(e){case"u8":case"i8":return Buffer.from([s]);case"u16":case"i16":return new BN(s).toArrayLike(Buffer,"le",2);case"u32":case"i32":return new BN(s).toArrayLike(Buffer,"le",4);case"u64":case"i64":return new BN(s).toArrayLike(Buffer,"le",8);case"u128":case"i128":return new BN(s).toArrayLike(Buffer,"le",16);case"u256":case"i256":return new BN(s).toArrayLike(Buffer,"le",32);case"string":return Buffer.from(s);case"pubkey":return s.toBuffer();case"bytes":return Buffer.from(s);default:if(e!=null&&e.array)return Buffer.from(s);throw new Error(`Unexpected seed type: ${e}`)}}getType(e,s=[]){var a;const c=(a=e==null?void 0:e.defined)===null||a===void 0?void 0:a.name;if(c){if(c==="tokenAccount")switch(s.at(0)){case"mint":case"owner":return"pubkey";case"amount":case"delagatedAmount":return"u64";default:throw new Error(`Unknown token account path: ${s}`)}const d=this._idlTypes.find(_e=>_e.name===c);if(!d)throw new Error(`Type not found: ${c}`);const[h,..._]=s,$=d.type.fields.find(_e=>_e.name===h);if(!$)throw new Error(`Field not found: ${h}`);return this.getType($.type,_)}return e}}class AccountStore{constructor(e,s,a){this._provider=e,this._cache=new Map,this._idls={},this._idls[a.toBase58()]=s}async fetchAccount({publicKey:e,name:s}){const a=e.toBase58();if(!this._cache.has(a)){const c=await this._provider.connection.getAccountInfo(e);if(c===null)throw new Error(`Account not found: ${a}`);if(s==="tokenAccount"){const d=decodeTokenAccount(c.data);this._cache.set(a,d)}else{const d=await this.getAccountsNs(c.owner);if(d){const h=Object.values(d)[0];if(h){const _=h.coder.accounts.decodeAny(c.data);this._cache.set(a,_)}}}}return this._cache.get(a)}async getAccountsNs(e){const s=e.toBase58();if(!this._idls[s]){const a=await Program.fetchIdl(e,this._provider);if(a){const c=new Program(a,this._provider);this._idls[s]=c.account}}return this._idls[s]}}class MethodsBuilderFactory{static build(e,s,a,c,d,h,_,b,$,_e,nt){return(...rt)=>new MethodsBuilder(rt,c,d,h,_,b,e,s,a,$,_e,nt)}}function isPartialAccounts(o){return typeof o=="object"&&o!==null&&!("_bn"in o)}function flattenPartialAccounts(o,e){const s={};for(const a in o){const c=o[a];if(c===null)throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!");s[a]=isPartialAccounts(c)?flattenPartialAccounts(c):translateAddress(c)}return s}class MethodsBuilder{constructor(e,s,a,c,d,h,_,b,$,_e,nt,rt){this._args=e,this._ixFn=s,this._txFn=a,this._rpcFn=c,this._simulateFn=d,this._viewFn=h,this._accounts={},this._remainingAccounts=[],this._signers=[],this._preInstructions=[],this._postInstructions=[],this._resolveAccounts=!0,this._accountsResolver=new AccountsResolver(e,this._accounts,_,b,$,_e,nt,rt)}args(e){this._args=e,this._accountsResolver.args(e)}accounts(e){return this.accountsPartial(e)}accountsPartial(e){return this._resolveAccounts=!0,this._accountsResolver.resolveOptionals(e),this}accountsStrict(e){return this._resolveAccounts=!1,this._accountsResolver.resolveOptionals(e),this}signers(e){return this._signers=this._signers.concat(e),this}remainingAccounts(e){return this._remainingAccounts=this._remainingAccounts.concat(e),this}preInstructions(e,s=!1){return s?this._preInstructions=e.concat(this._preInstructions):this._preInstructions=this._preInstructions.concat(e),this}postInstructions(e){return this._postInstructions=this._postInstructions.concat(e),this}async pubkeys(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._accounts}async rpc(e){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._rpcFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async rpcAndKeys(e){return{pubkeys:await this.pubkeys(),signature:await this.rpc(e)}}async view(e){if(this._resolveAccounts&&await this._accountsResolver.resolve(),!this._viewFn)throw new Error("Method does not support views");return this._viewFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async simulate(e){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._simulateFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async instruction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._ixFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async prepare(){return{instruction:await this.instruction(),pubkeys:await this.pubkeys(),signers:this._signers}}async transaction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._txFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}}class ViewFactory{static build(e,s,a,c){const d=s.accounts.find(b=>b.writable),h=!!s.returns;return d||!h?void 0:async(...b)=>{let $=await a(...b);const _e=`Program return: ${e} `;let nt=$.raw.find(ht=>ht.startsWith(_e));if(!nt)throw new Error("View expected return log");let rt=decode(nt.slice(_e.length)),tt=s.returns;if(!tt)throw new Error("View expected return type");return IdlCoder.fieldLayout({type:tt},c.types).decode(rt)}}}class NamespaceFactory{static build(e,s,a,c,d){const h={},_={},b={},$={},_e={},nt={},rt=parseIdlErrors(e),tt=e.accounts?AccountFactory.build(e,s,a,c):{};return e.instructions.forEach(ct=>{const ht=InstructionNamespaceFactory.build(ct,(vt,At)=>s.instruction.encode(vt,At),a),dt=TransactionFactory.build(ct,ht),lt=RpcFactory.build(ct,dt,rt,c),st=SimulateFactory.build(ct,dt,rt,c,s,a,e),it=ViewFactory.build(a,ct,st,e),_t=MethodsBuilderFactory.build(c,a,ct,ht,dt,lt,st,it,tt,e.types||[],d==null?void 0:d(ct)),St=ct.name;_[St]=ht,b[St]=dt,h[St]=lt,$[St]=st,_e[St]=_t,it&&(nt[St]=it)}),[h,_,b,tt,$,_e,nt]}}class Program{get programId(){return this._programId}get idl(){return this._idl}get rawIdl(){return this._rawIdl}get coder(){return this._coder}get provider(){return this._provider}constructor(e,s=getProvider(),a,c){const d=convertIdlToCamelCase(e);this._idl=d,this._rawIdl=e,this._provider=s,this._programId=translateAddress(e.address),this._coder=a??new BorshCoder(d),this._events=new EventManager(this._programId,s,this._coder);const[h,_,b,$,_e,nt,rt]=NamespaceFactory.build(d,this._coder,this._programId,s,c);this.rpc=h,this.instruction=_,this.transaction=b,this.account=$,this.simulate=_e,this.methods=nt,this.views=rt}static async at(e,s){const a=translateAddress(e),c=await Program.fetchIdl(a,s);if(!c)throw new Error(`IDL not found for program: ${e.toString()}`);return new Program(c,s)}static async fetchIdl(e,s){s=s??getProvider();const a=translateAddress(e),c=await idlAddress(a),d=await s.connection.getAccountInfo(c);if(!d)return null;let h=decodeIdlAccount(d.data.slice(8));const _=inflate_1(h.data);return JSON.parse(decode$2(_))}addEventListener(e,s){return this._events.addEventListener(e,s)}async removeEventListener(e){return await this._events.removeEventListener(e)}}new PublicKey("11111111111111111111111111111111");const address="3DNfsn8oRdET1qob8PsoKuWkZ78r6qTCWfMZskUmpJgL",metadata={name:"fall",version:"0.1.0",spec:"0.1.0",description:"Created with Anchor"},instructions=[{name:"borrow",discriminator:[228,253,131,202,207,116,89,18],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"borrower",signer:!0},{name:"borrower_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_b",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_borrow_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrow_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_borrow_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrower_borrow_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"borrow_amount",type:"u64"}]},{name:"create_amm",discriminator:[242,91,21,170,5,68,125,64],accounts:[{name:"amm",writable:!0,pda:{seeds:[{kind:"arg",path:"id"}]}},{name:"admin"},{name:"payer",writable:!0,signer:!0},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"id",type:"pubkey"}]},{name:"create_pool",discriminator:[233,146,209,142,207,104,64,188],accounts:[{name:"amm",pda:{seeds:[{kind:"account",path:"amm.id",account:"Amm"}]}},{name:"mint_a"},{name:"mint_b"},{name:"pool",writable:!0,pda:{seeds:[{kind:"account",path:"amm"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"amm"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"fee",type:"u16"}]},{name:"deposit_collateral",discriminator:[156,131,142,116,146,247,162,120],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_b",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"borrower",signer:!0},{name:"borrower_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_b",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_borrow_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrower_borrow_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount",type:"u64"}]},{name:"deposit_liquidity",discriminator:[245,99,59,25,151,71,233,249],accounts:[{name:"pool",writable:!0,pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"depositor",docs:["The account paying for all rents"],signer:!0},{name:"liquidity_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[98]}]}},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_liquidity",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"liquidity_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",docs:["The account paying for all rents"],writable:!0,signer:!0},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount_a",type:"u64"},{name:"amount_b",type:"u64"}]},{name:"init_lending_pool_1",discriminator:[111,87,89,249,229,194,59,237],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"mint_a"},{name:"mint_b"},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"init_lending_pool_2",discriminator:[70,160,247,111,154,255,24,219],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[101]}]}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"init_lending_pool_3",discriminator:[226,110,186,213,63,178,83,62],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lender_lending_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[105]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"lend",discriminator:[89,34,75,168,122,47,185,45],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[101]}]}},{name:"lender_lending_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[105]}]}},{name:"lender",signer:!0},{name:"lender_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lender"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"lender"},{kind:"const",value:[103]}]}},{name:"lender_lend_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lending_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_lending_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lender_lending_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",docs:["The account paying for all rents"],writable:!0,signer:!0},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"user_lending_amount",type:"u64"}]},{name:"liquidate",discriminator:[223,179,226,125,48,46,39,74],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"trader",signer:!0},{name:"trader_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"trader"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower"},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_borrow_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrow_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"price",discriminator:[129,85,239,229,61,225,218,20],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[],returns:{defined:{name:"PriceResult"}}},{name:"redeem",discriminator:[184,12,86,149,70,196,97,225],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"},{kind:"const",value:[97]}]}},{name:"mint_a"},{name:"mint_b"},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"pool.mint_a",account:"Pool"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[101]}]}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"lender_lending_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[105]}]}},{name:"lender",signer:!0},{name:"lender_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lender"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lender"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"lender"},{kind:"const",value:[103]}]}},{name:"lender_lending_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lending_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lender_lending_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"lender_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"lender_lending_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"repay",discriminator:[234,103,67,82,208,234,219,166],accounts:[{name:"mint_a"},{name:"mint_b"},{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"lending_pool_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[100]}]}},{name:"lending_pool_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"lending_pool_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"lending_pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrow_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[102]}]}},{name:"collateral_receipt_token_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[104]}]}},{name:"borrower_borrow_block_height_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[106]}]}},{name:"borrower",signer:!0},{name:"borrower_token_a",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_token_b",writable:!0,pda:{seeds:[{kind:"account",path:"borrower"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_authority",pda:{seeds:[{kind:"account",path:"pool"},{kind:"account",path:"borrower"},{kind:"const",value:[103]}]}},{name:"borrower_borrow_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrow_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_collateral_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"collateral_receipt_token_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"borrower_borrow_block_height_receipt_token",writable:!0,pda:{seeds:[{kind:"account",path:"borrower_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"borrower_borrow_block_height_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"swap_exact_tokens_for_tokens",discriminator:[249,86,253,50,177,221,73,162],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"mint_a",relations:["pool"]},{name:"mint_b",relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"trader",signer:!0},{name:"trader_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"trader"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"trader_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"trader"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",writable:!0,signer:!0},{name:"token_program",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"swap_a",type:"bool"},{name:"input_amount",type:"u64"},{name:"min_output_amount",type:"u64"}]},{name:"withdraw_liquidity",discriminator:[149,158,33,185,47,243,253,31],accounts:[{name:"pool",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"pool.mint_a",account:"Pool"},{kind:"account",path:"pool.mint_b",account:"Pool"}]}},{name:"pool_authority",pda:{seeds:[{kind:"account",path:"pool.amm",account:"Pool"},{kind:"account",path:"mint_a"},{kind:"account",path:"mint_b"},{kind:"const",value:[97]}]}},{name:"depositor",signer:!0},{name:"liquidity_mint",writable:!0,pda:{seeds:[{kind:"account",path:"pool"},{kind:"const",value:[98]}]}},{name:"mint_a",writable:!0,relations:["pool"]},{name:"mint_b",writable:!0,relations:["pool"]},{name:"pool_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"pool_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"pool_authority"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_liquidity",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"liquidity_mint"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_a",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_a"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"depositor_account_b",writable:!0,pda:{seeds:[{kind:"account",path:"depositor"},{kind:"const",value:[6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169]},{kind:"account",path:"mint_b"}],program:{kind:"const",value:[140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89]}}},{name:"payer",docs:["The account paying for all rents"],writable:!0,signer:!0},{name:"token_program",docs:["Solana ecosystem accounts"],address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associated_token_program",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"system_program",address:"11111111111111111111111111111111"}],args:[{name:"amount",type:"u64"}]}],accounts=[{name:"Amm",discriminator:[143,245,200,17,74,214,196,135]},{name:"Pool",discriminator:[241,154,109,4,17,177,109,188]}],errors$1=[{code:6e3,name:"CalculationError",msg:"Calculation error"},{code:6001,name:"CalculationError1",msg:"Calculation error"},{code:6002,name:"InvalidFee",msg:"Invalid fee"}],types$1=[{name:"Amm",type:{kind:"struct",fields:[{name:"id",docs:["The primary key of the AMM"],type:"pubkey"},{name:"admin",docs:["Account that has admin authority over the AMM"],type:"pubkey"}]}},{name:"Pool",type:{kind:"struct",fields:[{name:"amm",docs:["Primary key of the AMM"],type:"pubkey"},{name:"mint_a",docs:["Mint of token A"],type:"pubkey"},{name:"mint_b",docs:["Mint of token B"],type:"pubkey"},{name:"fee",docs:["The LP fee taken on each trade, in basis points"],type:"u16"},{name:"token_a_amount",docs:["借贷池中token a的数量"],type:"u64"},{name:"token_b_amount",docs:["借贷池中token b的数量"],type:"u64"},{name:"min_collateral_ratio",docs:["最小抵押率 (基点表示,20000 = 200%)"],type:"u64"},{name:"borrow_interest_accumulator_block_height",docs:["记录上次借贷池interest_step更新时的区块高度"],type:"u64"},{name:"borrow_interest_accumulator",docs:["借款累计利息,随着区块高度增加而增加,但是增加幅度与资金借出量正相关"],type:"u64"},{name:"share_lending_block_height",docs:["共享借贷累加器区块高度"],type:"u64"},{name:"share_lending_accumulator",docs:["共享借贷累加器,资金借出量的时间积分"],type:"u64"}]}},{name:"PriceResult",type:{kind:"struct",fields:[{name:"token_a_amount",type:"u64"},{name:"token_b_amount",type:"u64"}]}}],constants=[{name:"AUTHORITY_SEED",type:"bytes",value:"[97]"},{name:"BASE_RATE",type:"u64",value:"10000"},{name:"BORROWER_AUTHORITY_SEED",type:"bytes",value:"[103]"},{name:"BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED",type:"bytes",value:"[106]"},{name:"BORROW_TOKEN_SEED",type:"bytes",value:"[102]"},{name:"COLLATERAL_TOKEN_SEED",type:"bytes",value:"[104]"},{name:"LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED",type:"bytes",value:"[105]"},{name:"LENDING_AUTHORITY_SEED",type:"bytes",value:"[100]"},{name:"LENDING_TOKEN_SEED",type:"bytes",value:"[101]"},{name:"LIQUIDITY_SEED",type:"bytes",value:"[98]"},{name:"MINIMUM_LIQUIDITY",type:"u64",value:"100"},{name:"MIN_COLLATERAL_RATIO_BASE",type:"u64",value:"10000"}],fallIdl={address,metadata,instructions,accounts,errors:errors$1,types:types$1,constants};async function createAmm(o,e,s){try{const a=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),c=new Program(fallIdl,a),[d]=PublicKey.findProgramAddressSync([s.toBuffer()],c.programId);return await c.methods.createAmm(s).accounts({amm:d,admin:a.wallet.publicKey,payer:a.wallet.publicKey,systemProgram:SystemProgram.programId}).rpc()}catch(a){throw console.error("Error details:",a),a}}const CreateAmmForm=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState(""),[c,d]=reactExports.useState("500"),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async nt=>{if(nt.preventDefault(),a(""),_(!0),!o){a("Please connect your wallet first"),_(!1);return}const rt=Number(c);if(rt<1||rt>1e4){a("Fee must be between 1 and 10000"),_(!1);return}try{const tt=PublicKey.unique(),ct=await createAmm(o,e,tt);console.log(`Transaction URL: https://explorer.solana.com/tx/${ct}`),$(tt.toString()),d("500")}catch(tt){console.error("Error creating AMM:",tt),a(tt instanceof Error?tt.message:"Failed to create AMM. Please try again.")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"create-amm-container",children:[s&&jsxRuntimeExports.jsx("div",{className:"error-message",children:s}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["AMM created successfully! ID: ",b]}),jsxRuntimeExports.jsx("form",{onSubmit:_e,className:"form",children:jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:h||!o,children:h?"Creating...":"Create AMM"})})]})},getAmmAccounts=async(o,e)=>{console.log("Getting AMM accounts connection:",e);const s=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),c=await new Program(fallIdl,s).account.amm.all();for(const d of c)console.log("AMM Account Details:",{publicKey:d.publicKey.toString(),id:d.account.id.toString(),admin:d.account.admin.toString()});return c.map(d=>({pubkey:d.publicKey.toString(),ammid:d.account.id.toString()}))},AmmContext=reactExports.createContext(void 0),AmmProvider=({children:o})=>{const[e,s]=reactExports.useState(null);return jsxRuntimeExports.jsx(AmmContext.Provider,{value:{amm:e,setAmm:s},children:o})},useAmm=()=>{const o=reactExports.useContext(AmmContext);if(!o)throw new Error("useAmm must be used within an AmmProvider");return o},AmmList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),{setAmm:b}=useAmm(),$=async()=>{if(o){d(!0);try{const nt=await getAmmAccounts(o,e);a(nt),nt.length>0&&b(nt[0])}catch(nt){console.error("Error fetching AMMs:",nt),_(nt instanceof Error?nt.message:"Failed to fetch AMMs")}finally{d(!1)}}};reactExports.useEffect(()=>{$()},[o,e]);const _e=nt=>{b(nt)};return jsxRuntimeExports.jsxs("div",{className:"create-amm-container",children:[jsxRuntimeExports.jsx("h2",{children:"Existing AMMs"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),c?jsxRuntimeExports.jsx("div",{children:"Loading AMMs..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"form-group",children:jsxRuntimeExports.jsx("p",{children:"No AMMs found"})}):jsxRuntimeExports.jsx("div",{className:"form-group",children:s.map(nt=>jsxRuntimeExports.jsxs("div",{className:"amm-item",onClick:()=>_e(nt),children:[jsxRuntimeExports.jsxs("div",{className:"amm-details",children:[jsxRuntimeExports.jsx("span",{className:"amm-label",children:"AMM Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"amm-value",children:nt.pubkey})]}),jsxRuntimeExports.jsxs("div",{className:"amm-details",children:[jsxRuntimeExports.jsx("span",{className:"amm-label",children:"AMM ID:"}),jsxRuntimeExports.jsxs("span",{className:"amm-value",children:[nt.ammid," bps"]})]})]},nt.pubkey))})]})};function getDefaultExportFromCjs(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var browser={exports:{}},process=browser.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(o){if(cachedSetTimeout===setTimeout)return setTimeout(o,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(o,0);try{return cachedSetTimeout(o,0)}catch{try{return cachedSetTimeout.call(null,o,0)}catch{return cachedSetTimeout.call(this,o,0)}}}function runClearTimeout(o){if(cachedClearTimeout===clearTimeout)return clearTimeout(o);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(o);try{return cachedClearTimeout(o)}catch{try{return cachedClearTimeout.call(null,o)}catch{return cachedClearTimeout.call(this,o)}}}var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var o=runTimeout(cleanUpNextTick);draining=!0;for(var e=queue.length;e;){for(currentQueue=queue,queue=[];++queueIndex1)for(var s=1;s>2]|=o[c]<>2]|=a<>2]|=(192|a>>6)<>2]|=(128|a&63)<=57344?(_[d>>2]|=(224|a>>12)<>2]|=(128|a>>6&63)<>2]|=(128|a&63)<>2]|=(240|a>>18)<>2]|=(128|a>>12&63)<>2]|=(128|a>>6&63)<>2]|=(128|a&63)<=64?(this.block=_[16],this.start=d-64,this.hash(),this.hashed=!0):this.start=d}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var o=this.blocks,e=this.lastByteIndex;o[16]=this.block,o[e>>2]|=EXTRA[e&3],this.block=o[16],e>=56&&(this.hashed||this.hash(),o[0]=this.block,o[16]=o[1]=o[2]=o[3]=o[4]=o[5]=o[6]=o[7]=o[8]=o[9]=o[10]=o[11]=o[12]=o[13]=o[14]=o[15]=0),o[14]=this.hBytes<<3|this.bytes>>>29,o[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var o=this.h0,e=this.h1,s=this.h2,a=this.h3,c=this.h4,d=this.h5,h=this.h6,_=this.h7,b=this.blocks,$,_e,nt,rt,tt,ct,ht,dt,lt,st,it;for($=16;$<64;++$)tt=b[$-15],_e=(tt>>>7|tt<<25)^(tt>>>18|tt<<14)^tt>>>3,tt=b[$-2],nt=(tt>>>17|tt<<15)^(tt>>>19|tt<<13)^tt>>>10,b[$]=b[$-16]+_e+b[$-7]+nt<<0;for(it=e&s,$=0;$<64;$+=4)this.first?(this.is224?(dt=300032,tt=b[0]-1413257819,_=tt-150054599<<0,a=tt+24177077<<0):(dt=704751109,tt=b[0]-210244248,_=tt-1521486534<<0,a=tt+143694565<<0),this.first=!1):(_e=(o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10),nt=(c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7),dt=o&e,rt=dt^o&s^it,ht=c&d^~c&h,tt=_+nt+ht+K[$]+b[$],ct=_e+rt,_=a+tt<<0,a=tt+ct<<0),_e=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),nt=(_>>>6|_<<26)^(_>>>11|_<<21)^(_>>>25|_<<7),lt=a&o,rt=lt^a&e^dt,ht=_&c^~_&d,tt=h+nt+ht+K[$+1]+b[$+1],ct=_e+rt,h=s+tt<<0,s=tt+ct<<0,_e=(s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10),nt=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),st=s&a,rt=st^s&o^lt,ht=h&_^~h&c,tt=d+nt+ht+K[$+2]+b[$+2],ct=_e+rt,d=e+tt<<0,e=tt+ct<<0,_e=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),nt=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7),it=e&s,rt=it^e&a^st,ht=d&h^~d&_,tt=c+nt+ht+K[$+3]+b[$+3],ct=_e+rt,c=o+tt<<0,o=tt+ct<<0;this.h0=this.h0+o<<0,this.h1=this.h1+e<<0,this.h2=this.h2+s<<0,this.h3=this.h3+a<<0,this.h4=this.h4+c<<0,this.h5=this.h5+d<<0,this.h6=this.h6+h<<0,this.h7=this.h7+_<<0},Sha256.prototype.hex=function(){this.finalize();var o=this.h0,e=this.h1,s=this.h2,a=this.h3,c=this.h4,d=this.h5,h=this.h6,_=this.h7,b=HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[c>>28&15]+HEX_CHARS[c>>24&15]+HEX_CHARS[c>>20&15]+HEX_CHARS[c>>16&15]+HEX_CHARS[c>>12&15]+HEX_CHARS[c>>8&15]+HEX_CHARS[c>>4&15]+HEX_CHARS[c&15]+HEX_CHARS[d>>28&15]+HEX_CHARS[d>>24&15]+HEX_CHARS[d>>20&15]+HEX_CHARS[d>>16&15]+HEX_CHARS[d>>12&15]+HEX_CHARS[d>>8&15]+HEX_CHARS[d>>4&15]+HEX_CHARS[d&15]+HEX_CHARS[h>>28&15]+HEX_CHARS[h>>24&15]+HEX_CHARS[h>>20&15]+HEX_CHARS[h>>16&15]+HEX_CHARS[h>>12&15]+HEX_CHARS[h>>8&15]+HEX_CHARS[h>>4&15]+HEX_CHARS[h&15];return this.is224||(b+=HEX_CHARS[_>>28&15]+HEX_CHARS[_>>24&15]+HEX_CHARS[_>>20&15]+HEX_CHARS[_>>16&15]+HEX_CHARS[_>>12&15]+HEX_CHARS[_>>8&15]+HEX_CHARS[_>>4&15]+HEX_CHARS[_&15]),b},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var o=this.h0,e=this.h1,s=this.h2,a=this.h3,c=this.h4,d=this.h5,h=this.h6,_=this.h7,b=[o>>24&255,o>>16&255,o>>8&255,o&255,e>>24&255,e>>16&255,e>>8&255,e&255,s>>24&255,s>>16&255,s>>8&255,s&255,a>>24&255,a>>16&255,a>>8&255,a&255,c>>24&255,c>>16&255,c>>8&255,c&255,d>>24&255,d>>16&255,d>>8&255,d&255,h>>24&255,h>>16&255,h>>8&255,h&255];return this.is224||b.push(_>>24&255,_>>16&255,_>>8&255,_&255),b},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var o=new ArrayBuffer(this.is224?28:32),e=new DataView(o);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),o};function HmacSha256(o,e,s){var a,c=typeof o;if(c==="string"){var d=[],h=o.length,_=0,b;for(a=0;a>6,d[_++]=128|b&63):b<55296||b>=57344?(d[_++]=224|b>>12,d[_++]=128|b>>6&63,d[_++]=128|b&63):(b=65536+((b&1023)<<10|o.charCodeAt(++a)&1023),d[_++]=240|b>>18,d[_++]=128|b>>12&63,d[_++]=128|b>>6&63,d[_++]=128|b&63);o=d}else if(c==="object"){if(o===null)throw new Error(ERROR);if(ARRAY_BUFFER&&o.constructor===ArrayBuffer)o=new Uint8Array(o);else if(!Array.isArray(o)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(o)))throw new Error(ERROR)}else throw new Error(ERROR);o.length>64&&(o=new Sha256(e,!0).update(o).array());var $=[],_e=[];for(a=0;a<64;++a){var nt=o[a]||0;$[a]=92^nt,_e[a]=54^nt}Sha256.call(this,e,s),this.update(_e),this.oKeyPad=$,this.inner=!0,this.sharedMemory=s}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var o=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(o),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224)})()})(sha256);var dist={};(function(o){var e=commonjsGlobal$2&&commonjsGlobal$2.__importDefault||function(Ot){return Ot&&Ot.__esModule?Ot:{default:Ot}};Object.defineProperty(o,"__esModule",{value:!0}),o.map=o.array=o.rustEnum=o.str=o.vecU8=o.tagged=o.vec=o.bool=o.option=o.publicKey=o.i256=o.u256=o.i128=o.u128=o.i64=o.u64=o.struct=o.f64=o.f32=o.i32=o.u32=o.i16=o.u16=o.i8=o.u8=void 0;const s=Layout$3,a=require$$5,c=e(bnExports);var d=Layout$3;Object.defineProperty(o,"u8",{enumerable:!0,get:function(){return d.u8}}),Object.defineProperty(o,"i8",{enumerable:!0,get:function(){return d.s8}}),Object.defineProperty(o,"u16",{enumerable:!0,get:function(){return d.u16}}),Object.defineProperty(o,"i16",{enumerable:!0,get:function(){return d.s16}}),Object.defineProperty(o,"u32",{enumerable:!0,get:function(){return d.u32}}),Object.defineProperty(o,"i32",{enumerable:!0,get:function(){return d.s32}}),Object.defineProperty(o,"f32",{enumerable:!0,get:function(){return d.f32}}),Object.defineProperty(o,"f64",{enumerable:!0,get:function(){return d.f64}}),Object.defineProperty(o,"struct",{enumerable:!0,get:function(){return d.struct}});class h extends s.Layout{constructor(yt,j,et){super(yt,et),this.blob=(0,s.blob)(yt),this.signed=j}decode(yt,j=0){const et=new c.default(this.blob.decode(yt,j),10,"le");return this.signed?et.fromTwos(this.span*8).clone():et}encode(yt,j,et=0){return this.signed&&(yt=yt.toTwos(this.span*8)),this.blob.encode(yt.toArrayLike(Buffer,"le",this.span),j,et)}}function _(Ot){return new h(8,!1,Ot)}o.u64=_;function b(Ot){return new h(8,!0,Ot)}o.i64=b;function $(Ot){return new h(16,!1,Ot)}o.u128=$;function _e(Ot){return new h(16,!0,Ot)}o.i128=_e;function nt(Ot){return new h(32,!1,Ot)}o.u256=nt;function rt(Ot){return new h(32,!0,Ot)}o.i256=rt;class tt extends s.Layout{constructor(yt,j,et,at){super(yt.span,at),this.layout=yt,this.decoder=j,this.encoder=et}decode(yt,j){return this.decoder(this.layout.decode(yt,j))}encode(yt,j,et){return this.layout.encode(this.encoder(yt),j,et)}getSpan(yt,j){return this.layout.getSpan(yt,j)}}function ct(Ot){return new tt((0,s.blob)(32),yt=>new a.PublicKey(yt),yt=>yt.toBuffer(),Ot)}o.publicKey=ct;class ht extends s.Layout{constructor(yt,j){super(-1,j),this.layout=yt,this.discriminator=(0,s.u8)()}encode(yt,j,et=0){return yt==null?this.discriminator.encode(0,j,et):(this.discriminator.encode(1,j,et),this.layout.encode(yt,j,et+1)+1)}decode(yt,j=0){const et=this.discriminator.decode(yt,j);if(et===0)return null;if(et===1)return this.layout.decode(yt,j+1);throw new Error("Invalid option "+this.property)}getSpan(yt,j=0){const et=this.discriminator.decode(yt,j);if(et===0)return 1;if(et===1)return this.layout.getSpan(yt,j+1)+1;throw new Error("Invalid option "+this.property)}}function dt(Ot,yt){return new ht(Ot,yt)}o.option=dt;function lt(Ot){return new tt((0,s.u8)(),st,it,Ot)}o.bool=lt;function st(Ot){if(Ot===0)return!1;if(Ot===1)return!0;throw new Error("Invalid bool: "+Ot)}function it(Ot){return Ot?1:0}function _t(Ot,yt){const j=(0,s.u32)("length"),et=(0,s.struct)([j,(0,s.seq)(Ot,(0,s.offset)(j,-j.span),"values")]);return new tt(et,({values:at})=>at,at=>({values:at}),yt)}o.vec=_t;function St(Ot,yt,j){const et=(0,s.struct)([_("tag"),yt.replicate("data")]);function at({tag:pt,data:gt}){if(!pt.eq(Ot))throw new Error("Invalid tag, expected: "+Ot.toString("hex")+", got: "+pt.toString("hex"));return gt}return new tt(et,at,pt=>({tag:Ot,data:pt}),j)}o.tagged=St;function vt(Ot){const yt=(0,s.u32)("length"),j=(0,s.struct)([yt,(0,s.blob)((0,s.offset)(yt,-yt.span),"data")]);return new tt(j,({data:et})=>et,et=>({data:et}),Ot)}o.vecU8=vt;function At(Ot){return new tt(vt(),yt=>yt.toString("utf-8"),yt=>Buffer.from(yt,"utf-8"),Ot)}o.str=At;function It(Ot,yt,j){const et=(0,s.union)(j??(0,s.u8)(),yt);return Ot.forEach((at,pt)=>et.addVariant(pt,at,at.property)),et}o.rustEnum=It;function kt(Ot,yt,j){const et=(0,s.struct)([(0,s.seq)(Ot,yt,"values")]);return new tt(et,({values:at})=>at,at=>({values:at}),j)}o.array=kt;class xt extends s.Layout{constructor(yt,j,et){super(yt.span+j.span,et),this.keyLayout=yt,this.valueLayout=j}decode(yt,j){j=j||0;const et=this.keyLayout.decode(yt,j),at=this.valueLayout.decode(yt,j+this.keyLayout.getSpan(yt,j));return[et,at]}encode(yt,j,et){et=et||0;const at=this.keyLayout.encode(yt[0],j,et),pt=this.valueLayout.encode(yt[1],j,et+at);return at+pt}getSpan(yt,j){return this.keyLayout.getSpan(yt,j)+this.valueLayout.getSpan(yt,j)}}function $t(Ot,yt,j){const et=(0,s.u32)("length"),at=(0,s.struct)([et,(0,s.seq)(new xt(Ot,yt),(0,s.offset)(et,-et.span),"values")]);return new tt(at,({values:pt})=>new Map(pt),pt=>({values:Array.from(pt.entries())}),j)}o.map=$t})(dist);var assert$1={exports:{}},errors={},util={},types={},shams$1=function o(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},s=Symbol("test"),a=Object(s);if(typeof s=="string"||Object.prototype.toString.call(s)!=="[object Symbol]"||Object.prototype.toString.call(a)!=="[object Symbol]")return!1;var c=42;e[s]=c;for(s in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var d=Object.getOwnPropertySymbols(e);if(d.length!==1||d[0]!==s||!Object.prototype.propertyIsEnumerable.call(e,s))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var h=Object.getOwnPropertyDescriptor(e,s);if(h.value!==c||h.enumerable!==!0)return!1}return!0},hasSymbols$3=shams$1,shams=function o(){return hasSymbols$3()&&!!Symbol.toStringTag},esErrors=Error,_eval=EvalError,range=RangeError,ref=ReferenceError,syntax=SyntaxError,type$1=TypeError,uri=URIError,origSymbol=typeof Symbol<"u"&&Symbol,hasSymbolSham=shams$1,hasSymbols$2=function o(){return typeof origSymbol!="function"||typeof Symbol!="function"||typeof origSymbol("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hasSymbolSham()},test={__proto__:null,foo:{}},$Object=Object,hasProto$1=function o(){return{__proto__:test}.foo===test.foo&&!(test instanceof $Object)},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr$4=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function o(e,s){for(var a=[],c=0;c"u"||!getProto$1?undefined$1:getProto$1(Uint8Array),INTRINSICS={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":$Error,"%eval%":eval,"%EvalError%":$EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1(getProto$1([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols$1||!getProto$1?undefined$1:getProto$1(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":$RangeError,"%ReferenceError%":$ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols$1||!getProto$1?undefined$1:getProto$1(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols$1?Symbol:undefined$1,"%SyntaxError%":$SyntaxError$1,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$2,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":$URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto$1)try{null.error}catch(o){var errorProto=getProto$1(getProto$1(o));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function o(e){var s;if(e==="%AsyncFunction%")s=getEvalledConstructor("async function () {}");else if(e==="%GeneratorFunction%")s=getEvalledConstructor("function* () {}");else if(e==="%AsyncGeneratorFunction%")s=getEvalledConstructor("async function* () {}");else if(e==="%AsyncGenerator%"){var a=o("%AsyncGeneratorFunction%");a&&(s=a.prototype)}else if(e==="%AsyncIteratorPrototype%"){var c=o("%AsyncGenerator%");c&&getProto$1&&(s=getProto$1(c.prototype))}return INTRINSICS[e]=s,s},LEGACY_ALIASES={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=functionBind,hasOwn=hasown,$concat=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function o(e){var s=$strSlice(e,0,1),a=$strSlice(e,-1);if(s==="%"&&a!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected closing `%`");if(a==="%"&&s!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected opening `%`");var c=[];return $replace(e,rePropName,function(d,h,_,b){c[c.length]=_?$replace(b,reEscapeChar,"$1"):h||d}),c},getBaseIntrinsic=function o(e,s){var a=e,c;if(hasOwn(LEGACY_ALIASES,a)&&(c=LEGACY_ALIASES[a],a="%"+c[0]+"%"),hasOwn(INTRINSICS,a)){var d=INTRINSICS[a];if(d===needsEval&&(d=doEval(a)),typeof d>"u"&&!s)throw new $TypeError$2("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:c,name:a,value:d}}throw new $SyntaxError$1("intrinsic "+e+" does not exist!")},getIntrinsic=function o(e,s){if(typeof e!="string"||e.length===0)throw new $TypeError$2("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof s!="boolean")throw new $TypeError$2('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,e)===null)throw new $SyntaxError$1("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var a=stringToPath(e),c=a.length>0?a[0]:"",d=getBaseIntrinsic("%"+c+"%",s),h=d.name,_=d.value,b=!1,$=d.alias;$&&(c=$[0],$spliceApply(a,$concat([0,1],$)));for(var _e=1,nt=!0;_e=a.length){var ht=$gOPD$1(_,rt);nt=!!ht,nt&&"get"in ht&&!("originalValue"in ht.get)?_=ht.get:_=_[rt]}else nt=hasOwn(_,rt),_=_[rt];nt&&!b&&(INTRINSICS[h]=_)}}return _},callBind$2={exports:{}},esDefineProperty,hasRequiredEsDefineProperty;function requireEsDefineProperty(){if(hasRequiredEsDefineProperty)return esDefineProperty;hasRequiredEsDefineProperty=1;var o=getIntrinsic,e=o("%Object.defineProperty%",!0)||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return esDefineProperty=e,esDefineProperty}var GetIntrinsic$2=getIntrinsic,$gOPD=GetIntrinsic$2("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch{$gOPD=null}var gopd$1=$gOPD,$defineProperty$1=requireEsDefineProperty(),$SyntaxError=syntax,$TypeError$1=type$1,gopd=gopd$1,defineDataProperty=function o(e,s,a){if(!e||typeof e!="object"&&typeof e!="function")throw new $TypeError$1("`obj` must be an object or a function`");if(typeof s!="string"&&typeof s!="symbol")throw new $TypeError$1("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $TypeError$1("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $TypeError$1("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $TypeError$1("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $TypeError$1("`loose`, if provided, must be a boolean");var c=arguments.length>3?arguments[3]:null,d=arguments.length>4?arguments[4]:null,h=arguments.length>5?arguments[5]:null,_=arguments.length>6?arguments[6]:!1,b=!!gopd&&gopd(e,s);if($defineProperty$1)$defineProperty$1(e,s,{configurable:h===null&&b?b.configurable:!h,enumerable:c===null&&b?b.enumerable:!c,value:a,writable:d===null&&b?b.writable:!d});else if(_||!c&&!d&&!h)e[s]=a;else throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},$defineProperty=requireEsDefineProperty(),hasPropertyDescriptors=function o(){return!!$defineProperty};hasPropertyDescriptors.hasArrayLengthDefineBug=function o(){if(!$defineProperty)return null;try{return $defineProperty([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors,GetIntrinsic$1=getIntrinsic,define$1=defineDataProperty,hasDescriptors=hasPropertyDescriptors_1(),gOPD$1=gopd$1,$TypeError=type$1,$floor=GetIntrinsic$1("%Math.floor%"),setFunctionLength=function o(e,s){if(typeof e!="function")throw new $TypeError("`fn` is not a function");if(typeof s!="number"||s<0||s>4294967295||$floor(s)!==s)throw new $TypeError("`length` must be a positive 32-bit integer");var a=arguments.length>2&&!!arguments[2],c=!0,d=!0;if("length"in e&&gOPD$1){var h=gOPD$1(e,"length");h&&!h.configurable&&(c=!1),h&&!h.writable&&(d=!1)}return(c||d||!a)&&(hasDescriptors?define$1(e,"length",s,!0,!0):define$1(e,"length",s)),e};(function(o){var e=functionBind,s=getIntrinsic,a=setFunctionLength,c=type$1,d=s("%Function.prototype.apply%"),h=s("%Function.prototype.call%"),_=s("%Reflect.apply%",!0)||e.call(h,d),b=requireEsDefineProperty(),$=s("%Math.max%");o.exports=function(rt){if(typeof rt!="function")throw new c("a function is required");var tt=_(e,h,arguments);return a(tt,1+$(0,rt.length-(arguments.length-1)),!0)};var _e=function(){return _(e,d,arguments)};b?b(o.exports,"apply",{value:_e}):o.exports.apply=_e})(callBind$2);var callBindExports=callBind$2.exports,GetIntrinsic=getIntrinsic,callBind$1=callBindExports,$indexOf$1=callBind$1(GetIntrinsic("String.prototype.indexOf")),callBound$3=function o(e,s){var a=GetIntrinsic(e,!!s);return typeof a=="function"&&$indexOf$1(e,".prototype.")>-1?callBind$1(a):a},hasToStringTag$3=shams(),callBound$2=callBound$3,$toString$1=callBound$2("Object.prototype.toString"),isStandardArguments=function o(e){return hasToStringTag$3&&e&&typeof e=="object"&&Symbol.toStringTag in e?!1:$toString$1(e)==="[object Arguments]"},isLegacyArguments=function o(e){return isStandardArguments(e)?!0:e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&$toString$1(e)!=="[object Array]"&&$toString$1(e.callee)==="[object Function]"},supportsStandardArguments=function(){return isStandardArguments(arguments)}();isStandardArguments.isLegacyArguments=isLegacyArguments;var isArguments$1=supportsStandardArguments?isStandardArguments:isLegacyArguments,toStr$3=Object.prototype.toString,fnToStr$1=Function.prototype.toString,isFnRegex=/^\s*(?:function)?\*/,hasToStringTag$2=shams(),getProto=Object.getPrototypeOf,getGeneratorFunc=function(){if(!hasToStringTag$2)return!1;try{return Function("return function*() {}")()}catch{}},GeneratorFunction,isGeneratorFunction=function o(e){if(typeof e!="function")return!1;if(isFnRegex.test(fnToStr$1.call(e)))return!0;if(!hasToStringTag$2){var s=toStr$3.call(e);return s==="[object GeneratorFunction]"}if(!getProto)return!1;if(typeof GeneratorFunction>"u"){var a=getGeneratorFunc();GeneratorFunction=a?getProto(a):!1}return getProto(e)===GeneratorFunction},fnToStr=Function.prototype.toString,reflectApply=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,badArrayLike,isCallableMarker;if(typeof reflectApply=="function"&&typeof Object.defineProperty=="function")try{badArrayLike=Object.defineProperty({},"length",{get:function(){throw isCallableMarker}}),isCallableMarker={},reflectApply(function(){throw 42},null,badArrayLike)}catch(o){o!==isCallableMarker&&(reflectApply=null)}else reflectApply=null;var constructorRegex=/^\s*class\b/,isES6ClassFn=function o(e){try{var s=fnToStr.call(e);return constructorRegex.test(s)}catch{return!1}},tryFunctionObject=function o(e){try{return isES6ClassFn(e)?!1:(fnToStr.call(e),!0)}catch{return!1}},toStr$2=Object.prototype.toString,objectClass="[object Object]",fnClass="[object Function]",genClass="[object GeneratorFunction]",ddaClass="[object HTMLAllCollection]",ddaClass2="[object HTML document.all class]",ddaClass3="[object HTMLCollection]",hasToStringTag$1=typeof Symbol=="function"&&!!Symbol.toStringTag,isIE68=!(0 in[,]),isDDA=function o(){return!1};if(typeof document=="object"){var all=document.all;toStr$2.call(all)===toStr$2.call(document.all)&&(isDDA=function(e){if((isIE68||!e)&&(typeof e>"u"||typeof e=="object"))try{var s=toStr$2.call(e);return(s===ddaClass||s===ddaClass2||s===ddaClass3||s===objectClass)&&e("")==null}catch{}return!1})}var isCallable$1=reflectApply?function o(e){if(isDDA(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;try{reflectApply(e,null,badArrayLike)}catch(s){if(s!==isCallableMarker)return!1}return!isES6ClassFn(e)&&tryFunctionObject(e)}:function o(e){if(isDDA(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;if(hasToStringTag$1)return tryFunctionObject(e);if(isES6ClassFn(e))return!1;var s=toStr$2.call(e);return s!==fnClass&&s!==genClass&&!/^\[object HTML/.test(s)?!1:tryFunctionObject(e)},isCallable=isCallable$1,toStr$1=Object.prototype.toString,hasOwnProperty=Object.prototype.hasOwnProperty,forEachArray=function o(e,s,a){for(var c=0,d=e.length;c=3&&(c=a),toStr$1.call(e)==="[object Array]"?forEachArray(e,s,c):typeof e=="string"?forEachString(e,s,c):forEachObject(e,s,c)},forEach_1=forEach$1,possibleTypedArrayNames=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"],possibleNames=possibleTypedArrayNames,g$1=globalThis,availableTypedArrays$1=function o(){for(var e=[],s=0;s-1?s:s!=="Object"?!1:trySlices(e)}return gOPD?tryTypedArrays(e):null},whichTypedArray=whichTypedArray$1,isTypedArray=function o(e){return!!whichTypedArray(e)};(function(o){var e=isArguments$1,s=isGeneratorFunction,a=whichTypedArray$1,c=isTypedArray;function d(Mt){return Mt.call.bind(Mt)}var h=typeof BigInt<"u",_=typeof Symbol<"u",b=d(Object.prototype.toString),$=d(Number.prototype.valueOf),_e=d(String.prototype.valueOf),nt=d(Boolean.prototype.valueOf);if(h)var rt=d(BigInt.prototype.valueOf);if(_)var tt=d(Symbol.prototype.valueOf);function ct(Mt,nn){if(typeof Mt!="object")return!1;try{return nn(Mt),!0}catch{return!1}}o.isArgumentsObject=e,o.isGeneratorFunction=s,o.isTypedArray=c;function ht(Mt){return typeof Promise<"u"&&Mt instanceof Promise||Mt!==null&&typeof Mt=="object"&&typeof Mt.then=="function"&&typeof Mt.catch=="function"}o.isPromise=ht;function dt(Mt){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(Mt):c(Mt)||ft(Mt)}o.isArrayBufferView=dt;function lt(Mt){return a(Mt)==="Uint8Array"}o.isUint8Array=lt;function st(Mt){return a(Mt)==="Uint8ClampedArray"}o.isUint8ClampedArray=st;function it(Mt){return a(Mt)==="Uint16Array"}o.isUint16Array=it;function _t(Mt){return a(Mt)==="Uint32Array"}o.isUint32Array=_t;function St(Mt){return a(Mt)==="Int8Array"}o.isInt8Array=St;function vt(Mt){return a(Mt)==="Int16Array"}o.isInt16Array=vt;function At(Mt){return a(Mt)==="Int32Array"}o.isInt32Array=At;function It(Mt){return a(Mt)==="Float32Array"}o.isFloat32Array=It;function kt(Mt){return a(Mt)==="Float64Array"}o.isFloat64Array=kt;function xt(Mt){return a(Mt)==="BigInt64Array"}o.isBigInt64Array=xt;function $t(Mt){return a(Mt)==="BigUint64Array"}o.isBigUint64Array=$t;function Ot(Mt){return b(Mt)==="[object Map]"}Ot.working=typeof Map<"u"&&Ot(new Map);function yt(Mt){return typeof Map>"u"?!1:Ot.working?Ot(Mt):Mt instanceof Map}o.isMap=yt;function j(Mt){return b(Mt)==="[object Set]"}j.working=typeof Set<"u"&&j(new Set);function et(Mt){return typeof Set>"u"?!1:j.working?j(Mt):Mt instanceof Set}o.isSet=et;function at(Mt){return b(Mt)==="[object WeakMap]"}at.working=typeof WeakMap<"u"&&at(new WeakMap);function pt(Mt){return typeof WeakMap>"u"?!1:at.working?at(Mt):Mt instanceof WeakMap}o.isWeakMap=pt;function gt(Mt){return b(Mt)==="[object WeakSet]"}gt.working=typeof WeakSet<"u"&>(new WeakSet);function mt(Mt){return gt(Mt)}o.isWeakSet=mt;function wt(Mt){return b(Mt)==="[object ArrayBuffer]"}wt.working=typeof ArrayBuffer<"u"&&wt(new ArrayBuffer);function Et(Mt){return typeof ArrayBuffer>"u"?!1:wt.working?wt(Mt):Mt instanceof ArrayBuffer}o.isArrayBuffer=Et;function ot(Mt){return b(Mt)==="[object DataView]"}ot.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&ot(new DataView(new ArrayBuffer(1),0,1));function ft(Mt){return typeof DataView>"u"?!1:ot.working?ot(Mt):Mt instanceof DataView}o.isDataView=ft;var Rt=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function bt(Mt){return b(Mt)==="[object SharedArrayBuffer]"}function Tt(Mt){return typeof Rt>"u"?!1:(typeof bt.working>"u"&&(bt.working=bt(new Rt)),bt.working?bt(Mt):Mt instanceof Rt)}o.isSharedArrayBuffer=Tt;function Bt(Mt){return b(Mt)==="[object AsyncFunction]"}o.isAsyncFunction=Bt;function Ct(Mt){return b(Mt)==="[object Map Iterator]"}o.isMapIterator=Ct;function Pt(Mt){return b(Mt)==="[object Set Iterator]"}o.isSetIterator=Pt;function Dt(Mt){return b(Mt)==="[object Generator]"}o.isGeneratorObject=Dt;function jt(Mt){return b(Mt)==="[object WebAssembly.Module]"}o.isWebAssemblyCompiledModule=jt;function Kt(Mt){return ct(Mt,$)}o.isNumberObject=Kt;function qt(Mt){return ct(Mt,_e)}o.isStringObject=qt;function Gt(Mt){return ct(Mt,nt)}o.isBooleanObject=Gt;function Yt(Mt){return h&&ct(Mt,rt)}o.isBigIntObject=Yt;function On(Mt){return _&&ct(Mt,tt)}o.isSymbolObject=On;function tn(Mt){return Kt(Mt)||qt(Mt)||Gt(Mt)||Yt(Mt)||On(Mt)}o.isBoxedPrimitive=tn;function Zt(Mt){return typeof Uint8Array<"u"&&(Et(Mt)||Tt(Mt))}o.isAnyArrayBuffer=Zt,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(Mt){Object.defineProperty(o,Mt,{enumerable:!1,value:function(){throw new Error(Mt+" is not supported in userland")}})})})(types);var isBufferBrowser=function o(e){return e&&typeof e=="object"&&typeof e.copy=="function"&&typeof e.fill=="function"&&typeof e.readUInt8=="function"},inherits_browser={exports:{}};typeof Object.create=="function"?inherits_browser.exports=function(e,s){s&&(e.super_=s,e.prototype=Object.create(s.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:inherits_browser.exports=function(e,s){if(s){e.super_=s;var a=function(){};a.prototype=s.prototype,e.prototype=new a,e.prototype.constructor=e}};var inherits_browserExports=inherits_browser.exports;(function(o){var e={},s=Object.getOwnPropertyDescriptors||function(Rt){for(var bt=Object.keys(Rt),Tt={},Bt=0;Bt=Bt)return Dt;switch(Dt){case"%s":return String(Tt[bt++]);case"%d":return Number(Tt[bt++]);case"%j":try{return JSON.stringify(Tt[bt++])}catch{return"[Circular]"}default:return Dt}}),Pt=Tt[bt];bt"u")return function(){return o.deprecate(ft,Rt).apply(this,arguments)};var bt=!1;function Tt(){if(!bt){if(process$1.throwDeprecation)throw new Error(Rt);process$1.traceDeprecation?console.trace(Rt):console.error(Rt),bt=!0}return ft.apply(this,arguments)}return Tt};var c={},d=/^$/;if(e.NODE_DEBUG){var h=e.NODE_DEBUG;h=h.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+h+"$","i")}o.debuglog=function(ft){if(ft=ft.toUpperCase(),!c[ft])if(d.test(ft)){var Rt=process$1.pid;c[ft]=function(){var bt=o.format.apply(o,arguments);console.error("%s %d: %s",ft,Rt,bt)}}else c[ft]=function(){};return c[ft]};function _(ft,Rt){var bt={seen:[],stylize:$};return arguments.length>=3&&(bt.depth=arguments[2]),arguments.length>=4&&(bt.colors=arguments[3]),st(Rt)?bt.showHidden=Rt:Rt&&o._extend(bt,Rt),It(bt.showHidden)&&(bt.showHidden=!1),It(bt.depth)&&(bt.depth=2),It(bt.colors)&&(bt.colors=!1),It(bt.customInspect)&&(bt.customInspect=!0),bt.colors&&(bt.stylize=b),nt(bt,ft,bt.depth)}o.inspect=_,_.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},_.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function b(ft,Rt){var bt=_.styles[Rt];return bt?"\x1B["+_.colors[bt][0]+"m"+ft+"\x1B["+_.colors[bt][1]+"m":ft}function $(ft,Rt){return ft}function _e(ft){var Rt={};return ft.forEach(function(bt,Tt){Rt[bt]=!0}),Rt}function nt(ft,Rt,bt){if(ft.customInspect&&Rt&&yt(Rt.inspect)&&Rt.inspect!==o.inspect&&!(Rt.constructor&&Rt.constructor.prototype===Rt)){var Tt=Rt.inspect(bt,ft);return vt(Tt)||(Tt=nt(ft,Tt,bt)),Tt}var Bt=rt(ft,Rt);if(Bt)return Bt;var Ct=Object.keys(Rt),Pt=_e(Ct);if(ft.showHidden&&(Ct=Object.getOwnPropertyNames(Rt)),Ot(Rt)&&(Ct.indexOf("message")>=0||Ct.indexOf("description")>=0))return tt(Rt);if(Ct.length===0){if(yt(Rt)){var Dt=Rt.name?": "+Rt.name:"";return ft.stylize("[Function"+Dt+"]","special")}if(kt(Rt))return ft.stylize(RegExp.prototype.toString.call(Rt),"regexp");if($t(Rt))return ft.stylize(Date.prototype.toString.call(Rt),"date");if(Ot(Rt))return tt(Rt)}var jt="",Kt=!1,qt=["{","}"];if(lt(Rt)&&(Kt=!0,qt=["[","]"]),yt(Rt)){var Gt=Rt.name?": "+Rt.name:"";jt=" [Function"+Gt+"]"}if(kt(Rt)&&(jt=" "+RegExp.prototype.toString.call(Rt)),$t(Rt)&&(jt=" "+Date.prototype.toUTCString.call(Rt)),Ot(Rt)&&(jt=" "+tt(Rt)),Ct.length===0&&(!Kt||Rt.length==0))return qt[0]+jt+qt[1];if(bt<0)return kt(Rt)?ft.stylize(RegExp.prototype.toString.call(Rt),"regexp"):ft.stylize("[Object]","special");ft.seen.push(Rt);var Yt;return Kt?Yt=ct(ft,Rt,bt,Pt,Ct):Yt=Ct.map(function(On){return ht(ft,Rt,bt,Pt,On,Kt)}),ft.seen.pop(),dt(Yt,jt,qt)}function rt(ft,Rt){if(It(Rt))return ft.stylize("undefined","undefined");if(vt(Rt)){var bt="'"+JSON.stringify(Rt).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ft.stylize(bt,"string")}if(St(Rt))return ft.stylize(""+Rt,"number");if(st(Rt))return ft.stylize(""+Rt,"boolean");if(it(Rt))return ft.stylize("null","null")}function tt(ft){return"["+Error.prototype.toString.call(ft)+"]"}function ct(ft,Rt,bt,Tt,Bt){for(var Ct=[],Pt=0,Dt=Rt.length;Pt-1&&(Ct?Dt=Dt.split(` `).map(function(Kt){return" "+Kt}).join(` `).slice(2):Dt=` @@ -131,4 +131,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `))}throw Bt}};function ot(Rt,bt,Tt,Bt,Ct){if(!ht(bt))throw new h("regexp","RegExp",bt);var Pt=Ct==="match";if(typeof Rt!="string"||st(bt,Rt)!==Pt){if(Tt instanceof Error)throw Tt;var Dt=!Tt;Tt=Tt||(typeof Rt!="string"?'The "string" argument must be of type string. Received type '+"".concat(o(Rt)," (").concat(rt(Rt),")"):(Pt?"The input did not match the regular expression ":"The input was expected to not match the regular expression ")+"".concat(rt(bt),`. Input: `).concat(rt(Rt),` -`));var jt=new _e({actual:Rt,expected:bt,message:Tt,operator:Ct,stackStartFn:Bt});throw jt.generatedMessage=Dt,jt}}At.match=function Rt(bt,Tt,Bt){ot(bt,Tt,Bt,Rt,"match")},At.doesNotMatch=function Rt(bt,Tt,Bt){ot(bt,Tt,Bt,Rt,"doesNotMatch")};function ft(){for(var Rt=arguments.length,bt=new Array(Rt),Tt=0;Tt{var b;return(b=a)!=null?b:a=[e,...s()]}}}function isIterable(o){return isObject(o)&&typeof o[Symbol.iterator]=="function"}function isObject(o){return typeof o=="object"&&o!=null}function print(o){return typeof o=="string"?JSON.stringify(o):""+o}function shiftIterator(o){const{done:e,value:s}=o.next();return e?void 0:s}function toFailure(o,e,s,a){if(o===!0)return;o===!1?o={}:typeof o=="string"&&(o={message:o});const{path:c,branch:d}=e,{type:h}=s,{refinement:_,message:b="Expected a value of type `"+h+"`"+(_?" with refinement `"+_+"`":"")+", but received: `"+print(a)+"`"}=o;return{value:a,type:h,refinement:_,key:c[c.length-1],path:c,branch:d,...o,message:b}}function*toFailures(o,e,s,a){isIterable(o)||(o=[o]);for(const c of o){const d=toFailure(c,e,s,a);d&&(yield d)}}function*run(o,e,s){s===void 0&&(s={});const{path:a=[],branch:c=[o],coerce:d=!1,mask:h=!1}=s,_={path:a,branch:c};if(d&&(o=e.coercer(o,_),h&&e.type!=="type"&&isObject(e.schema)&&isObject(o)&&!Array.isArray(o)))for(const $ in o)e.schema[$]===void 0&&delete o[$];let b=!0;for(const $ of e.validator(o,_))b=!1,yield[$,void 0];for(let[$,_e,nt]of e.entries(o,_)){const rt=run(_e,nt,{path:$===void 0?a:[...a,$],branch:$===void 0?c:[...c,_e],coerce:d,mask:h});for(const tt of rt)tt[0]?(b=!1,yield[tt[0],void 0]):d&&(_e=tt[1],$===void 0?o=_e:o instanceof Map?o.set($,_e):o instanceof Set?o.add(_e):isObject(o)&&(o[$]=_e))}if(b)for(const $ of e.refiner(o,_))b=!1,yield[$,void 0];b&&(yield[void 0,o])}class Struct{constructor(e){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:s,schema:a,validator:c,refiner:d,coercer:h=b=>b,entries:_=function*(){}}=e;this.type=s,this.schema=a,this.entries=_,this.coercer=h,c?this.validator=(b,$)=>{const _e=c(b,$);return toFailures(_e,$,this,b)}:this.validator=()=>[],d?this.refiner=(b,$)=>{const _e=d(b,$);return toFailures(_e,$,this,b)}:this.refiner=()=>[]}assert(e){return assert(e,this)}create(e){return create(e,this)}is(e){return is(e,this)}mask(e){return mask(e,this)}validate(e,s){return s===void 0&&(s={}),validate(e,this,s)}}function assert(o,e){const s=validate(o,e);if(s[0])throw s[0]}function create(o,e){const s=validate(o,e,{coerce:!0});if(s[0])throw s[0];return s[1]}function mask(o,e){const s=validate(o,e,{coerce:!0,mask:!0});if(s[0])throw s[0];return s[1]}function is(o,e){return!validate(o,e)[0]}function validate(o,e,s){s===void 0&&(s={});const a=run(o,e,s),c=shiftIterator(a);return c[0]?[new StructError(c[0],function*(){for(const h of a)h[0]&&(yield h[0])}),void 0]:[void 0,c[1]]}function define(o,e){return new Struct({type:o,schema:null,validator:e})}function any(){return define("any",()=>!0)}function array(o){return new Struct({type:"array",schema:o,*entries(e){if(o&&Array.isArray(e))for(const[s,a]of e.entries())yield[s,a,o]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||"Expected an array value, but received: "+print(e)}})}function boolean(){return define("boolean",o=>typeof o=="boolean")}function literal(o){const e=print(o);return new Struct({type:"literal",schema:o,validator(s){return s===o||"Expected the literal `"+e+"`, but received: "+print(s)}})}function nullable(o){return new Struct({...o,validator:(e,s)=>e===null||o.validator(e,s),refiner:(e,s)=>e===null||o.refiner(e,s)})}function number(){return define("number",o=>typeof o=="number"&&!isNaN(o)||"Expected a number, but received: "+print(o))}function optional(o){return new Struct({...o,validator:(e,s)=>e===void 0||o.validator(e,s),refiner:(e,s)=>e===void 0||o.refiner(e,s)})}function string(){return define("string",o=>typeof o=="string"||"Expected a string, but received: "+print(o))}function type(o){const e=Object.keys(o);return new Struct({type:"type",schema:o,*entries(s){if(isObject(s))for(const a of e)yield[a,s[a],o[a]]},validator(s){return isObject(s)||"Expected an object, but received: "+print(s)}})}function union$1(o){const e=o.map(s=>s.type).join(" | ");return new Struct({type:"union",schema:null,coercer(s,a){return(o.find(d=>{const[h]=d.validate(s,{coerce:!0});return!h})||unknown()).coercer(s,a)},validator(s,a){const c=[];for(const d of o){const[...h]=run(s,d,a),[_]=h;if(_[0])for(const[b]of h)b&&c.push(b);else return[]}return["Expected the value to satisfy a union of `"+e+"`, but received: "+print(s),...c]}})}function unknown(){return define("unknown",()=>!0)}function coerce(o,e,s){return new Struct({...o,coercer:(a,c)=>is(a,e)?o.coercer(s(a,c),c):o.coercer(a,c)})}function jsonRpcResult(o){return coerce(createRpcResult(o),UnknownRpcResult,e=>"error"in e?e:{...e,result:create(e.result,o)})}const UnknownRpcResult=createRpcResult(unknown());function createRpcResult(o){return union$1([type({jsonrpc:literal("2.0"),id:string(),result:o}),type({jsonrpc:literal("2.0"),id:string(),error:type({code:unknown(),message:string(),data:optional(any())})})])}function jsonRpcResultAndContext(o){return jsonRpcResult(type({context:type({slot:number()}),value:o}))}jsonRpcResultAndContext(type({err:nullable(union$1([type({}),string()])),logs:nullable(array(string())),accounts:optional(nullable(array(nullable(type({executable:boolean(),owner:string(),lamports:number(),data:array(string()),rentEpoch:optional(number())}))))),unitsConsumed:optional(number())}));var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};class Layout{constructor(e,s){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=s}makeDestinationObject(){return{}}decode(e,s){throw new Error("Layout is abstract")}encode(e,s,a){throw new Error("Layout is abstract")}getSpan(e,s){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const s=Object.create(this.constructor.prototype);return Object.assign(s,this),s.property=e,s}fromArray(e){}}var Layout_2=Layout;function nameWithProperty(o,e){return e.property?o+"["+e.property+"]":o}class ExternalLayout extends Layout{isCount(){throw new Error("ExternalLayout is abstract")}}class OffsetLayout extends ExternalLayout{constructor(e,s,a){if(!(e instanceof Layout))throw new TypeError("layout must be a Layout");if(s===void 0)s=0;else if(!Number.isInteger(s))throw new TypeError("offset must be integer or undefined");super(e.span,a||e.property),this.layout=e,this.offset=s}isCount(){return this.layout instanceof UInt||this.layout instanceof UIntBE}decode(e,s){return s===void 0&&(s=0),this.layout.decode(e,s+this.offset)}encode(e,s,a){return a===void 0&&(a=0),this.layout.encode(e,s,a+this.offset)}}class UInt extends Layout{constructor(e,s){if(super(e,s),6d&&h instanceof Layout,!0)))throw new TypeError("fields must be array of Layout instances");typeof s=="boolean"&&a===void 0&&(a=s,s=void 0);for(const d of e)if(0>d.span&&d.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let c=-1;try{c=e.reduce((d,h)=>d+h.getSpan(),0)}catch{}super(c,s),this.fields=e,this.decodePrefixes=!!a}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;try{a=this.fields.reduce((c,d)=>{const h=d.getSpan(e,s);return s+=h,c+h},0)}catch{throw new RangeError("indeterminate span")}return a}decode(e,s){s===void 0&&(s=0);const a=this.makeDestinationObject();for(const c of this.fields)if(c.property!==void 0&&(a[c.property]=c.decode(e,s)),s+=c.getSpan(e,s),this.decodePrefixes&&e.length===s)break;return a}encode(e,s,a){a===void 0&&(a=0);const c=a;let d=0,h=0;for(const _ of this.fields){let b=_.span;if(h=0b&&(b=_.getSpan(s,a)))}d=a,a+=b}return d+h-c}fromArray(e){const s=this.makeDestinationObject();for(const a of this.fields)a.property!==void 0&&0a.span?s=-1:0<=s&&(s+=a.span)}}}class UnionDiscriminator{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class UnionLayoutDiscriminator extends UnionDiscriminator{constructor(e,s){if(!(e instanceof ExternalLayout&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(s||e.property||"variant"),this.layout=e}decode(e,s){return this.layout.decode(e,s)}encode(e,s,a){return this.layout.encode(e,s,a)}}class Union extends Layout{constructor(e,s,a){const c=e instanceof UInt||e instanceof UIntBE;if(c)e=new UnionLayoutDiscriminator(new OffsetLayout(e));else if(e instanceof ExternalLayout&&e.isCount())e=new UnionLayoutDiscriminator(e);else if(!(e instanceof UnionDiscriminator))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(s===void 0&&(s=null),!(s===null||s instanceof Layout))throw new TypeError("defaultLayout must be null or a Layout");if(s!==null){if(0>s.span)throw new Error("defaultLayout must have constant span");s.property===void 0&&(s=s.replicate("content"))}let d=-1;s&&(d=s.span,0<=d&&c&&(d+=e.layout.span)),super(d,a),this.discriminator=e,this.usesPrefixDiscriminator=c,this.defaultLayout=s,this.registry={};let h=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(_){return h(_)},this.configGetSourceVariant=function(_){h=_.bind(this)}}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);const a=this.getVariant(e,s);if(!a)throw new Error("unable to determine span for unrecognized variant");return a.getSpan(e,s)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const s=this.registry[e[this.discriminator.property]];if(s&&(!s.layout||e.hasOwnProperty(s.property)))return s}else for(const s in this.registry){const a=this.registry[s];if(e.hasOwnProperty(a.property))return a}throw new Error("unable to infer src variant")}decode(e,s){s===void 0&&(s=0);let a;const c=this.discriminator,d=c.decode(e,s);let h=this.registry[d];if(h===void 0){let _=0;h=this.defaultLayout,this.usesPrefixDiscriminator&&(_=c.layout.span),a=this.makeDestinationObject(),a[c.property]=d,a[h.property]=this.defaultLayout.decode(e,s+_)}else a=h.decode(e,s);return a}encode(e,s,a){a===void 0&&(a=0);const c=this.getSourceVariant(e);if(c===void 0){const d=this.discriminator,h=this.defaultLayout;let _=0;return this.usesPrefixDiscriminator&&(_=d.layout.span),d.encode(e[d.property],s,a),_+h.encode(e[h.property],s,a+_)}return c.encode(e,s,a)}addVariant(e,s,a){const c=new VariantLayout(this,e,s,a);return this.registry[e]=c,c}getVariant(e,s){let a=e;return Buffer.isBuffer(e)&&(s===void 0&&(s=0),a=this.discriminator.decode(e,s)),this.registry[a]}}class VariantLayout extends Layout{constructor(e,s,a,c){if(!(e instanceof Union))throw new TypeError("union must be a Union");if(!Number.isInteger(s)||0>s)throw new TypeError("variant must be a (non-negative) integer");if(typeof a=="string"&&c===void 0&&(c=a,a=null),a){if(!(a instanceof Layout))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=a.span&&a.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof c!="string")throw new TypeError("variant must have a String property")}let d=e.span;0>e.span&&(d=a?a.span:0,0<=d&&e.usesPrefixDiscriminator&&(d+=e.discriminator.layout.span)),super(d,c),this.union=e,this.variant=s,this.layout=a||null}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;return this.union.usesPrefixDiscriminator&&(a=this.union.discriminator.layout.span),a+this.layout.getSpan(e,s+a)}decode(e,s){const a=this.makeDestinationObject();if(s===void 0&&(s=0),this!==this.union.getVariant(e,s))throw new Error("variant mismatch");let c=0;return this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout?a[this.property]=this.layout.decode(e,s+c):this.property?a[this.property]=!0:this.union.usesPrefixDiscriminator&&(a[this.union.discriminator.property]=this.variant),a}encode(e,s,a){a===void 0&&(a=0);let c=0;if(this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,s,a);let d=c;if(this.layout&&(this.layout.encode(e[this.property],s,a+c),d+=this.layout.getSpan(s,a+c),0<=this.union.span&&d>this.union.span))throw new Error("encoded variant overruns containing union");return d}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}class Blob$1 extends Layout{constructor(e,s){if(!(e instanceof ExternalLayout&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let a=-1;e instanceof ExternalLayout||(a=e),super(a,s),this.length=e}getSpan(e,s){let a=this.span;return 0>a&&(a=this.length.decode(e,s)),a}decode(e,s){s===void 0&&(s=0);let a=this.span;return 0>a&&(a=this.length.decode(e,s)),e.slice(s,s+a)}encode(e,s,a){let c=this.length;if(this.length instanceof ExternalLayout&&(c=e.length),!(Buffer.isBuffer(e)&&c===e.length))throw new TypeError(nameWithProperty("Blob.encode",this)+" requires (length "+c+") Buffer as src");if(a+c>s.length)throw new RangeError("encoding overruns Buffer");return s.write(e.toString("hex"),a,c,"hex"),this.length instanceof ExternalLayout&&this.length.encode(c,s,a),c}}var offset=(o,e,s)=>new OffsetLayout(o,e,s),u8=o=>new UInt(1,o),u32=o=>new UInt(4,o),nu64=o=>new NearUInt64(o),ns64=o=>new NearInt64(o),struct=(o,e,s)=>new Structure(o,e,s),union=(o,e,s)=>new Union(o,e,s),blob=(o,e)=>new Blob$1(o,e);class RustStringLayout extends Layout_2{constructor(e){super(-1,e),this.property=e,this.layout=struct([u32("length"),u32("lengthPadding"),blob(offset(u32(),-8),"chars")],this.property)}encode(e,s,a=0){if(e==null)return this.layout.span;const c={chars:Buffer.from(e,"utf8")};return this.layout.encode(c,s,a)}decode(e,s=0){return this.layout.decode(e,s).chars.toString()}getSpan(e,s=0){return u32().span+u32().span+new BN(new Uint8Array(e).slice(s,s+4),10,"le").toNumber()}}function rustStringLayout(o){return new RustStringLayout(o)}function publicKey$2(o){return blob(32,o)}const LAYOUT=union(u32("instruction"));LAYOUT.addVariant(0,struct([ns64("lamports"),ns64("space"),publicKey$2("owner")]),"createAccount");LAYOUT.addVariant(1,struct([publicKey$2("owner")]),"assign");LAYOUT.addVariant(2,struct([ns64("lamports")]),"transfer");LAYOUT.addVariant(3,struct([publicKey$2("base"),rustStringLayout("seed"),ns64("lamports"),ns64("space"),publicKey$2("owner")]),"createAccountWithSeed");LAYOUT.addVariant(4,struct([publicKey$2("authorized")]),"advanceNonceAccount");LAYOUT.addVariant(5,struct([ns64("lamports")]),"withdrawNonceAccount");LAYOUT.addVariant(6,struct([publicKey$2("authorized")]),"initializeNonceAccount");LAYOUT.addVariant(7,struct([publicKey$2("authorized")]),"authorizeNonceAccount");LAYOUT.addVariant(8,struct([ns64("space")]),"allocate");LAYOUT.addVariant(9,struct([publicKey$2("base"),rustStringLayout("seed"),ns64("space"),publicKey$2("owner")]),"allocateWithSeed");LAYOUT.addVariant(10,struct([publicKey$2("base"),rustStringLayout("seed"),publicKey$2("owner")]),"assignWithSeed");LAYOUT.addVariant(11,struct([ns64("lamports"),rustStringLayout("seed"),publicKey$2("owner")]),"transferWithSeed");Math.max(...Object.values(LAYOUT.registry).map(o=>o.span));class WrappedLayout$1 extends Layout_2{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}}function publicKey$1(o){return new WrappedLayout$1(blob(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}struct([u32("version"),u32("state"),publicKey$1("authorizedPubkey"),publicKey$1("nonce"),struct([nu64("lamportsPerSignature")],"feeCalculator")]);const TOKEN_PROGRAM_ID$1=new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),ASSOCIATED_PROGRAM_ID=new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");var browserPonyfill={exports:{}};(function(o,e){var s=typeof self<"u"?self:commonjsGlobal,a=function(){function d(){this.fetch=!1,this.DOMException=s.DOMException}return d.prototype=s,new d}();(function(d){(function(h){var _={searchParams:"URLSearchParams"in d,iterable:"Symbol"in d&&"iterator"in Symbol,blob:"FileReader"in d&&"Blob"in d&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in d,arrayBuffer:"ArrayBuffer"in d};function b(j){return j&&DataView.prototype.isPrototypeOf(j)}if(_.arrayBuffer)var $=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],_e=ArrayBuffer.isView||function(j){return j&&$.indexOf(Object.prototype.toString.call(j))>-1};function nt(j){if(typeof j!="string"&&(j=String(j)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(j))throw new TypeError("Invalid character in header field name");return j.toLowerCase()}function rt(j){return typeof j!="string"&&(j=String(j)),j}function tt(j){var et={next:function(){var at=j.shift();return{done:at===void 0,value:at}}};return _.iterable&&(et[Symbol.iterator]=function(){return et}),et}function ct(j){this.map={},j instanceof ct?j.forEach(function(et,at){this.append(at,et)},this):Array.isArray(j)?j.forEach(function(et){this.append(et[0],et[1])},this):j&&Object.getOwnPropertyNames(j).forEach(function(et){this.append(et,j[et])},this)}ct.prototype.append=function(j,et){j=nt(j),et=rt(et);var at=this.map[j];this.map[j]=at?at+", "+et:et},ct.prototype.delete=function(j){delete this.map[nt(j)]},ct.prototype.get=function(j){return j=nt(j),this.has(j)?this.map[j]:null},ct.prototype.has=function(j){return this.map.hasOwnProperty(nt(j))},ct.prototype.set=function(j,et){this.map[nt(j)]=rt(et)},ct.prototype.forEach=function(j,et){for(var at in this.map)this.map.hasOwnProperty(at)&&j.call(et,this.map[at],at,this)},ct.prototype.keys=function(){var j=[];return this.forEach(function(et,at){j.push(at)}),tt(j)},ct.prototype.values=function(){var j=[];return this.forEach(function(et){j.push(et)}),tt(j)},ct.prototype.entries=function(){var j=[];return this.forEach(function(et,at){j.push([at,et])}),tt(j)},_.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function ht(j){if(j.bodyUsed)return Promise.reject(new TypeError("Already read"));j.bodyUsed=!0}function dt(j){return new Promise(function(et,at){j.onload=function(){et(j.result)},j.onerror=function(){at(j.error)}})}function lt(j){var et=new FileReader,at=dt(et);return et.readAsArrayBuffer(j),at}function st(j){var et=new FileReader,at=dt(et);return et.readAsText(j),at}function it(j){for(var et=new Uint8Array(j),at=new Array(et.length),pt=0;pt-1?et:j}function It(j,et){et=et||{};var at=et.body;if(j instanceof It){if(j.bodyUsed)throw new TypeError("Already read");this.url=j.url,this.credentials=j.credentials,et.headers||(this.headers=new ct(j.headers)),this.method=j.method,this.mode=j.mode,this.signal=j.signal,!at&&j._bodyInit!=null&&(at=j._bodyInit,j.bodyUsed=!0)}else this.url=String(j);if(this.credentials=et.credentials||this.credentials||"same-origin",(et.headers||!this.headers)&&(this.headers=new ct(et.headers)),this.method=At(et.method||this.method||"GET"),this.mode=et.mode||this.mode||null,this.signal=et.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&at)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(at)}It.prototype.clone=function(){return new It(this,{body:this._bodyInit})};function kt(j){var et=new FormData;return j.trim().split("&").forEach(function(at){if(at){var pt=at.split("="),gt=pt.shift().replace(/\+/g," "),mt=pt.join("=").replace(/\+/g," ");et.append(decodeURIComponent(gt),decodeURIComponent(mt))}}),et}function xt(j){var et=new ct,at=j.replace(/\r?\n[\t ]+/g," ");return at.split(/\r?\n/).forEach(function(pt){var gt=pt.split(":"),mt=gt.shift().trim();if(mt){var wt=gt.join(":").trim();et.append(mt,wt)}}),et}St.call(It.prototype);function $t(j,et){et||(et={}),this.type="default",this.status=et.status===void 0?200:et.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in et?et.statusText:"OK",this.headers=new ct(et.headers),this.url=et.url||"",this._initBody(j)}St.call($t.prototype),$t.prototype.clone=function(){return new $t(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},$t.error=function(){var j=new $t(null,{status:0,statusText:""});return j.type="error",j};var Ot=[301,302,303,307,308];$t.redirect=function(j,et){if(Ot.indexOf(et)===-1)throw new RangeError("Invalid status code");return new $t(null,{status:et,headers:{location:j}})},h.DOMException=d.DOMException;try{new h.DOMException}catch{h.DOMException=function(et,at){this.message=et,this.name=at;var pt=Error(et);this.stack=pt.stack},h.DOMException.prototype=Object.create(Error.prototype),h.DOMException.prototype.constructor=h.DOMException}function yt(j,et){return new Promise(function(at,pt){var gt=new It(j,et);if(gt.signal&>.signal.aborted)return pt(new h.DOMException("Aborted","AbortError"));var mt=new XMLHttpRequest;function wt(){mt.abort()}mt.onload=function(){var Et={status:mt.status,statusText:mt.statusText,headers:xt(mt.getAllResponseHeaders()||"")};Et.url="responseURL"in mt?mt.responseURL:Et.headers.get("X-Request-URL");var ot="response"in mt?mt.response:mt.responseText;at(new $t(ot,Et))},mt.onerror=function(){pt(new TypeError("Network request failed"))},mt.ontimeout=function(){pt(new TypeError("Network request failed"))},mt.onabort=function(){pt(new h.DOMException("Aborted","AbortError"))},mt.open(gt.method,gt.url,!0),gt.credentials==="include"?mt.withCredentials=!0:gt.credentials==="omit"&&(mt.withCredentials=!1),"responseType"in mt&&_.blob&&(mt.responseType="blob"),gt.headers.forEach(function(Et,ot){mt.setRequestHeader(ot,Et)}),gt.signal&&(gt.signal.addEventListener("abort",wt),mt.onreadystatechange=function(){mt.readyState===4&>.signal.removeEventListener("abort",wt)}),mt.send(typeof gt._bodyInit>"u"?null:gt._bodyInit)})}return yt.polyfill=!0,d.fetch||(d.fetch=yt,d.Headers=ct,d.Request=It,d.Response=$t),h.Headers=ct,h.Request=It,h.Response=$t,h.fetch=yt,Object.defineProperty(h,"__esModule",{value:!0}),h})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var c=a;e=c.fetch,e.default=c.fetch,e.fetch=c.fetch,e.Headers=c.Headers,e.Request=c.Request,e.Response=c.Response,o.exports=e})(browserPonyfill,browserPonyfill.exports);dist.rustEnum([dist.struct([],"uninitialized"),dist.struct([dist.option(dist.publicKey(),"authorityAddress")],"buffer"),dist.struct([dist.publicKey("programdataAddress")],"program"),dist.struct([dist.u64("slot"),dist.option(dist.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,dist.u32());dist.struct([dist.publicKey("authority"),dist.vecU8("data")]);function uint64(o){return new WrappedLayout(blob(8),e=>u64$1.fromBuffer(e),e=>e.toBuffer(),o)}function publicKey$3(o){return new WrappedLayout(blob(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}function coption(o,e){return new COptionLayout(o,e)}class WrappedLayout extends Layout_2{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}}class COptionLayout extends Layout_2{constructor(e,s){super(-1,s),this.layout=e,this.discriminator=u32()}encode(e,s,a=0){return e==null?this.layout.span+this.discriminator.encode(0,s,a):(this.discriminator.encode(1,s,a),this.layout.encode(e,s,a+4)+4)}decode(e,s=0){const a=this.discriminator.decode(e,s);if(a===0)return null;if(a===1)return this.layout.decode(e,s+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(e,s=0){return this.layout.getSpan(e,s+4)+4}}let u64$1=class sr extends BN{toBuffer(){const e=super.toArray().reverse(),s=Buffer.from(e);if(s.length===8)return s;if(s.length>=8)throw new Error("u64 too large");const a=Buffer.alloc(8);return s.copy(a),a}static fromBuffer(e){if(e.length!==8)throw new Error(`Invalid buffer length: ${e.length}`);return new sr([...e].reverse().map(s=>`00${s.toString(16)}`.slice(-2)).join(""),16)}};struct([publicKey$3("mint"),publicKey$3("owner"),uint64("amount"),coption(publicKey$3(),"delegate"),(o=>{const e=union(u8("discriminator"),null,o);return e.addVariant(0,struct([]),"uninitialized"),e.addVariant(1,struct([]),"initialized"),e.addVariant(2,struct([]),"frozen"),e})("state"),coption(uint64(),"isNative"),uint64("delegatedAmount"),coption(publicKey$3(),"closeAuthority")]);SystemProgram.programId;new PublicKey("11111111111111111111111111111111");const TOKEN_PROGRAM_ID=new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const ASSOCIATED_TOKEN_PROGRAM_ID=new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new PublicKey("So11111111111111111111111111111111111111112");new PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");const encodeDecode=o=>{const e=o.decode.bind(o),s=o.encode.bind(o);return{decode:e,encode:s}},bigInt=o=>e=>{const s=blob$2(o,e),{encode:a,decode:c}=encodeDecode(s),d=s;return d.decode=(h,_)=>{const b=c(h,_);return toBigIntLE_1(Buffer.from(b))},d.encode=(h,_,b)=>{const $=toBufferLE_1(h,o);return a($,_,b)},d},u64=bigInt(8),bool=o=>{const e=u8$2(o),{encode:s,decode:a}=encodeDecode(e),c=e;return c.decode=(d,h)=>!!a(d,h),c.encode=(d,h,_)=>{const b=Number(d);return s(b,h,_)},c},publicKey=o=>{const e=blob$2(32,o),{encode:s,decode:a}=encodeDecode(e),c=e;return c.decode=(d,h)=>{const _=a(d,h);return new PublicKey(_)},c.encode=(d,h,_)=>{const b=d.toBuffer();return s(b,h,_)},c};class TokenError extends Error{constructor(e){super(e)}}class TokenAccountNotFoundError extends TokenError{constructor(){super(...arguments),this.name="TokenAccountNotFoundError"}}class TokenInvalidAccountError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidAccountError"}}class TokenInvalidAccountOwnerError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidAccountOwnerError"}}class TokenInvalidAccountSizeError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidAccountSizeError"}}class TokenInvalidMintError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidMintError"}}class TokenOwnerOffCurveError extends TokenError{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}var AccountType;(function(o){o[o.Uninitialized=0]="Uninitialized",o[o.Mint=1]="Mint",o[o.Account=2]="Account"})(AccountType||(AccountType={}));const ACCOUNT_TYPE_SIZE=1,MultisigLayout=struct$2([u8$2("m"),u8$2("n"),bool("isInitialized"),publicKey("signer1"),publicKey("signer2"),publicKey("signer3"),publicKey("signer4"),publicKey("signer5"),publicKey("signer6"),publicKey("signer7"),publicKey("signer8"),publicKey("signer9"),publicKey("signer10"),publicKey("signer11")]),MULTISIG_SIZE=MultisigLayout.span;var AccountState;(function(o){o[o.Uninitialized=0]="Uninitialized",o[o.Initialized=1]="Initialized",o[o.Frozen=2]="Frozen"})(AccountState||(AccountState={}));const AccountLayout=struct$2([publicKey("mint"),publicKey("owner"),u64("amount"),u32$2("delegateOption"),publicKey("delegate"),u8$2("state"),u32$2("isNativeOption"),u64("isNative"),u64("delegatedAmount"),u32$2("closeAuthorityOption"),publicKey("closeAuthority")]),ACCOUNT_SIZE=AccountLayout.span;async function getAccount(o,e,s,a=TOKEN_PROGRAM_ID){const c=await o.getAccountInfo(e,s);return unpackAccount(e,c,a)}function unpackAccount(o,e,s=TOKEN_PROGRAM_ID){if(!e)throw new TokenAccountNotFoundError;if(!e.owner.equals(s))throw new TokenInvalidAccountOwnerError;if(e.data.lengthACCOUNT_SIZE){if(e.data.length===MULTISIG_SIZE)throw new TokenInvalidAccountSizeError;if(e.data[ACCOUNT_SIZE]!=AccountType.Account)throw new TokenInvalidAccountError;c=e.data.slice(ACCOUNT_SIZE+ACCOUNT_TYPE_SIZE)}return{address:o,mint:a.mint,owner:a.owner,amount:a.amount,delegate:a.delegateOption?a.delegate:null,delegatedAmount:a.delegatedAmount,isInitialized:a.state!==AccountState.Uninitialized,isFrozen:a.state===AccountState.Frozen,isNative:!!a.isNativeOption,rentExemptReserve:a.isNativeOption?a.isNative:null,closeAuthority:a.closeAuthorityOption?a.closeAuthority:null,tlvData:c}}const MintLayout=struct$2([u32$2("mintAuthorityOption"),publicKey("mintAuthority"),u64("supply"),u8$2("decimals"),bool("isInitialized"),u32$2("freezeAuthorityOption"),publicKey("freezeAuthority")]),MINT_SIZE=MintLayout.span;async function getMint(o,e,s,a=TOKEN_PROGRAM_ID){const c=await o.getAccountInfo(e,s);return unpackMint(e,c,a)}function unpackMint(o,e,s=TOKEN_PROGRAM_ID){if(!e)throw new TokenAccountNotFoundError;if(!e.owner.equals(s))throw new TokenInvalidAccountOwnerError;if(e.data.lengthMINT_SIZE){if(e.data.length<=ACCOUNT_SIZE)throw new TokenInvalidAccountSizeError;if(e.data.length===MULTISIG_SIZE)throw new TokenInvalidAccountSizeError;if(e.data[ACCOUNT_SIZE]!=AccountType.Mint)throw new TokenInvalidMintError;c=e.data.slice(ACCOUNT_SIZE+ACCOUNT_TYPE_SIZE)}return{address:o,mintAuthority:a.mintAuthorityOption?a.mintAuthority:null,supply:a.supply,decimals:a.decimals,isInitialized:a.isInitialized,freezeAuthority:a.freezeAuthorityOption?a.freezeAuthority:null,tlvData:c}}async function getAssociatedTokenAddress(o,e,s=!1,a=TOKEN_PROGRAM_ID,c=ASSOCIATED_TOKEN_PROGRAM_ID){if(!s&&!PublicKey.isOnCurve(e.toBuffer()))throw new TokenOwnerOffCurveError;const[d]=await PublicKey.findProgramAddress([e.toBuffer(),a.toBuffer(),o.toBuffer()],c);return d}function getAssociatedTokenAddressSync(o,e,s=!1,a=TOKEN_PROGRAM_ID,c=ASSOCIATED_TOKEN_PROGRAM_ID){if(!s&&!PublicKey.isOnCurve(e.toBuffer()))throw new TokenOwnerOffCurveError;const[d]=PublicKey.findProgramAddressSync([e.toBuffer(),a.toBuffer(),o.toBuffer()],c);return d}var or;const BASE_RATE=(or=fallIdl.constants.find(o=>o.name==="BASE_RATE"))==null?void 0:or.value,AUTHORITY_SEED="a",LIQUIDITY_SEED="b",LENDING_AUTHORITY_SEED="d",LENDING_TOKEN_SEED="e",BORROW_TOKEN_SEED="f",BORROWER_AUTHORITY_SEED="g",COLLATERAL_TOKEN_SEED="h",LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED="i",BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED="j";async function createPool(o,e,s,a,c,d){try{console.log("Step 1: Creating provider");const h=new AnchorProvider(e,o,{commitment:"confirmed",preflightCommitment:"confirmed"}),_=new Program(fallIdl,h),[b]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),c.toBuffer()],_.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(AUTHORITY_SEED)],_.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(LIQUIDITY_SEED)],_.programId),nt=await index.token.associatedAddress({mint:a,owner:$}),rt=await index.token.associatedAddress({mint:c,owner:$}),[tt]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],_.programId),[ct]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],_.programId),[ht]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],_.programId),[dt]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],_.programId),lt=await index.token.associatedAddress({mint:a,owner:tt}),st=await index.token.associatedAddress({mint:c,owner:tt}),[it]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],_.programId),[_t]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],_.programId),St=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});console.log("Step 1: Creating pool...");let vt="";await accountExists$1(e,b)?console.log("Pool already exists, skipping..."):(vt=await _.methods.createPool(d).accounts({amm:s,mintA:a,mintB:c,pool:b,poolAuthority:$,mintLiquidity:_e,poolAccountA:nt,poolAccountB:rt,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([St]).rpc({commitment:"confirmed"}),await e.confirmTransaction(vt,"confirmed"),console.log("Transaction signature:",vt)),console.log("Step 2: Initializing lending pool...");let At="";await accountExists$1(e,lt)?console.log("Lending pool 1 already initialized, skipping..."):(At=await _.methods.initLendingPool1().accounts({pool:b,mintA:a,mintB:c,lendingPoolAuthority:tt,lendingPoolTokenA:lt,lendingPoolTokenB:st,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).rpc(),await e.confirmTransaction(At,"confirmed")),console.log("Step 3: Initializing lending pool...");let It="";await accountExists$1(e,ct)?console.log("Lending pool 2 already initialized, skipping..."):(It=await _.methods.initLendingPool2().accounts({pool:b,lendingPoolAuthority:tt,lendingReceiptTokenMint:ct,borrowReceiptTokenMint:ht,collateralReceiptTokenMint:dt,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).rpc(),await e.confirmTransaction(It,"confirmed")),console.log("Step 4: Initializing lending pool...");let kt="";return await accountExists$1(e,it)?console.log("Lending pool 3 already initialized, skipping..."):(kt=await _.methods.initLendingPool3().accounts({pool:b,lendingPoolAuthority:tt,lenderLendingBlockHeightMint:it,borrowerBorrowBlockHeightMint:_t,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).rpc(),await e.confirmTransaction(kt,"confirmed")),{tx:vt,initTx1:At,initTx2:It,initTx3:kt}}catch(h){console.error("Error",h)}return{tx:"",initTx1:"",initTx2:"",initTx3:""}}async function accountExists$1(o,e){return await o.getAccountInfo(e)!==null}const PoolCreateForm=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),{amm:s}=useAmm(),[a,c]=reactExports.useState(""),[d,h]=reactExports.useState(!1),[_,b]=reactExports.useState(""),[$,_e]=reactExports.useState({mintA:"",mintB:"",fee:"500"}),nt=async rt=>{if(rt.preventDefault(),c(""),b(""),h(!0),!o){c("Please connect your wallet first"),h(!1);return}if(!s){c("Please select an AMM first"),h(!1);return}try{const tt=new PublicKey(s.pubkey),ct=new PublicKey($.mintA),ht=new PublicKey($.mintB),dt=await createPool(o,e,tt,ct,ht,Number($.fee));console.log(`Transaction URL: https://explorer.solana.com/tx/${dt}`),b(dt.toString()),_e({mintA:"",mintB:"",fee:"500"})}catch(tt){console.error("Error creating pool:",tt),c(tt instanceof Error?tt.message:"Failed to create pool")}finally{h(!1)}};return jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("div",{className:"create-amm-container",children:[jsxRuntimeExports.jsx("h2",{children:"Create Pool"}),a&&jsxRuntimeExports.jsx("div",{className:"error-message",children:a}),_&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Pool created successfully!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${_}`,target:"_blank",rel:"noopener noreferrer",children:"View transaction"})]}),jsxRuntimeExports.jsxs("form",{onSubmit:nt,className:"form",children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"AMM Pubkey:"}),jsxRuntimeExports.jsx("input",{type:"text",value:s?s.pubkey:"",readOnly:!0,disabled:!0})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Token A Mint Address:"}),jsxRuntimeExports.jsx("input",{type:"text",value:$.mintA,onChange:rt=>_e({...$,mintA:rt.target.value}),placeholder:"Enter token A mint address",required:!0,disabled:d})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Token B Mint Address:"}),jsxRuntimeExports.jsx("input",{type:"text",value:$.mintB,onChange:rt=>_e({...$,mintB:rt.target.value}),placeholder:"Enter token B mint address",required:!0,disabled:d})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Fee (in basis points, 1-10000, default: 500 or 5%):"}),jsxRuntimeExports.jsx("input",{type:"text",value:$.fee,onChange:rt=>_e({...$,fee:rt.target.value}),placeholder:"500",required:!0,disabled:d})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:d||!o,children:d?"Creating...":"Create Pool"})]})]})})};async function getPoolList(o,e){try{const s=new AnchorProvider(e,o,{preflightCommitment:"confirmed"});return(await new Program(fallIdl,s).account.pool.all()).map(d=>({pubkey:d.publicKey.toString(),amm:d.account.amm.toString(),mintA:d.account.mintA.toString(),mintB:d.account.mintB.toString(),fee:d.account.fee.toString(),minCollateralRatio:d.account.minCollateralRatio.toString(),tokenAAmount:d.account.tokenAAmount.toString(),tokenBAmount:d.account.tokenBAmount.toString()}))}catch(s){throw console.error("Error fetching pool accounts:",s),s}}async function getPoolDetail(o,e,s){try{const a=new PublicKey(e.pubkey),c=new PublicKey(e.mintA),d=new PublicKey(e.mintB),[h]=PublicKey.findProgramAddressSync([new PublicKey(e.amm).toBuffer(),new PublicKey(e.mintA).toBuffer(),new PublicKey(e.mintB).toBuffer(),Buffer.from(AUTHORITY_SEED)],new PublicKey(fallIdl.address)),_=await getAssociatedTokenAddress(new PublicKey(e.mintA),h,!0),b=await getAssociatedTokenAddress(new PublicKey(e.mintB),h,!0),[$]=PublicKey.findProgramAddressSync([a.toBuffer(),s.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],new PublicKey(fallIdl.address)),_e=await getAccount(o,_),nt=await getAccount(o,b),rt=Number(_e.amount),tt=Number(nt.amount),ct=tt/rt,ht=rt/tt,[dt]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],new PublicKey(fallIdl.address)),[lt]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],new PublicKey(fallIdl.address)),[st]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],new PublicKey(fallIdl.address)),[it]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],new PublicKey(fallIdl.address)),_t=await getAssociatedTokenAddress(c,dt,!0),St=await getAssociatedTokenAddress(d,dt,!0),vt=await getAccount(o,_t),At=await getAccount(o,St),It=await getMint(o,lt),kt=await getMint(o,st),xt=await getMint(o,it);console.log("walletPublicKey",s);const $t=await getAssociatedTokenAddressSync(c,s,!0),Ot=await getAssociatedTokenAddress(d,s,!0),yt=await getAccount(o,$t),j=await getAccount(o,Ot),et=await getUserTokenAmount$1(o,$,lt),at=await getUserTokenAmount$1(o,$,st),pt=await getUserTokenAmount$1(o,$,it);return{pool:{aToB:ct,bToA:ht,tokenAAmount:rt,tokenBAmount:tt},lendingPool:{tokenAAmount:Number(vt.amount),tokenBAmount:Number(At.amount),lendingReceiptSupply:Number(It.supply),borrowReceiptSupply:Number(kt.supply),collateralReceiptSupply:Number(xt.supply),addresses:{lendingReceipt:lt.toString(),borrowReceipt:st.toString(),collateralReceipt:it.toString()}},userAssets:{tokenAAmount:yt.amount.toString(),tokenBAmount:j.amount.toString(),lendingReceiptAmount:et.toString(),borrowReceiptAmount:at.toString(),collateralReceiptAmount:pt.toString()}}}catch(a){throw console.error("Error getting lending pool details:",a),a}}async function getUserTokenAmount$1(o,e,s){try{const a=await getAssociatedTokenAddress(s,e,!0),c=await getAccount(o,a);return Number(c.amount)}catch(a){return console.log("getUserTokenAmount",a),0}}async function swap(o,e,s,a,c,d,h,_,b){try{const $=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),_e=new Program(fallIdl,$),[nt]=PublicKey.findProgramAddressSync([a.toBuffer(),c.toBuffer(),d.toBuffer(),Buffer.from(AUTHORITY_SEED)],_e.programId),rt=await getAssociatedTokenAddress(c,nt,!0),tt=await getAssociatedTokenAddress(d,nt,!0),ct=await getAssociatedTokenAddress(c,o.publicKey,!0),ht=await getAssociatedTokenAddress(d,o.publicKey,!0);return await _e.methods.swapExactTokensForTokens(h,new bnExports.BN(_),new bnExports.BN(b)).accounts({amm:a,pool:s,poolAuthority:nt,trader:o.publicKey,mintA:c,mintB:d,poolAccountA:rt,poolAccountB:tt,traderAccountA:ct,traderAccountB:ht,payer:o.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc()}catch($){throw console.error("Error in swap:",$),$}}const SwapForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(!0),[_e,nt]=reactExports.useState({inputAmount:"",minOutputAmount:""}),rt=async tt=>{tt.preventDefault(),_(""),d(!0);try{const ct=parseFloat(_e.inputAmount),ht=parseFloat(_e.minOutputAmount),dt=await swap(s,a,new PublicKey(o.pubkey),new PublicKey(o.amm),new PublicKey(o.mintA),new PublicKey(o.mintB),b,ct,ht);e(dt),nt({inputAmount:"",minOutputAmount:""})}catch(ct){console.error("Error in swap:",ct),_(ct instanceof Error?ct.message:"Failed to swap")}finally{d(!1)}};return jsxRuntimeExports.jsxs("form",{onSubmit:rt,className:"swap-form",children:[h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),jsxRuntimeExports.jsx("div",{className:"form-group",children:jsxRuntimeExports.jsxs("div",{className:"swap-direction",children:[jsxRuntimeExports.jsx("button",{type:"button",className:`direction-button ${b?"active":""}`,onClick:()=>$(!0),children:"A → B"}),jsxRuntimeExports.jsx("button",{type:"button",className:`direction-button ${b?"":"active"}`,onClick:()=>$(!1),children:"B → A"})]})}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Input Amount:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:_e.inputAmount,onChange:tt=>nt({..._e,inputAmount:tt.target.value}),placeholder:`Enter amount for token ${b?"A":"B"}`,required:!0,disabled:c})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Minimum Output Amount:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:_e.minOutputAmount,onChange:tt=>nt({..._e,minOutputAmount:tt.target.value}),placeholder:`Minimum amount of token ${b?"B":"A"}`,required:!0,disabled:c})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:c||!s,children:c?"Swapping...":"Swap"})]})};async function depositLiquidity(o,e,s,a,c,d,h,_){try{const b=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),$=new Program(fallIdl,b),[_e]=PublicKey.findProgramAddressSync([a.toBuffer(),c.toBuffer(),d.toBuffer(),Buffer.from(AUTHORITY_SEED)],$.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LIQUIDITY_SEED)],$.programId),rt=await getAssociatedTokenAddress(c,_e,!0),tt=await getAssociatedTokenAddress(d,_e,!0),ct=await getAssociatedTokenAddress(c,o.publicKey,!0),ht=await getAssociatedTokenAddress(d,o.publicKey,!0),dt=await getAssociatedTokenAddress(nt,o.publicKey,!0);return await $.methods.depositLiquidity(new bnExports.BN(h),new bnExports.BN(_)).accounts({pool:s,poolAuthority:_e,mintA:c,mintB:d,depositor:o.publicKey,mintLiquidity:nt,poolAccountA:rt,poolAccountB:tt,depositorAccountLiquidity:dt,depositorAccountA:ct,depositorAccountB:ht,payer:o.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc({skipPreflight:!1,maxRetries:3,commitment:"confirmed"})}catch(b){throw console.error("Error in depositLiquidity:",b),b}}const DepositLiquidityForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState({amountA:"",amountB:""}),_e=async nt=>{nt.preventDefault(),_(""),d(!0);try{const rt=parseFloat(b.amountA),tt=parseFloat(b.amountB),ct=await depositLiquidity(s,a,new PublicKey(o.pubkey),new PublicKey(o.amm),new PublicKey(o.mintA),new PublicKey(o.mintB),rt,tt);e(ct),$({amountA:"",amountB:""})}catch(rt){console.error("Error depositing liquidity:",rt),_(rt instanceof Error?rt.message:"Failed to deposit liquidity")}finally{d(!1)}};return jsxRuntimeExports.jsxs("form",{onSubmit:_e,className:"deposit-form",children:[h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount Token A:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:b.amountA,onChange:nt=>$({...b,amountA:nt.target.value}),placeholder:"Enter amount for token A",required:!0,disabled:c})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount Token B:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:b.amountB,onChange:nt=>$({...b,amountB:nt.target.value}),placeholder:"Enter amount for token B",required:!0,disabled:c})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:c||!s,children:c?"Depositing...":"Confirm Deposit"})]})};async function initPool(o,e,s,a,c){try{const d=new AnchorProvider(e,o,{commitment:"confirmed",preflightCommitment:"confirmed"}),h=new Program(fallIdl,d),[_]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],h.programId),[b]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],h.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],h.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],h.programId),nt=await index.token.associatedAddress({mint:a,owner:_}),rt=await index.token.associatedAddress({mint:c,owner:_}),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),[ct]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),ht=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});console.log("Step 1: Initializing lending pool...");let dt="";await accountExists(e,nt)?console.log("Lending pool 1 already initialized, skipping..."):(dt=await h.methods.initLendingPool1().accounts({pool:s,mintA:a,mintB:c,lendingPoolAuthority:_,lendingPoolTokenA:nt,lendingPoolTokenB:rt,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).preInstructions([ht]).rpc({commitment:"confirmed"}),await e.confirmTransaction(dt,"confirmed")),console.log("Step 2: Initializing lending pool...");let lt="";await accountExists(e,_e)?console.log("Lending pool 2 already initialized, skipping..."):(lt=await h.methods.initLendingPool2().accounts({pool:s,lendingPoolAuthority:_,lendingReceiptTokenMint:b,borrowReceiptTokenMint:$,collateralReceiptTokenMint:_e,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).preInstructions([ht]).rpc({commitment:"confirmed"}),await e.confirmTransaction(lt,"confirmed")),console.log("Step 3: Initializing lending pool...");let st="";return await accountExists(e,tt)?console.log("Lending pool 3 already initialized, skipping..."):(st=await h.methods.initLendingPool3().accounts({pool:s,lendingPoolAuthority:_,lenderLendingBlockHeightMint:tt,borrowerBorrowBlockHeightMint:ct,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).preInstructions([ht]).rpc({commitment:"confirmed"}),await e.confirmTransaction(st,"confirmed")),{initTx1:dt,initTx2:lt,initTx3:st}}catch(d){console.error("Error",d)}return{initTx1:"",initTx2:"",initTx3:""}}async function accountExists(o,e){return await o.getAccountInfo(e)!==null}const InitPoolForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),{amm:c}=useAmm(),[d,h]=reactExports.useState(""),[_,b]=reactExports.useState(!1),$=async()=>{if(h(""),b(!0),!s){h("Please connect your wallet first"),b(!1);return}if(!c){h("Please select an AMM first"),b(!1);return}try{const _e=new PublicKey(o.pubkey),nt=new PublicKey(o.mintA),rt=new PublicKey(o.mintB),tt=await initPool(s,a,_e,nt,rt);console.log(`Transaction URL: https://explorer.solana.com/tx/${tt}`),e&&e(tt.toString())}catch(_e){console.error("Error initializing pool:",_e),h(_e instanceof Error?_e.message:"Failed to initialize pool")}finally{b(!1)}};return jsxRuntimeExports.jsxs("div",{className:"init-pool-container",children:[d&&jsxRuntimeExports.jsx("div",{className:"error-message",children:d}),jsxRuntimeExports.jsx("button",{onClick:$,className:"submit-button",disabled:_||!s,children:_?"Initializing...":"Initialize Pool"})]})},PoolItem=({pool:o,onTxSuccess:e})=>{const{connection:s}=useConnection(),{publicKey:a}=useWallet(),[c,d]=reactExports.useState("none"),[h,_]=reactExports.useState(null),[b,$]=reactExports.useState(!1),_e=async()=>{try{$(!0);const nt=await getPoolDetail(s,{pubkey:o.pubkey.toString(),amm:o.amm.toString(),mintA:o.mintA.toString(),mintB:o.mintB.toString()},a||new PublicKey(""));_(nt)}catch(nt){console.error("Error fetching pool prices:",nt)}finally{$(!1)}};return reactExports.useEffect(()=>{_e()},[o,s,a]),jsxRuntimeExports.jsxs("div",{className:"pool-item",children:[jsxRuntimeExports.jsx("div",{className:"pool-header",children:jsxRuntimeExports.jsx("h3",{children:"Pool Details"})}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"AMM Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.amm.toString(),children:o.amm.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-info",children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Pool Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.pubkey.toString(),children:o.pubkey.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintA.toString(),children:o.mintA.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintB.toString(),children:o.mintB.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Fee:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.fee.toString(),children:o.fee})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Min Collateral Ratio:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.minCollateralRatio.toString(),children:o.minCollateralRatio})]})]}),jsxRuntimeExports.jsx("div",{className:"pool-actions",children:jsxRuntimeExports.jsx("button",{className:"action-button",onClick:()=>d(c==="initPool"?"none":"initPool"),children:c==="initPool"?"Hide Init Pool":"Init Pool"})}),c==="initPool"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(InitPoolForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),jsxRuntimeExports.jsxs("div",{className:"pool-price-info",children:[jsxRuntimeExports.jsx("h4",{children:"Pool Liquidity & Prices"}),b?jsxRuntimeExports.jsx("div",{className:"loading-prices",children:"Loading prices..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A Reserve:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B Reserve:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenBAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (A → B):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 A = ",h.pool.aToB.toFixed(6)," B"]})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (B → A):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 B = ",h.pool.bToA.toFixed(6)," A"]})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load prices"})]}),jsxRuntimeExports.jsxs("div",{className:"pool-actions",children:[jsxRuntimeExports.jsx("button",{className:"action-button",onClick:()=>d(c==="deposit"?"none":"deposit"),children:c==="deposit"?"Hide Deposit":"Deposit"}),jsxRuntimeExports.jsx("button",{className:"action-button",onClick:()=>d(c==="swap"?"none":"swap"),children:c==="swap"?"Hide Swap":"Swap"})]}),c==="deposit"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(DepositLiquidityForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="swap"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(SwapForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info",children:[jsxRuntimeExports.jsx("h4",{children:"Lending Pool"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenAAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenBAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenBAmount.toFixed(6)})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]})]})},PoolList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),_e=async()=>{if(o){d(!0);try{const rt=await getPoolList(o,e);a(rt)}catch(rt){console.error("Error fetching pools:",rt),_(rt instanceof Error?rt.message:"Failed to fetch pools")}finally{d(!1)}}};reactExports.useEffect(()=>{_e()},[o,e]);const nt=rt=>{$(rt),_e()};return jsxRuntimeExports.jsxs("div",{className:"pool-list-container",children:[jsxRuntimeExports.jsx("h2",{children:"Liquidity Pools"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Transaction successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${b}`,target:"_blank",rel:"noopener noreferrer",children:"View on Explorer"})]}),c?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pools..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"empty-state",children:jsxRuntimeExports.jsx("p",{children:"No pools found"})}):jsxRuntimeExports.jsx("div",{className:"pool-list",children:s.map(rt=>jsxRuntimeExports.jsx(PoolItem,{pool:rt,onTxSuccess:nt},rt.pubkey.toString()))})]})};async function liquidate(o,e,s,a){try{console.log("Executing liquidate...");const c=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),d=new Program(fallIdl,c),h=await d.account.pool.fetch(s),_=h.mintA,b=h.mintB,[$]=PublicKey.findProgramAddressSync([h.amm.toBuffer(),_.toBuffer(),b.toBuffer(),Buffer.from(AUTHORITY_SEED)],d.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],d.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],d.programId),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],d.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],d.programId),ct=await index.token.associatedAddress({mint:nt,owner:tt}),ht=await index.token.associatedAddress({mint:rt,owner:tt}),dt=getAssociatedTokenAddressSync(b,c.wallet.publicKey,!0),lt=ComputeBudgetProgram.setComputeUnitLimit({units:2e8});console.log("Sending liquidate transaction...");const st=await d.methods.liquidate().accounts({pool:s,poolAuthority:$,mintA:_,mintB:b,lendingPoolAuthority:_e,borrowReceiptTokenMint:nt,collateralReceiptTokenMint:rt,trader:c.wallet.publicKey,traderAccountB:dt,borrower:a,borrowerBorrowReceiptToken:ct,borrowerCollateralReceiptToken:ht,payer:c.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([lt]).rpc();return console.log("Liquidate transaction signature:",st),{tx:st,accounts:{poolKey:s,poolAuthority:$,lendingPoolAuthority:_e,borrowReceiptTokenMint:nt,collateralReceiptTokenMint:rt,traderAccountB:dt,borrowerBorrowReceiptToken:ct,borrowerCollateralReceiptToken:ht}}}catch(c){throw console.error("Error in liquidate:",c),c instanceof Error&&console.error("Error details:",{message:c.message,stack:c.stack}),c}}async function getPendingLiquidation(o,e,s){try{const a=new AnchorProvider(s,o,{preflightCommitment:"confirmed"}),c=new Program(fallIdl,a),d=await c.account.pool.fetch(e),h=d.mintA,_=d.mintB,$=(await getPoolDetail(s,{pubkey:e.toString(),amm:d.amm.toString(),mintA:h.toString(),mintB:_.toString()},o.publicKey)).pool.aToB,[_e]=PublicKey.findProgramAddressSync([e.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],c.programId),[nt]=PublicKey.findProgramAddressSync([e.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],c.programId),rt=await s.getTokenLargestAccounts(_e),tt=[];for(const ct of rt.value){if(ct.amount=="0")continue;const ht=await getAccount(s,ct.address),dt=ht.owner,lt=await getUserTokenAmount(s,dt,nt);console.log("borrowReceiptToken amount",ht.amount.toString()),console.log("collateralReceiptTokenAmount",lt),console.log("Number(borrowTokenAccountInfo.amount) * 2*poolPrice",Number(ht.amount)*2*$),lt{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState(""),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),[_e,nt]=reactExports.useState(""),[rt,tt]=reactExports.useState([]),[ct,ht]=reactExports.useState(!1),dt=async st=>{if(st.preventDefault(),!o||!h){a("Please connect wallet and enter pool address");return}try{a(""),ht(!0);const it=new PublicKey(h),_t=await getPendingLiquidation(o,it,e);tt(_t)}catch(it){console.error("Error fetching pending liquidations:",it),a(it instanceof Error?it.message:"Failed to fetch pending liquidations"),tt([])}finally{ht(!1)}},lt=async st=>{if(st.preventDefault(),a(""),d(!0),!o){a("Please connect your wallet first"),d(!1);return}let it,_t;try{it=new PublicKey(h),_t=new PublicKey(b)}catch{a("Invalid pool or borrower address"),d(!1);return}try{const St=await liquidate(o,e,it,_t);console.log(`Transaction URL: https://explorer.solana.com/tx/${St.tx}`),nt(St.tx),_(""),$("")}catch(St){console.error("Error liquidating position:",St),a(St instanceof Error?St.message:"Failed to liquidate. Please try again.")}finally{d(!1)}};return jsxRuntimeExports.jsxs("div",{className:"liquidate-container",children:[s&&jsxRuntimeExports.jsx("div",{className:"error-message",children:s}),_e&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Liquidation successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${_e}`,target:"_blank",rel:"noopener noreferrer",children:"View transaction"})]}),jsxRuntimeExports.jsxs("div",{className:"search-form",children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{htmlFor:"pool-address",children:"Pool Address:"}),jsxRuntimeExports.jsxs("div",{className:"input-with-button",children:[jsxRuntimeExports.jsx("input",{id:"pool-address",type:"text",value:h,onChange:st=>_(st.target.value),placeholder:"Enter pool address",className:"input-field"}),jsxRuntimeExports.jsx("button",{onClick:dt,disabled:ct||!o||!h,className:"search-button",children:ct?"Searching...":"Search"})]})]}),jsxRuntimeExports.jsxs("div",{className:"pending-liquidations",children:[jsxRuntimeExports.jsx("h3",{children:"Pending Liquidations"}),ct?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pending liquidations..."}):rt.length===0?jsxRuntimeExports.jsx("p",{children:"No pending liquidations found"}):jsxRuntimeExports.jsx("ul",{className:"liquidation-list",children:rt.map((st,it)=>jsxRuntimeExports.jsx("li",{className:"liquidation-item",onClick:()=>$(st.userAuthorityPda.toString()),children:jsxRuntimeExports.jsxs("div",{children:["Borrower Authority PDA: ",st.userAuthorityPda.toString()]})},it))})]})]}),jsxRuntimeExports.jsxs("form",{onSubmit:lt,className:"liquidate-form",children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{htmlFor:"borrower-address",children:"Note: The current demo does not yet support liquidation based on PDAs. The public key is not the same as the PDA. So the PDA above is useless now. U'd better to use another account to borrow and then liquidate that account with it's Public Key."}),jsxRuntimeExports.jsx("label",{htmlFor:"borrower-address",children:"Borrower Address:"}),jsxRuntimeExports.jsx("input",{id:"borrower-address",type:"text",value:b,onChange:st=>$(st.target.value),placeholder:"Enter borrower address",className:"input-field"})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:c||!o||!h||!b,children:c?"Liquidating...":"Liquidate Position"})]})]})};async function lend(o,e,s,a){try{console.log("Executing lend...");const c=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),d=new Program(fallIdl,c),h=await d.account.pool.fetch(s),_=h.mintA,b=h.mintB,[$]=PublicKey.findProgramAddressSync([h.amm.toBuffer(),_.toBuffer(),b.toBuffer(),Buffer.from(AUTHORITY_SEED)],d.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],d.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],d.programId),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],d.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],d.programId),ct=getAssociatedTokenAddressSync(_,_e,!0),ht=getAssociatedTokenAddressSync(b,_e,!0),dt=await index.token.associatedAddress({mint:_,owner:c.wallet.publicKey}),[lt]=PublicKey.findProgramAddressSync([s.toBuffer(),c.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],d.programId),st=await index.token.associatedAddress({mint:nt,owner:lt}),it=await index.token.associatedAddress({mint:tt,owner:lt});return{tx:await d.methods.lend(new BN(a)).accounts({pool:s,lendingPoolAuthority:_e,lendingPoolTokenA:ct,lendingReceiptTokenMint:nt,lenderLendingBlockHeightMint:tt,lender:c.wallet.publicKey,lenderTokenA:dt,lenderAuthority:lt,lenderLendReceiptToken:st,lenderLendingBlockHeightReceiptToken:it,payer:c.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc(),accounts:{poolAuthority:$,lendingPoolAuthority:_e,lendingReceiptTokenMint:nt,borrowReceiptTokenMint:rt,lendingPoolTokenA:ct,lendingPoolTokenB:ht,lenderTokenA:dt,lenderLendReceiptToken:st,lenderLendingBlockHeightReceiptToken:it}}}catch(c){throw console.error("Error in lend:",c),c instanceof Error&&console.error("Error details:",{message:c.message,stack:c.stack}),c}}const LendForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async nt=>{if(nt.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const rt=parseFloat(b);if(isNaN(rt)||rt<=0)throw new Error("Invalid amount");const tt=new PublicKey(o.pubkey),ct=await lend(s,a,tt,new BN(rt));console.log(`Transaction URL: https://explorer.solana.com/tx/${ct.tx}`),$(""),e(ct.tx)}catch(rt){console.error("Error lending:",rt),d(rt instanceof Error?rt.message:"Failed to lend")}finally{_(!1)}};return console.log(o),jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Lend Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:_e,children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount to Lend:"}),jsxRuntimeExports.jsx("input",{type:"number",value:b,onChange:nt=>$(nt.target.value),placeholder:"Enter amount to lend",required:!0,min:"0",step:"any",disabled:h})]}),jsxRuntimeExports.jsxs("div",{className:"lendingPool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Pool: ",o.pubkey.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token A: ",o.mintA.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token B: ",o.mintB.toString()]})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Lend"})]})]})};async function redeem(o,e,s){try{const a=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),c=new Program(fallIdl,a),d=await c.account.pool.fetch(s),h=d.mintA,_=d.mintB,[b]=PublicKey.findProgramAddressSync([d.amm.toBuffer(),h.toBuffer(),_.toBuffer(),Buffer.from(AUTHORITY_SEED)],c.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],c.programId),_e=await index.token.associatedAddress({mint:h,owner:$}),nt=await index.token.associatedAddress({mint:_,owner:$}),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],c.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],c.programId),[ct]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],c.programId),ht=await index.token.associatedAddress({mint:h,owner:a.wallet.publicKey}),dt=await index.token.associatedAddress({mint:_,owner:a.wallet.publicKey}),[lt]=PublicKey.findProgramAddressSync([s.toBuffer(),a.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],c.programId),st=await index.token.associatedAddress({mint:rt,owner:lt}),it=await index.token.associatedAddress({mint:ct,owner:lt});console.log("Sending redeem transaction...");const _t=await c.methods.redeem().accounts({pool:s,poolAuthority:b,mintA:h,mintB:_,lendingPoolAuthority:$,lendingPoolTokenA:_e,lendingPoolTokenB:nt,lendingReceiptTokenMint:rt,borrowReceiptTokenMint:tt,lenderLendingBlockHeightTokenMint:ct,lender:a.wallet.publicKey,lenderTokenA:ht,lenderTokenB:dt,lenderLendingReceiptToken:st,lenderLendingBlockHeightReceiptToken:it,payer:a.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc();return console.log("Redeem transaction signature:",_t),_t}catch(a){throw console.error("Error in redeem:",a),a}}const RedeemForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),b=async $=>{if($.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const _e=new PublicKey(o.pubkey),nt=await redeem(s,a,_e);console.log(`Transaction URL: https://explorer.solana.com/tx/${nt}`),e(nt)}catch(_e){console.error("Error redeeming:",_e),d(_e instanceof Error?_e.message:"Failed to redeem")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Redeem Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:b,children:[jsxRuntimeExports.jsxs("div",{className:"lending-pool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Min Collateral Ratio: ",(o.minCollateralRatio/100).toFixed(2),"%"]}),jsxRuntimeExports.jsxs("div",{children:["Base Rate: ",BASE_RATE,"%"]})]}),jsxRuntimeExports.jsx("div",{className:"warning-message",children:"Note: This will redeem all your lending receipt tokens."}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Redeem"})]})]})},LenderPoolItem=({pool:o,onTxSuccess:e})=>{const{connection:s}=useConnection(),{publicKey:a}=useWallet(),[c,d]=reactExports.useState("none"),[h,_]=reactExports.useState(null),[b,$]=reactExports.useState(!1),_e=async()=>{try{$(!0);const nt=await getPoolDetail(s,{pubkey:o.pubkey.toString(),amm:o.amm.toString(),mintA:o.mintA.toString(),mintB:o.mintB.toString()},a||new PublicKey(""));_(nt)}catch(nt){console.error("Error fetching pool prices:",nt)}finally{$(!1)}};return reactExports.useEffect(()=>{_e()},[o,s,a]),jsxRuntimeExports.jsxs("div",{className:"pool-item",children:[jsxRuntimeExports.jsx("div",{className:"pool-header",children:jsxRuntimeExports.jsx("h3",{children:"Pool Details"})}),jsxRuntimeExports.jsxs("div",{className:"pool-info",children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Pool Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.pubkey.toString(),children:o.pubkey.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintA.toString(),children:o.mintA.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintB.toString(),children:o.mintB.toString()})]})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info",children:[jsxRuntimeExports.jsx("h4",{children:"Lending Pool"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenAAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenBAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenBAmount.toFixed(6)})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-assets-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your Assets"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenA Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenAAmount})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenB Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenBAmount})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-lending-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your lending details"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"lended tokenA amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.lendingReceiptAmount})]})}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsx("div",{className:"lending-pool-actions",children:jsxRuntimeExports.jsxs("div",{className:"lending-pool-action-buttons",children:[jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="lend"?"none":"lend"),children:c==="lend"?"Hide Lend":"Lend"}),jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="redeem"?"none":"redeem"),children:c==="redeem"?"Hide Redeem":"Redeem"})]})}),jsxRuntimeExports.jsx("div",{className:"lending-pool-actions",children:jsxRuntimeExports.jsx("button",{className:"lending-pool-refresh-button",onClick:_e,disabled:b,children:b?"Loading...":"🔄 Refresh"})}),c==="lend"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(LendForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="redeem"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(RedeemForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})})]})},LenderPoolList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),_e=async()=>{if(o){d(!0);try{const rt=await getPoolList(o,e);a(rt)}catch(rt){console.error("Error fetching pools:",rt),_(rt instanceof Error?rt.message:"Failed to fetch pools")}finally{d(!1)}}};reactExports.useEffect(()=>{_e()},[o,e]);const nt=rt=>{$(rt),_e()};return jsxRuntimeExports.jsxs("div",{className:"pool-list-container",children:[jsxRuntimeExports.jsx("h2",{children:"Liquidity Pools"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Transaction successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${b}`,target:"_blank",rel:"noopener noreferrer",children:"View on Explorer"})]}),c?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pools..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"empty-state",children:jsxRuntimeExports.jsx("p",{children:"No pools found"})}):jsxRuntimeExports.jsx("div",{className:"pool-list",children:s.map(rt=>jsxRuntimeExports.jsx(LenderPoolItem,{pool:rt,onTxSuccess:nt}))})]})};async function borrow(o,e,s,a,c,d){try{console.log("Executing borrow...");const h=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),_=new Program(fallIdl,h),b=await _.account.pool.fetch(s);console.log("Pool info:",{amm:b.amm.toString(),mintA:b.mintA.toString(),mintB:b.mintB.toString()});const[$]=PublicKey.findProgramAddressSync([b.amm.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(AUTHORITY_SEED)],_.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],_.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],_.programId),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],_.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],_.programId),ct=await index.token.associatedAddress({mint:a,owner:$}),ht=await index.token.associatedAddress({mint:c,owner:$}),dt=await index.token.associatedAddress({mint:a,owner:_e}),lt=await index.token.associatedAddress({mint:c,owner:_e}),st=await index.token.associatedAddress({mint:a,owner:h.wallet.publicKey}),it=await index.token.associatedAddress({mint:c,owner:h.wallet.publicKey}),[_t]=PublicKey.findProgramAddressSync([s.toBuffer(),h.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],_.programId),St=await index.token.associatedAddress({mint:nt,owner:_t}),vt=await index.token.associatedAddress({mint:rt,owner:_t}),At=await index.token.associatedAddress({mint:tt,owner:_t});console.log("Sending borrow transaction...");const It=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});return await _.methods.borrow(d).accounts({pool:s,poolAuthority:$,mintA:a,mintB:c,poolAccountA:ct,poolAccountB:ht,lendingPoolAuthority:_e,lendingPoolTokenA:dt,lendingPoolTokenB:lt,borrowReceiptTokenMint:nt,collateralReceiptTokenMint:rt,borrowerBorrowBlockHeightTokenMint:tt,borrower:h.wallet.publicKey,borrowerTokenA:st,borrowerTokenB:it,borrowerBorrowReceiptToken:St,borrowerCollateralReceiptToken:vt,borrowerBorrowBlockHeightReceiptToken:At,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([It]).rpc()}catch(h){throw console.error("Error in borrow:",h),h instanceof Error&&console.error("Error details:",{message:h.message,stack:h.stack}),h}}const BorrowForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async rt=>{if(rt.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const tt=parseFloat(b);if(isNaN(tt)||tt<=0)throw new Error("Invalid borrow amount");const ct=new PublicKey(o.pubkey),ht=new PublicKey(o.mintA),dt=new PublicKey(o.mintB),lt=await borrow(s,a,ct,ht,dt,new BN(tt));console.log(`Transaction URL: https://explorer.solana.com/tx/${lt}`),$(""),e(lt)}catch(tt){console.error("Error borrowing:",tt),d(tt instanceof Error?tt.message:"Failed to borrow")}finally{_(!1)}},nt=(o.minCollateralRatio/100).toFixed(2);return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Borrow Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:_e,children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount to Borrow (Token A):"}),jsxRuntimeExports.jsx("input",{type:"number",value:b,onChange:rt=>$(rt.target.value),placeholder:"Enter amount to borrow",required:!0,min:"0",step:"any",disabled:h})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Pool: ",o.pubkey.toString().slice(0,4),"...",o.pubkey.toString().slice(-4)]}),jsxRuntimeExports.jsxs("div",{children:["Token A (Borrow): ",o.mintA.toString().slice(0,4),"...",o.mintA.toString().slice(-4)]}),jsxRuntimeExports.jsxs("div",{children:["Token B (Collateral): ",o.mintB.toString().slice(0,4),"...",o.mintB.toString().slice(-4)]}),jsxRuntimeExports.jsxs("div",{children:["Min Collateral Ratio: ",nt,"%"]}),jsxRuntimeExports.jsxs("div",{children:["Base Rate: ",(o.fee/100).toFixed(2),"%"]})]}),jsxRuntimeExports.jsx("div",{className:"warning-message",children:"Note: Please ensure you provide sufficient collateral based on the minimum collateral ratio."}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Borrow"})]})]})};async function repay(o,e,s,a,c){try{console.log("Executing repay...");const d=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),h=new Program(fallIdl,d),_=await h.account.pool.fetch(s),[b]=PublicKey.findProgramAddressSync([_.amm.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(AUTHORITY_SEED)],h.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],h.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],h.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],h.programId),rt=await index.token.associatedAddress({mint:a,owner:$}),tt=await index.token.associatedAddress({mint:c,owner:$}),ct=await index.token.associatedAddress({mint:a,owner:d.wallet.publicKey}),ht=await index.token.associatedAddress({mint:c,owner:d.wallet.publicKey}),[dt]=PublicKey.findProgramAddressSync([s.toBuffer(),d.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],h.programId),lt=await index.token.associatedAddress({mint:_e,owner:dt}),st=await index.token.associatedAddress({mint:nt,owner:dt}),[it]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),_t=await index.token.associatedAddress({mint:it,owner:dt});console.log("Sending repay transaction...");const St=await h.methods.repay().accounts({mintA:a,mintB:c,pool:s,poolAuthority:b,lendingPoolAuthority:$,lendingPoolTokenA:rt,lendingPoolTokenB:tt,borrowReceiptTokenMint:_e,collateralReceiptTokenMint:nt,borrowerBorrowBlockHeightMint:it,borrower:d.wallet.publicKey,borrowerTokenA:ct,borrowerTokenB:ht,borrowerAuthority:dt,borrowerBorrowReceiptToken:lt,borrowerCollateralReceiptToken:st,borrowerBorrowBlockHeightReceiptToken:_t,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc();return console.log("Repay transaction signature:",St),St}catch(d){throw console.error("Error in repay:",d),d}}const RepayForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),b=async $=>{if($.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const _e=new PublicKey(o.pubkey),nt=new PublicKey(o.mintA),rt=new PublicKey(o.mintB),tt=await repay(s,a,_e,nt,rt);console.log(`Transaction URL: https://explorer.solana.com/tx/${tt}`),e(tt)}catch(_e){console.error("Error repaying:",_e),d(_e instanceof Error?_e.message:"Failed to repay")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Repay Loan"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:b,children:[jsxRuntimeExports.jsx("div",{className:"form-group",children:jsxRuntimeExports.jsx("div",{className:"info-message",children:"Repaying your loan will return your collateral proportionally."})}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Repay"})]})]})};async function depositCollateral(o,e,s,a,c){try{console.log("Executing borrow...");const d=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),h=new Program(fallIdl,d),[_]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],h.programId),b=await getAssociatedTokenAddressSync(a,_,!0),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],h.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),nt=getAssociatedTokenAddressSync(a,d.wallet.publicKey),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),d.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],h.programId),tt=await getAssociatedTokenAddressSync($,rt,!0),ct=await index.token.associatedAddress({mint:_e,owner:rt});console.log("Sending borrow transaction...");const ht=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});return{tx:await h.methods.depositCollateral(c).accounts({pool:s,lendingPoolAuthority:_,lendingPoolTokenB:b,collateralReceiptTokenMint:$,borrowerBorrowBlockHeightTokenMint:_e,borrower:d.wallet.publicKey,borrowerTokenB:nt,borrowerAuthority:rt,borrowerCollateralReceiptToken:tt,borrowerBorrowBlockHeightReceiptToken:ct,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([ht]).rpc()}}catch(d){throw console.error("Error in borrow:",d),d instanceof Error&&console.error("Error details:",{message:d.message,stack:d.stack}),d}}const DepositCollateralForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async nt=>{if(nt.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const rt=parseFloat(b);if(isNaN(rt)||rt<=0)throw new Error("Invalid amount");const tt=new PublicKey(o.pubkey),ct=new PublicKey(o.mintB),ht=await depositCollateral(s,a,tt,ct,new BN(rt));console.log(`Transaction URL: https://explorer.solana.com/tx/${ht.tx}`),$(""),e(ht.tx)}catch(rt){console.error("Error lending:",rt),d(rt instanceof Error?rt.message:"Failed to lend")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"DepositCollateral Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:_e,children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount to DepositCollateral:"}),jsxRuntimeExports.jsx("input",{type:"number",value:b,onChange:nt=>$(nt.target.value),placeholder:"Enter amount of collateral to deposit",required:!0,min:"0",step:"any",disabled:h})]}),jsxRuntimeExports.jsxs("div",{className:"lendingPool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Pool: ",o.pubkey.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token A: ",o.mintA.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token B: ",o.mintB.toString()]})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm DepositCollateral"})]})]})},BorrowerPoolItem=({pool:o,onTxSuccess:e})=>{const{connection:s}=useConnection(),{publicKey:a}=useWallet(),[c,d]=reactExports.useState("none"),[h,_]=reactExports.useState(null),[b,$]=reactExports.useState(!1),_e=async()=>{try{$(!0);const nt=await getPoolDetail(s,{pubkey:o.pubkey.toString(),amm:o.amm.toString(),mintA:o.mintA.toString(),mintB:o.mintB.toString()},a||new PublicKey(""));_(nt)}catch(nt){console.error("Error fetching pool prices:",nt)}finally{$(!1)}};return reactExports.useEffect(()=>{_e()},[o,s,a]),jsxRuntimeExports.jsxs("div",{className:"pool-item",children:[jsxRuntimeExports.jsx("div",{className:"pool-header",children:jsxRuntimeExports.jsx("h3",{children:"Pool Details"})}),jsxRuntimeExports.jsxs("div",{className:"pool-info",children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Pool Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.pubkey.toString(),children:o.pubkey.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintA.toString(),children:o.mintA.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintB.toString(),children:o.mintB.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Min Collateral Ratio:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.minCollateralRatio.toString(),children:o.minCollateralRatio})]})]}),jsxRuntimeExports.jsxs("div",{className:"pool-price-info",children:[jsxRuntimeExports.jsx("h4",{children:"Prices"}),b?jsxRuntimeExports.jsx("div",{className:"loading-prices",children:"Loading prices..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"TokenA Amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"TokenB Amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenBAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (A → B):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 A = ",h.pool.aToB.toFixed(6)," B"]})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (B → A):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 B = ",h.pool.bToA.toFixed(6)," A"]})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load prices"})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info",children:[jsxRuntimeExports.jsx("h4",{children:"Lending Pool"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenAAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenBAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenBAmount.toFixed(6)})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-assets-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your Assets"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenA Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenAAmount})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenB Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenBAmount})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-lending-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your borrowing details"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"borrowed tokenB amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.borrowReceiptAmount})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"collateral TokenA amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.collateralReceiptAmount})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-actions",children:[jsxRuntimeExports.jsxs("div",{className:"lending-pool-action-buttons",children:[jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="depositCollateral"?"none":"depositCollateral"),children:c==="depositCollateral"?"Hide DepositCollateral":"DepositCollateral"}),jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="borrow"?"none":"borrow"),children:c==="borrow"?"Hide Borrow":"Borrow"}),jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="repay"?"none":"repay"),children:c==="repay"?"Hide Repay":"Repay"})]}),jsxRuntimeExports.jsx("button",{className:"lending-pool-refresh-button",onClick:_e,disabled:b,children:b?"Loading...":"🔄 Refresh"})]}),c==="borrow"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(BorrowForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="repay"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(RepayForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="depositCollateral"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(DepositCollateralForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})})]})},BorrowerPoolList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),_e=async()=>{if(o){d(!0);try{const rt=await getPoolList(o,e);a(rt)}catch(rt){console.error("Error fetching pools:",rt),_(rt instanceof Error?rt.message:"Failed to fetch pools")}finally{d(!1)}}};reactExports.useEffect(()=>{_e()},[o,e]);const nt=rt=>{$(rt),_e()};return jsxRuntimeExports.jsxs("div",{className:"pool-list-container",children:[jsxRuntimeExports.jsx("h2",{children:"Liquidity Pools"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Transaction successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${b}`,target:"_blank",rel:"noopener noreferrer",children:"View on Explorer"})]}),c?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pools..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"empty-state",children:jsxRuntimeExports.jsx("p",{children:"No pools found"})}):jsxRuntimeExports.jsx("div",{className:"pool-list",children:s.map(rt=>jsxRuntimeExports.jsx(BorrowerPoolItem,{pool:rt,onTxSuccess:nt}))})]})},EXCLUDED_PUBLIC_KEY="GUXNPX5ci1Qj76MZe2aRJ33zK48VmT6gXVyR86CsF4T5",Dashboard=()=>{const{publicKey:o}=useWallet(),[e,s]=reactExports.useState("amm");return jsxRuntimeExports.jsx(AmmProvider,{children:jsxRuntimeExports.jsxs("div",{className:"defi-dashboard",children:[jsxRuntimeExports.jsxs("div",{className:"tabs",children:[(o==null?void 0:o.toBase58())==EXCLUDED_PUBLIC_KEY&&jsxRuntimeExports.jsx("button",{className:`tab ${e==="amm"?"active":""}`,onClick:()=>s("amm"),children:"AMM"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="pool"?"active":""}`,onClick:()=>s("pool"),children:"Swap"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="lenderPool"?"active":""}`,onClick:()=>s("lenderPool"),children:"Lend"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="borrowerPool"?"active":""}`,onClick:()=>s("borrowerPool"),children:"Borrow"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="liquidate"?"active":""}`,onClick:()=>s("liquidate"),children:"Liquidate"})]}),jsxRuntimeExports.jsx("div",{className:"content",children:e==="amm"&&(o==null?void 0:o.toBase58())==EXCLUDED_PUBLIC_KEY?jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(AmmList,{}),jsxRuntimeExports.jsx(CreateAmmForm,{})]}):e==="pool"?jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PoolList,{}),jsxRuntimeExports.jsx(PoolCreateForm,{})]}):e==="lenderPool"?jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(LenderPoolList,{})}):e==="borrowerPool"?jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(BorrowerPoolList,{})}):e==="liquidate"?jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(LiquidateForm,{})}):jsxRuntimeExports.jsx(FutureForm,{})})]})})},FutureForm=()=>jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("h3",{children:" Coming Soon..."})}),PhantomWalletName="Phantom";class PhantomWalletAdapter extends BaseMessageSignerWalletAdapter{constructor(e={}){super(),this.name=PhantomWalletName,this.url="https://phantom.app",this.icon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiB2aWV3Qm94PSIwIDAgMTA4IDEwOCIgZmlsbD0ibm9uZSI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPg==",this.supportedTransactionVersions=new Set(["legacy",0]),this._readyState=typeof window>"u"||typeof document>"u"?WalletReadyState.Unsupported:WalletReadyState.NotDetected,this._disconnected=()=>{const s=this._wallet;s&&(s.off("disconnect",this._disconnected),s.off("accountChanged",this._accountChanged),this._wallet=null,this._publicKey=null,this.emit("error",new WalletDisconnectedError),this.emit("disconnect"))},this._accountChanged=s=>{const a=this._publicKey;if(a){try{s=new PublicKey(s.toBytes())}catch(c){this.emit("error",new WalletPublicKeyError(c==null?void 0:c.message,c));return}a.equals(s)||(this._publicKey=s,this.emit("connect",s))}},this._connecting=!1,this._wallet=null,this._publicKey=null,this._readyState!==WalletReadyState.Unsupported&&(isIosAndRedirectable()?(this._readyState=WalletReadyState.Loadable,this.emit("readyStateChange",this._readyState)):scopePollingDetectionStrategy(()=>{var s,a,c;return(a=(s=window.phantom)==null?void 0:s.solana)!=null&&a.isPhantom||(c=window.solana)!=null&&c.isPhantom?(this._readyState=WalletReadyState.Installed,this.emit("readyStateChange",this._readyState),!0):!1}))}get publicKey(){return this._publicKey}get connecting(){return this._connecting}get readyState(){return this._readyState}async autoConnect(){this.readyState===WalletReadyState.Installed&&await this.connect()}async connect(){var e;try{if(this.connected||this.connecting)return;if(this.readyState===WalletReadyState.Loadable){const c=encodeURIComponent(window.location.href),d=encodeURIComponent(window.location.origin);window.location.href=`https://phantom.app/ul/browse/${c}?ref=${d}`;return}if(this.readyState!==WalletReadyState.Installed)throw new WalletNotReadyError;this._connecting=!0;const s=((e=window.phantom)==null?void 0:e.solana)||window.solana;if(!s.isConnected)try{await s.connect()}catch(c){throw new WalletConnectionError(c==null?void 0:c.message,c)}if(!s.publicKey)throw new WalletAccountError;let a;try{a=new PublicKey(s.publicKey.toBytes())}catch(c){throw new WalletPublicKeyError(c==null?void 0:c.message,c)}s.on("disconnect",this._disconnected),s.on("accountChanged",this._accountChanged),this._wallet=s,this._publicKey=a,this.emit("connect",a)}catch(s){throw this.emit("error",s),s}finally{this._connecting=!1}}async disconnect(){const e=this._wallet;if(e){e.off("disconnect",this._disconnected),e.off("accountChanged",this._accountChanged),this._wallet=null,this._publicKey=null;try{await e.disconnect()}catch(s){this.emit("error",new WalletDisconnectionError(s==null?void 0:s.message,s))}}this.emit("disconnect")}async sendTransaction(e,s,a={}){try{const c=this._wallet;if(!c)throw new WalletNotConnectedError;try{const{signers:d,...h}=a;isVersionedTransaction$2(e)?d!=null&&d.length&&e.sign(d):(e=await this.prepareTransaction(e,s,h),d!=null&&d.length&&e.partialSign(...d)),h.preflightCommitment=h.preflightCommitment||s.commitment;const{signature:_}=await c.signAndSendTransaction(e,h);return _}catch(d){throw d instanceof WalletError?d:new WalletSendTransactionError(d==null?void 0:d.message,d)}}catch(c){throw this.emit("error",c),c}}async signTransaction(e){try{const s=this._wallet;if(!s)throw new WalletNotConnectedError;try{return await s.signTransaction(e)||e}catch(a){throw new WalletSignTransactionError(a==null?void 0:a.message,a)}}catch(s){throw this.emit("error",s),s}}async signAllTransactions(e){try{const s=this._wallet;if(!s)throw new WalletNotConnectedError;try{return await s.signAllTransactions(e)||e}catch(a){throw new WalletSignTransactionError(a==null?void 0:a.message,a)}}catch(s){throw this.emit("error",s),s}}async signMessage(e){try{const s=this._wallet;if(!s)throw new WalletNotConnectedError;try{const{signature:a}=await s.signMessage(e);return a}catch(a){throw new WalletSignMessageError(a==null?void 0:a.message,a)}}catch(s){throw this.emit("error",s),s}}}const NetworkContext=reactExports.createContext({network:"localnet",setNetwork:()=>{}}),useNetwork=()=>reactExports.useContext(NetworkContext),ENDPOINTS={"mainnet-beta":clusterApiUrl("mainnet-beta"),testnet:clusterApiUrl("testnet"),devnet:clusterApiUrl("devnet"),localnet:"http://127.0.0.1:8899"},NetworkSelect=({onChange:o,value:e})=>jsxRuntimeExports.jsx("div",{className:"solana-network-select-container",children:jsxRuntimeExports.jsxs("select",{onChange:s=>o(s.target.value),value:e,className:"solana-network-select",children:[jsxRuntimeExports.jsx("option",{value:"localnet",children:"Localnet"}),jsxRuntimeExports.jsx("option",{value:"devnet",children:"Devnet"}),jsxRuntimeExports.jsx("option",{value:"testnet",children:"Testnet"}),jsxRuntimeExports.jsx("option",{value:"mainnet-beta",children:"Mainnet"})]})}),WalletContextProvider=({children:o})=>{const[e,s]=reactExports.useState("localnet"),a=reactExports.useMemo(()=>ENDPOINTS[e],[e]),c=reactExports.useMemo(()=>[new PhantomWalletAdapter],[]);return jsxRuntimeExports.jsx(NetworkContext.Provider,{value:{network:e,setNetwork:s},children:jsxRuntimeExports.jsx(ConnectionProvider,{endpoint:a,children:jsxRuntimeExports.jsx(WalletProvider,{wallets:c,autoConnect:!0,children:jsxRuntimeExports.jsx(WalletModalProvider,{children:o})})})})},App=()=>{const{connected:o}=useWallet(),{network:e,setNetwork:s}=useNetwork();return jsxRuntimeExports.jsxs("div",{className:"container",children:[jsxRuntimeExports.jsx("nav",{className:"navbar",children:jsxRuntimeExports.jsxs("div",{className:"navbar-content",children:[jsxRuntimeExports.jsx(NetworkSelect,{onChange:s,value:e}),jsxRuntimeExports.jsx(WalletMultiButton,{})]})}),jsxRuntimeExports.jsx("main",{className:"main-content",children:o?jsxRuntimeExports.jsx(Dashboard,{}):jsxRuntimeExports.jsx("div",{className:"connect-prompt",children:jsxRuntimeExports.jsx("h2",{children:"Please connect your wallet to continue"})})})]})};window.Buffer=Buffer$1;client.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(React.StrictMode,{children:jsxRuntimeExports.jsx(WalletContextProvider,{children:jsxRuntimeExports.jsx(App,{})})})); +`));var jt=new _e({actual:Rt,expected:bt,message:Tt,operator:Ct,stackStartFn:Bt});throw jt.generatedMessage=Dt,jt}}At.match=function Rt(bt,Tt,Bt){ot(bt,Tt,Bt,Rt,"match")},At.doesNotMatch=function Rt(bt,Tt,Bt){ot(bt,Tt,Bt,Rt,"doesNotMatch")};function ft(){for(var Rt=arguments.length,bt=new Array(Rt),Tt=0;Tt{var b;return(b=a)!=null?b:a=[e,...s()]}}}function isIterable(o){return isObject(o)&&typeof o[Symbol.iterator]=="function"}function isObject(o){return typeof o=="object"&&o!=null}function print(o){return typeof o=="string"?JSON.stringify(o):""+o}function shiftIterator(o){const{done:e,value:s}=o.next();return e?void 0:s}function toFailure(o,e,s,a){if(o===!0)return;o===!1?o={}:typeof o=="string"&&(o={message:o});const{path:c,branch:d}=e,{type:h}=s,{refinement:_,message:b="Expected a value of type `"+h+"`"+(_?" with refinement `"+_+"`":"")+", but received: `"+print(a)+"`"}=o;return{value:a,type:h,refinement:_,key:c[c.length-1],path:c,branch:d,...o,message:b}}function*toFailures(o,e,s,a){isIterable(o)||(o=[o]);for(const c of o){const d=toFailure(c,e,s,a);d&&(yield d)}}function*run(o,e,s){s===void 0&&(s={});const{path:a=[],branch:c=[o],coerce:d=!1,mask:h=!1}=s,_={path:a,branch:c};if(d&&(o=e.coercer(o,_),h&&e.type!=="type"&&isObject(e.schema)&&isObject(o)&&!Array.isArray(o)))for(const $ in o)e.schema[$]===void 0&&delete o[$];let b=!0;for(const $ of e.validator(o,_))b=!1,yield[$,void 0];for(let[$,_e,nt]of e.entries(o,_)){const rt=run(_e,nt,{path:$===void 0?a:[...a,$],branch:$===void 0?c:[...c,_e],coerce:d,mask:h});for(const tt of rt)tt[0]?(b=!1,yield[tt[0],void 0]):d&&(_e=tt[1],$===void 0?o=_e:o instanceof Map?o.set($,_e):o instanceof Set?o.add(_e):isObject(o)&&(o[$]=_e))}if(b)for(const $ of e.refiner(o,_))b=!1,yield[$,void 0];b&&(yield[void 0,o])}class Struct{constructor(e){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:s,schema:a,validator:c,refiner:d,coercer:h=b=>b,entries:_=function*(){}}=e;this.type=s,this.schema=a,this.entries=_,this.coercer=h,c?this.validator=(b,$)=>{const _e=c(b,$);return toFailures(_e,$,this,b)}:this.validator=()=>[],d?this.refiner=(b,$)=>{const _e=d(b,$);return toFailures(_e,$,this,b)}:this.refiner=()=>[]}assert(e){return assert(e,this)}create(e){return create(e,this)}is(e){return is(e,this)}mask(e){return mask(e,this)}validate(e,s){return s===void 0&&(s={}),validate(e,this,s)}}function assert(o,e){const s=validate(o,e);if(s[0])throw s[0]}function create(o,e){const s=validate(o,e,{coerce:!0});if(s[0])throw s[0];return s[1]}function mask(o,e){const s=validate(o,e,{coerce:!0,mask:!0});if(s[0])throw s[0];return s[1]}function is(o,e){return!validate(o,e)[0]}function validate(o,e,s){s===void 0&&(s={});const a=run(o,e,s),c=shiftIterator(a);return c[0]?[new StructError(c[0],function*(){for(const h of a)h[0]&&(yield h[0])}),void 0]:[void 0,c[1]]}function define(o,e){return new Struct({type:o,schema:null,validator:e})}function any(){return define("any",()=>!0)}function array(o){return new Struct({type:"array",schema:o,*entries(e){if(o&&Array.isArray(e))for(const[s,a]of e.entries())yield[s,a,o]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||"Expected an array value, but received: "+print(e)}})}function boolean(){return define("boolean",o=>typeof o=="boolean")}function literal(o){const e=print(o);return new Struct({type:"literal",schema:o,validator(s){return s===o||"Expected the literal `"+e+"`, but received: "+print(s)}})}function nullable(o){return new Struct({...o,validator:(e,s)=>e===null||o.validator(e,s),refiner:(e,s)=>e===null||o.refiner(e,s)})}function number(){return define("number",o=>typeof o=="number"&&!isNaN(o)||"Expected a number, but received: "+print(o))}function optional(o){return new Struct({...o,validator:(e,s)=>e===void 0||o.validator(e,s),refiner:(e,s)=>e===void 0||o.refiner(e,s)})}function string(){return define("string",o=>typeof o=="string"||"Expected a string, but received: "+print(o))}function type(o){const e=Object.keys(o);return new Struct({type:"type",schema:o,*entries(s){if(isObject(s))for(const a of e)yield[a,s[a],o[a]]},validator(s){return isObject(s)||"Expected an object, but received: "+print(s)}})}function union$1(o){const e=o.map(s=>s.type).join(" | ");return new Struct({type:"union",schema:null,coercer(s,a){return(o.find(d=>{const[h]=d.validate(s,{coerce:!0});return!h})||unknown()).coercer(s,a)},validator(s,a){const c=[];for(const d of o){const[...h]=run(s,d,a),[_]=h;if(_[0])for(const[b]of h)b&&c.push(b);else return[]}return["Expected the value to satisfy a union of `"+e+"`, but received: "+print(s),...c]}})}function unknown(){return define("unknown",()=>!0)}function coerce(o,e,s){return new Struct({...o,coercer:(a,c)=>is(a,e)?o.coercer(s(a,c),c):o.coercer(a,c)})}function jsonRpcResult(o){return coerce(createRpcResult(o),UnknownRpcResult,e=>"error"in e?e:{...e,result:create(e.result,o)})}const UnknownRpcResult=createRpcResult(unknown());function createRpcResult(o){return union$1([type({jsonrpc:literal("2.0"),id:string(),result:o}),type({jsonrpc:literal("2.0"),id:string(),error:type({code:unknown(),message:string(),data:optional(any())})})])}function jsonRpcResultAndContext(o){return jsonRpcResult(type({context:type({slot:number()}),value:o}))}jsonRpcResultAndContext(type({err:nullable(union$1([type({}),string()])),logs:nullable(array(string())),accounts:optional(nullable(array(nullable(type({executable:boolean(),owner:string(),lamports:number(),data:array(string()),rentEpoch:optional(number())}))))),unitsConsumed:optional(number())}));var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};class Layout{constructor(e,s){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=s}makeDestinationObject(){return{}}decode(e,s){throw new Error("Layout is abstract")}encode(e,s,a){throw new Error("Layout is abstract")}getSpan(e,s){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const s=Object.create(this.constructor.prototype);return Object.assign(s,this),s.property=e,s}fromArray(e){}}var Layout_2=Layout;function nameWithProperty(o,e){return e.property?o+"["+e.property+"]":o}class ExternalLayout extends Layout{isCount(){throw new Error("ExternalLayout is abstract")}}class OffsetLayout extends ExternalLayout{constructor(e,s,a){if(!(e instanceof Layout))throw new TypeError("layout must be a Layout");if(s===void 0)s=0;else if(!Number.isInteger(s))throw new TypeError("offset must be integer or undefined");super(e.span,a||e.property),this.layout=e,this.offset=s}isCount(){return this.layout instanceof UInt||this.layout instanceof UIntBE}decode(e,s){return s===void 0&&(s=0),this.layout.decode(e,s+this.offset)}encode(e,s,a){return a===void 0&&(a=0),this.layout.encode(e,s,a+this.offset)}}class UInt extends Layout{constructor(e,s){if(super(e,s),6d&&h instanceof Layout,!0)))throw new TypeError("fields must be array of Layout instances");typeof s=="boolean"&&a===void 0&&(a=s,s=void 0);for(const d of e)if(0>d.span&&d.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let c=-1;try{c=e.reduce((d,h)=>d+h.getSpan(),0)}catch{}super(c,s),this.fields=e,this.decodePrefixes=!!a}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;try{a=this.fields.reduce((c,d)=>{const h=d.getSpan(e,s);return s+=h,c+h},0)}catch{throw new RangeError("indeterminate span")}return a}decode(e,s){s===void 0&&(s=0);const a=this.makeDestinationObject();for(const c of this.fields)if(c.property!==void 0&&(a[c.property]=c.decode(e,s)),s+=c.getSpan(e,s),this.decodePrefixes&&e.length===s)break;return a}encode(e,s,a){a===void 0&&(a=0);const c=a;let d=0,h=0;for(const _ of this.fields){let b=_.span;if(h=0b&&(b=_.getSpan(s,a)))}d=a,a+=b}return d+h-c}fromArray(e){const s=this.makeDestinationObject();for(const a of this.fields)a.property!==void 0&&0a.span?s=-1:0<=s&&(s+=a.span)}}}class UnionDiscriminator{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class UnionLayoutDiscriminator extends UnionDiscriminator{constructor(e,s){if(!(e instanceof ExternalLayout&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(s||e.property||"variant"),this.layout=e}decode(e,s){return this.layout.decode(e,s)}encode(e,s,a){return this.layout.encode(e,s,a)}}class Union extends Layout{constructor(e,s,a){const c=e instanceof UInt||e instanceof UIntBE;if(c)e=new UnionLayoutDiscriminator(new OffsetLayout(e));else if(e instanceof ExternalLayout&&e.isCount())e=new UnionLayoutDiscriminator(e);else if(!(e instanceof UnionDiscriminator))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(s===void 0&&(s=null),!(s===null||s instanceof Layout))throw new TypeError("defaultLayout must be null or a Layout");if(s!==null){if(0>s.span)throw new Error("defaultLayout must have constant span");s.property===void 0&&(s=s.replicate("content"))}let d=-1;s&&(d=s.span,0<=d&&c&&(d+=e.layout.span)),super(d,a),this.discriminator=e,this.usesPrefixDiscriminator=c,this.defaultLayout=s,this.registry={};let h=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(_){return h(_)},this.configGetSourceVariant=function(_){h=_.bind(this)}}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);const a=this.getVariant(e,s);if(!a)throw new Error("unable to determine span for unrecognized variant");return a.getSpan(e,s)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const s=this.registry[e[this.discriminator.property]];if(s&&(!s.layout||e.hasOwnProperty(s.property)))return s}else for(const s in this.registry){const a=this.registry[s];if(e.hasOwnProperty(a.property))return a}throw new Error("unable to infer src variant")}decode(e,s){s===void 0&&(s=0);let a;const c=this.discriminator,d=c.decode(e,s);let h=this.registry[d];if(h===void 0){let _=0;h=this.defaultLayout,this.usesPrefixDiscriminator&&(_=c.layout.span),a=this.makeDestinationObject(),a[c.property]=d,a[h.property]=this.defaultLayout.decode(e,s+_)}else a=h.decode(e,s);return a}encode(e,s,a){a===void 0&&(a=0);const c=this.getSourceVariant(e);if(c===void 0){const d=this.discriminator,h=this.defaultLayout;let _=0;return this.usesPrefixDiscriminator&&(_=d.layout.span),d.encode(e[d.property],s,a),_+h.encode(e[h.property],s,a+_)}return c.encode(e,s,a)}addVariant(e,s,a){const c=new VariantLayout(this,e,s,a);return this.registry[e]=c,c}getVariant(e,s){let a=e;return Buffer.isBuffer(e)&&(s===void 0&&(s=0),a=this.discriminator.decode(e,s)),this.registry[a]}}class VariantLayout extends Layout{constructor(e,s,a,c){if(!(e instanceof Union))throw new TypeError("union must be a Union");if(!Number.isInteger(s)||0>s)throw new TypeError("variant must be a (non-negative) integer");if(typeof a=="string"&&c===void 0&&(c=a,a=null),a){if(!(a instanceof Layout))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=a.span&&a.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof c!="string")throw new TypeError("variant must have a String property")}let d=e.span;0>e.span&&(d=a?a.span:0,0<=d&&e.usesPrefixDiscriminator&&(d+=e.discriminator.layout.span)),super(d,c),this.union=e,this.variant=s,this.layout=a||null}getSpan(e,s){if(0<=this.span)return this.span;s===void 0&&(s=0);let a=0;return this.union.usesPrefixDiscriminator&&(a=this.union.discriminator.layout.span),a+this.layout.getSpan(e,s+a)}decode(e,s){const a=this.makeDestinationObject();if(s===void 0&&(s=0),this!==this.union.getVariant(e,s))throw new Error("variant mismatch");let c=0;return this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout?a[this.property]=this.layout.decode(e,s+c):this.property?a[this.property]=!0:this.union.usesPrefixDiscriminator&&(a[this.union.discriminator.property]=this.variant),a}encode(e,s,a){a===void 0&&(a=0);let c=0;if(this.union.usesPrefixDiscriminator&&(c=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,s,a);let d=c;if(this.layout&&(this.layout.encode(e[this.property],s,a+c),d+=this.layout.getSpan(s,a+c),0<=this.union.span&&d>this.union.span))throw new Error("encoded variant overruns containing union");return d}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}class Blob$1 extends Layout{constructor(e,s){if(!(e instanceof ExternalLayout&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let a=-1;e instanceof ExternalLayout||(a=e),super(a,s),this.length=e}getSpan(e,s){let a=this.span;return 0>a&&(a=this.length.decode(e,s)),a}decode(e,s){s===void 0&&(s=0);let a=this.span;return 0>a&&(a=this.length.decode(e,s)),e.slice(s,s+a)}encode(e,s,a){let c=this.length;if(this.length instanceof ExternalLayout&&(c=e.length),!(Buffer.isBuffer(e)&&c===e.length))throw new TypeError(nameWithProperty("Blob.encode",this)+" requires (length "+c+") Buffer as src");if(a+c>s.length)throw new RangeError("encoding overruns Buffer");return s.write(e.toString("hex"),a,c,"hex"),this.length instanceof ExternalLayout&&this.length.encode(c,s,a),c}}var offset=(o,e,s)=>new OffsetLayout(o,e,s),u8=o=>new UInt(1,o),u32=o=>new UInt(4,o),nu64=o=>new NearUInt64(o),ns64=o=>new NearInt64(o),struct=(o,e,s)=>new Structure(o,e,s),union=(o,e,s)=>new Union(o,e,s),blob=(o,e)=>new Blob$1(o,e);class RustStringLayout extends Layout_2{constructor(e){super(-1,e),this.property=e,this.layout=struct([u32("length"),u32("lengthPadding"),blob(offset(u32(),-8),"chars")],this.property)}encode(e,s,a=0){if(e==null)return this.layout.span;const c={chars:Buffer.from(e,"utf8")};return this.layout.encode(c,s,a)}decode(e,s=0){return this.layout.decode(e,s).chars.toString()}getSpan(e,s=0){return u32().span+u32().span+new BN(new Uint8Array(e).slice(s,s+4),10,"le").toNumber()}}function rustStringLayout(o){return new RustStringLayout(o)}function publicKey$2(o){return blob(32,o)}const LAYOUT=union(u32("instruction"));LAYOUT.addVariant(0,struct([ns64("lamports"),ns64("space"),publicKey$2("owner")]),"createAccount");LAYOUT.addVariant(1,struct([publicKey$2("owner")]),"assign");LAYOUT.addVariant(2,struct([ns64("lamports")]),"transfer");LAYOUT.addVariant(3,struct([publicKey$2("base"),rustStringLayout("seed"),ns64("lamports"),ns64("space"),publicKey$2("owner")]),"createAccountWithSeed");LAYOUT.addVariant(4,struct([publicKey$2("authorized")]),"advanceNonceAccount");LAYOUT.addVariant(5,struct([ns64("lamports")]),"withdrawNonceAccount");LAYOUT.addVariant(6,struct([publicKey$2("authorized")]),"initializeNonceAccount");LAYOUT.addVariant(7,struct([publicKey$2("authorized")]),"authorizeNonceAccount");LAYOUT.addVariant(8,struct([ns64("space")]),"allocate");LAYOUT.addVariant(9,struct([publicKey$2("base"),rustStringLayout("seed"),ns64("space"),publicKey$2("owner")]),"allocateWithSeed");LAYOUT.addVariant(10,struct([publicKey$2("base"),rustStringLayout("seed"),publicKey$2("owner")]),"assignWithSeed");LAYOUT.addVariant(11,struct([ns64("lamports"),rustStringLayout("seed"),publicKey$2("owner")]),"transferWithSeed");Math.max(...Object.values(LAYOUT.registry).map(o=>o.span));class WrappedLayout$1 extends Layout_2{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}}function publicKey$1(o){return new WrappedLayout$1(blob(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}struct([u32("version"),u32("state"),publicKey$1("authorizedPubkey"),publicKey$1("nonce"),struct([nu64("lamportsPerSignature")],"feeCalculator")]);const TOKEN_PROGRAM_ID$1=new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),ASSOCIATED_PROGRAM_ID=new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");var browserPonyfill={exports:{}};(function(o,e){var s=typeof self<"u"?self:commonjsGlobal,a=function(){function d(){this.fetch=!1,this.DOMException=s.DOMException}return d.prototype=s,new d}();(function(d){(function(h){var _={searchParams:"URLSearchParams"in d,iterable:"Symbol"in d&&"iterator"in Symbol,blob:"FileReader"in d&&"Blob"in d&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in d,arrayBuffer:"ArrayBuffer"in d};function b(j){return j&&DataView.prototype.isPrototypeOf(j)}if(_.arrayBuffer)var $=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],_e=ArrayBuffer.isView||function(j){return j&&$.indexOf(Object.prototype.toString.call(j))>-1};function nt(j){if(typeof j!="string"&&(j=String(j)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(j))throw new TypeError("Invalid character in header field name");return j.toLowerCase()}function rt(j){return typeof j!="string"&&(j=String(j)),j}function tt(j){var et={next:function(){var at=j.shift();return{done:at===void 0,value:at}}};return _.iterable&&(et[Symbol.iterator]=function(){return et}),et}function ct(j){this.map={},j instanceof ct?j.forEach(function(et,at){this.append(at,et)},this):Array.isArray(j)?j.forEach(function(et){this.append(et[0],et[1])},this):j&&Object.getOwnPropertyNames(j).forEach(function(et){this.append(et,j[et])},this)}ct.prototype.append=function(j,et){j=nt(j),et=rt(et);var at=this.map[j];this.map[j]=at?at+", "+et:et},ct.prototype.delete=function(j){delete this.map[nt(j)]},ct.prototype.get=function(j){return j=nt(j),this.has(j)?this.map[j]:null},ct.prototype.has=function(j){return this.map.hasOwnProperty(nt(j))},ct.prototype.set=function(j,et){this.map[nt(j)]=rt(et)},ct.prototype.forEach=function(j,et){for(var at in this.map)this.map.hasOwnProperty(at)&&j.call(et,this.map[at],at,this)},ct.prototype.keys=function(){var j=[];return this.forEach(function(et,at){j.push(at)}),tt(j)},ct.prototype.values=function(){var j=[];return this.forEach(function(et){j.push(et)}),tt(j)},ct.prototype.entries=function(){var j=[];return this.forEach(function(et,at){j.push([at,et])}),tt(j)},_.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function ht(j){if(j.bodyUsed)return Promise.reject(new TypeError("Already read"));j.bodyUsed=!0}function dt(j){return new Promise(function(et,at){j.onload=function(){et(j.result)},j.onerror=function(){at(j.error)}})}function lt(j){var et=new FileReader,at=dt(et);return et.readAsArrayBuffer(j),at}function st(j){var et=new FileReader,at=dt(et);return et.readAsText(j),at}function it(j){for(var et=new Uint8Array(j),at=new Array(et.length),pt=0;pt-1?et:j}function It(j,et){et=et||{};var at=et.body;if(j instanceof It){if(j.bodyUsed)throw new TypeError("Already read");this.url=j.url,this.credentials=j.credentials,et.headers||(this.headers=new ct(j.headers)),this.method=j.method,this.mode=j.mode,this.signal=j.signal,!at&&j._bodyInit!=null&&(at=j._bodyInit,j.bodyUsed=!0)}else this.url=String(j);if(this.credentials=et.credentials||this.credentials||"same-origin",(et.headers||!this.headers)&&(this.headers=new ct(et.headers)),this.method=At(et.method||this.method||"GET"),this.mode=et.mode||this.mode||null,this.signal=et.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&at)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(at)}It.prototype.clone=function(){return new It(this,{body:this._bodyInit})};function kt(j){var et=new FormData;return j.trim().split("&").forEach(function(at){if(at){var pt=at.split("="),gt=pt.shift().replace(/\+/g," "),mt=pt.join("=").replace(/\+/g," ");et.append(decodeURIComponent(gt),decodeURIComponent(mt))}}),et}function xt(j){var et=new ct,at=j.replace(/\r?\n[\t ]+/g," ");return at.split(/\r?\n/).forEach(function(pt){var gt=pt.split(":"),mt=gt.shift().trim();if(mt){var wt=gt.join(":").trim();et.append(mt,wt)}}),et}St.call(It.prototype);function $t(j,et){et||(et={}),this.type="default",this.status=et.status===void 0?200:et.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in et?et.statusText:"OK",this.headers=new ct(et.headers),this.url=et.url||"",this._initBody(j)}St.call($t.prototype),$t.prototype.clone=function(){return new $t(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},$t.error=function(){var j=new $t(null,{status:0,statusText:""});return j.type="error",j};var Ot=[301,302,303,307,308];$t.redirect=function(j,et){if(Ot.indexOf(et)===-1)throw new RangeError("Invalid status code");return new $t(null,{status:et,headers:{location:j}})},h.DOMException=d.DOMException;try{new h.DOMException}catch{h.DOMException=function(et,at){this.message=et,this.name=at;var pt=Error(et);this.stack=pt.stack},h.DOMException.prototype=Object.create(Error.prototype),h.DOMException.prototype.constructor=h.DOMException}function yt(j,et){return new Promise(function(at,pt){var gt=new It(j,et);if(gt.signal&>.signal.aborted)return pt(new h.DOMException("Aborted","AbortError"));var mt=new XMLHttpRequest;function wt(){mt.abort()}mt.onload=function(){var Et={status:mt.status,statusText:mt.statusText,headers:xt(mt.getAllResponseHeaders()||"")};Et.url="responseURL"in mt?mt.responseURL:Et.headers.get("X-Request-URL");var ot="response"in mt?mt.response:mt.responseText;at(new $t(ot,Et))},mt.onerror=function(){pt(new TypeError("Network request failed"))},mt.ontimeout=function(){pt(new TypeError("Network request failed"))},mt.onabort=function(){pt(new h.DOMException("Aborted","AbortError"))},mt.open(gt.method,gt.url,!0),gt.credentials==="include"?mt.withCredentials=!0:gt.credentials==="omit"&&(mt.withCredentials=!1),"responseType"in mt&&_.blob&&(mt.responseType="blob"),gt.headers.forEach(function(Et,ot){mt.setRequestHeader(ot,Et)}),gt.signal&&(gt.signal.addEventListener("abort",wt),mt.onreadystatechange=function(){mt.readyState===4&>.signal.removeEventListener("abort",wt)}),mt.send(typeof gt._bodyInit>"u"?null:gt._bodyInit)})}return yt.polyfill=!0,d.fetch||(d.fetch=yt,d.Headers=ct,d.Request=It,d.Response=$t),h.Headers=ct,h.Request=It,h.Response=$t,h.fetch=yt,Object.defineProperty(h,"__esModule",{value:!0}),h})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var c=a;e=c.fetch,e.default=c.fetch,e.fetch=c.fetch,e.Headers=c.Headers,e.Request=c.Request,e.Response=c.Response,o.exports=e})(browserPonyfill,browserPonyfill.exports);dist.rustEnum([dist.struct([],"uninitialized"),dist.struct([dist.option(dist.publicKey(),"authorityAddress")],"buffer"),dist.struct([dist.publicKey("programdataAddress")],"program"),dist.struct([dist.u64("slot"),dist.option(dist.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,dist.u32());dist.struct([dist.publicKey("authority"),dist.vecU8("data")]);function uint64(o){return new WrappedLayout(blob(8),e=>u64$1.fromBuffer(e),e=>e.toBuffer(),o)}function publicKey$3(o){return new WrappedLayout(blob(32),e=>new PublicKey(e),e=>e.toBuffer(),o)}function coption(o,e){return new COptionLayout(o,e)}class WrappedLayout extends Layout_2{constructor(e,s,a,c){super(e.span,c),this.layout=e,this.decoder=s,this.encoder=a}decode(e,s){return this.decoder(this.layout.decode(e,s))}encode(e,s,a){return this.layout.encode(this.encoder(e),s,a)}getSpan(e,s){return this.layout.getSpan(e,s)}}class COptionLayout extends Layout_2{constructor(e,s){super(-1,s),this.layout=e,this.discriminator=u32()}encode(e,s,a=0){return e==null?this.layout.span+this.discriminator.encode(0,s,a):(this.discriminator.encode(1,s,a),this.layout.encode(e,s,a+4)+4)}decode(e,s=0){const a=this.discriminator.decode(e,s);if(a===0)return null;if(a===1)return this.layout.decode(e,s+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(e,s=0){return this.layout.getSpan(e,s+4)+4}}let u64$1=class sr extends BN{toBuffer(){const e=super.toArray().reverse(),s=Buffer.from(e);if(s.length===8)return s;if(s.length>=8)throw new Error("u64 too large");const a=Buffer.alloc(8);return s.copy(a),a}static fromBuffer(e){if(e.length!==8)throw new Error(`Invalid buffer length: ${e.length}`);return new sr([...e].reverse().map(s=>`00${s.toString(16)}`.slice(-2)).join(""),16)}};struct([publicKey$3("mint"),publicKey$3("owner"),uint64("amount"),coption(publicKey$3(),"delegate"),(o=>{const e=union(u8("discriminator"),null,o);return e.addVariant(0,struct([]),"uninitialized"),e.addVariant(1,struct([]),"initialized"),e.addVariant(2,struct([]),"frozen"),e})("state"),coption(uint64(),"isNative"),uint64("delegatedAmount"),coption(publicKey$3(),"closeAuthority")]);SystemProgram.programId;new PublicKey("11111111111111111111111111111111");const TOKEN_PROGRAM_ID=new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");new PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");const ASSOCIATED_TOKEN_PROGRAM_ID=new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");new PublicKey("So11111111111111111111111111111111111111112");new PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP");const encodeDecode=o=>{const e=o.decode.bind(o),s=o.encode.bind(o);return{decode:e,encode:s}},bigInt=o=>e=>{const s=blob$2(o,e),{encode:a,decode:c}=encodeDecode(s),d=s;return d.decode=(h,_)=>{const b=c(h,_);return toBigIntLE_1(Buffer.from(b))},d.encode=(h,_,b)=>{const $=toBufferLE_1(h,o);return a($,_,b)},d},u64=bigInt(8),bool=o=>{const e=u8$2(o),{encode:s,decode:a}=encodeDecode(e),c=e;return c.decode=(d,h)=>!!a(d,h),c.encode=(d,h,_)=>{const b=Number(d);return s(b,h,_)},c},publicKey=o=>{const e=blob$2(32,o),{encode:s,decode:a}=encodeDecode(e),c=e;return c.decode=(d,h)=>{const _=a(d,h);return new PublicKey(_)},c.encode=(d,h,_)=>{const b=d.toBuffer();return s(b,h,_)},c};class TokenError extends Error{constructor(e){super(e)}}class TokenAccountNotFoundError extends TokenError{constructor(){super(...arguments),this.name="TokenAccountNotFoundError"}}class TokenInvalidAccountError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidAccountError"}}class TokenInvalidAccountOwnerError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidAccountOwnerError"}}class TokenInvalidAccountSizeError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidAccountSizeError"}}class TokenInvalidMintError extends TokenError{constructor(){super(...arguments),this.name="TokenInvalidMintError"}}class TokenOwnerOffCurveError extends TokenError{constructor(){super(...arguments),this.name="TokenOwnerOffCurveError"}}var AccountType;(function(o){o[o.Uninitialized=0]="Uninitialized",o[o.Mint=1]="Mint",o[o.Account=2]="Account"})(AccountType||(AccountType={}));const ACCOUNT_TYPE_SIZE=1,MultisigLayout=struct$2([u8$2("m"),u8$2("n"),bool("isInitialized"),publicKey("signer1"),publicKey("signer2"),publicKey("signer3"),publicKey("signer4"),publicKey("signer5"),publicKey("signer6"),publicKey("signer7"),publicKey("signer8"),publicKey("signer9"),publicKey("signer10"),publicKey("signer11")]),MULTISIG_SIZE=MultisigLayout.span;var AccountState;(function(o){o[o.Uninitialized=0]="Uninitialized",o[o.Initialized=1]="Initialized",o[o.Frozen=2]="Frozen"})(AccountState||(AccountState={}));const AccountLayout=struct$2([publicKey("mint"),publicKey("owner"),u64("amount"),u32$2("delegateOption"),publicKey("delegate"),u8$2("state"),u32$2("isNativeOption"),u64("isNative"),u64("delegatedAmount"),u32$2("closeAuthorityOption"),publicKey("closeAuthority")]),ACCOUNT_SIZE=AccountLayout.span;async function getAccount(o,e,s,a=TOKEN_PROGRAM_ID){const c=await o.getAccountInfo(e,s);return unpackAccount(e,c,a)}function unpackAccount(o,e,s=TOKEN_PROGRAM_ID){if(!e)throw new TokenAccountNotFoundError;if(!e.owner.equals(s))throw new TokenInvalidAccountOwnerError;if(e.data.lengthACCOUNT_SIZE){if(e.data.length===MULTISIG_SIZE)throw new TokenInvalidAccountSizeError;if(e.data[ACCOUNT_SIZE]!=AccountType.Account)throw new TokenInvalidAccountError;c=e.data.slice(ACCOUNT_SIZE+ACCOUNT_TYPE_SIZE)}return{address:o,mint:a.mint,owner:a.owner,amount:a.amount,delegate:a.delegateOption?a.delegate:null,delegatedAmount:a.delegatedAmount,isInitialized:a.state!==AccountState.Uninitialized,isFrozen:a.state===AccountState.Frozen,isNative:!!a.isNativeOption,rentExemptReserve:a.isNativeOption?a.isNative:null,closeAuthority:a.closeAuthorityOption?a.closeAuthority:null,tlvData:c}}const MintLayout=struct$2([u32$2("mintAuthorityOption"),publicKey("mintAuthority"),u64("supply"),u8$2("decimals"),bool("isInitialized"),u32$2("freezeAuthorityOption"),publicKey("freezeAuthority")]),MINT_SIZE=MintLayout.span;async function getMint(o,e,s,a=TOKEN_PROGRAM_ID){const c=await o.getAccountInfo(e,s);return unpackMint(e,c,a)}function unpackMint(o,e,s=TOKEN_PROGRAM_ID){if(!e)throw new TokenAccountNotFoundError;if(!e.owner.equals(s))throw new TokenInvalidAccountOwnerError;if(e.data.lengthMINT_SIZE){if(e.data.length<=ACCOUNT_SIZE)throw new TokenInvalidAccountSizeError;if(e.data.length===MULTISIG_SIZE)throw new TokenInvalidAccountSizeError;if(e.data[ACCOUNT_SIZE]!=AccountType.Mint)throw new TokenInvalidMintError;c=e.data.slice(ACCOUNT_SIZE+ACCOUNT_TYPE_SIZE)}return{address:o,mintAuthority:a.mintAuthorityOption?a.mintAuthority:null,supply:a.supply,decimals:a.decimals,isInitialized:a.isInitialized,freezeAuthority:a.freezeAuthorityOption?a.freezeAuthority:null,tlvData:c}}async function getAssociatedTokenAddress(o,e,s=!1,a=TOKEN_PROGRAM_ID,c=ASSOCIATED_TOKEN_PROGRAM_ID){if(!s&&!PublicKey.isOnCurve(e.toBuffer()))throw new TokenOwnerOffCurveError;const[d]=await PublicKey.findProgramAddress([e.toBuffer(),a.toBuffer(),o.toBuffer()],c);return d}function getAssociatedTokenAddressSync(o,e,s=!1,a=TOKEN_PROGRAM_ID,c=ASSOCIATED_TOKEN_PROGRAM_ID){if(!s&&!PublicKey.isOnCurve(e.toBuffer()))throw new TokenOwnerOffCurveError;const[d]=PublicKey.findProgramAddressSync([e.toBuffer(),a.toBuffer(),o.toBuffer()],c);return d}var or;const BASE_RATE=(or=fallIdl.constants.find(o=>o.name==="BASE_RATE"))==null?void 0:or.value,AUTHORITY_SEED="a",LIQUIDITY_SEED="b",LENDING_AUTHORITY_SEED="d",LENDING_TOKEN_SEED="e",BORROW_TOKEN_SEED="f",BORROWER_AUTHORITY_SEED="g",COLLATERAL_TOKEN_SEED="h",LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED="i",BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED="j";async function createPool(o,e,s,a,c,d){try{console.log("Step 1: Creating provider");const h=new AnchorProvider(e,o,{commitment:"confirmed",preflightCommitment:"confirmed"}),_=new Program(fallIdl,h),[b]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),c.toBuffer()],_.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(AUTHORITY_SEED)],_.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(LIQUIDITY_SEED)],_.programId),nt=await index.token.associatedAddress({mint:a,owner:$}),rt=await index.token.associatedAddress({mint:c,owner:$}),[tt]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],_.programId),[ct]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],_.programId),[ht]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],_.programId),[dt]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],_.programId),lt=await index.token.associatedAddress({mint:a,owner:tt}),st=await index.token.associatedAddress({mint:c,owner:tt}),[it]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],_.programId),[_t]=PublicKey.findProgramAddressSync([b.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],_.programId),St=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});console.log("Step 1: Creating pool...");let vt="";await accountExists$1(e,b)?console.log("Pool already exists, skipping..."):(vt=await _.methods.createPool(d).accounts({amm:s,mintA:a,mintB:c,pool:b,poolAuthority:$,mintLiquidity:_e,poolAccountA:nt,poolAccountB:rt,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([St]).rpc({commitment:"confirmed"}),await e.confirmTransaction(vt,"confirmed"),console.log("Transaction signature:",vt)),console.log("Step 2: Initializing lending pool...");let At="";await accountExists$1(e,lt)?console.log("Lending pool 1 already initialized, skipping..."):(At=await _.methods.initLendingPool1().accounts({pool:b,mintA:a,mintB:c,lendingPoolAuthority:tt,lendingPoolTokenA:lt,lendingPoolTokenB:st,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).rpc(),await e.confirmTransaction(At,"confirmed")),console.log("Step 3: Initializing lending pool...");let It="";await accountExists$1(e,ct)?console.log("Lending pool 2 already initialized, skipping..."):(It=await _.methods.initLendingPool2().accounts({pool:b,lendingPoolAuthority:tt,lendingReceiptTokenMint:ct,borrowReceiptTokenMint:ht,collateralReceiptTokenMint:dt,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).rpc(),await e.confirmTransaction(It,"confirmed")),console.log("Step 4: Initializing lending pool...");let kt="";return await accountExists$1(e,it)?console.log("Lending pool 3 already initialized, skipping..."):(kt=await _.methods.initLendingPool3().accounts({pool:b,lendingPoolAuthority:tt,lenderLendingBlockHeightMint:it,borrowerBorrowBlockHeightMint:_t,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).rpc(),await e.confirmTransaction(kt,"confirmed")),{tx:vt,initTx1:At,initTx2:It,initTx3:kt}}catch(h){console.error("Error",h)}return{tx:"",initTx1:"",initTx2:"",initTx3:""}}async function accountExists$1(o,e){return await o.getAccountInfo(e)!==null}const PoolCreateForm=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),{amm:s}=useAmm(),[a,c]=reactExports.useState(""),[d,h]=reactExports.useState(!1),[_,b]=reactExports.useState(""),[$,_e]=reactExports.useState({mintA:"",mintB:"",fee:"500"}),nt=async rt=>{if(rt.preventDefault(),c(""),b(""),h(!0),!o){c("Please connect your wallet first"),h(!1);return}if(!s){c("Please select an AMM first"),h(!1);return}try{const tt=new PublicKey(s.pubkey),ct=new PublicKey($.mintA),ht=new PublicKey($.mintB),dt=await createPool(o,e,tt,ct,ht,Number($.fee));console.log(`Transaction URL: https://explorer.solana.com/tx/${dt}`),b(dt.toString()),_e({mintA:"",mintB:"",fee:"500"})}catch(tt){console.error("Error creating pool:",tt),c(tt instanceof Error?tt.message:"Failed to create pool")}finally{h(!1)}};return jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("div",{className:"create-amm-container",children:[jsxRuntimeExports.jsx("h2",{children:"Create Pool"}),a&&jsxRuntimeExports.jsx("div",{className:"error-message",children:a}),_&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Pool created successfully!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${_}`,target:"_blank",rel:"noopener noreferrer",children:"View transaction"})]}),jsxRuntimeExports.jsxs("form",{onSubmit:nt,className:"form",children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"AMM Pubkey:"}),jsxRuntimeExports.jsx("input",{type:"text",value:s?s.pubkey:"",readOnly:!0,disabled:!0})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Token A Mint Address:"}),jsxRuntimeExports.jsx("input",{type:"text",value:$.mintA,onChange:rt=>_e({...$,mintA:rt.target.value}),placeholder:"Enter token A mint address",required:!0,disabled:d})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Token B Mint Address:"}),jsxRuntimeExports.jsx("input",{type:"text",value:$.mintB,onChange:rt=>_e({...$,mintB:rt.target.value}),placeholder:"Enter token B mint address",required:!0,disabled:d})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Fee (in basis points, 1-10000, default: 500 or 5%):"}),jsxRuntimeExports.jsx("input",{type:"text",value:$.fee,onChange:rt=>_e({...$,fee:rt.target.value}),placeholder:"500",required:!0,disabled:d})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:d||!o,children:d?"Creating...":"Create Pool"})]})]})})};async function getPoolList(o,e){try{const s=new AnchorProvider(e,o,{preflightCommitment:"confirmed"});return(await new Program(fallIdl,s).account.pool.all()).map(d=>({pubkey:d.publicKey.toString(),amm:d.account.amm.toString(),mintA:d.account.mintA.toString(),mintB:d.account.mintB.toString(),fee:d.account.fee.toString(),minCollateralRatio:d.account.minCollateralRatio.toString(),tokenAAmount:d.account.tokenAAmount.toString(),tokenBAmount:d.account.tokenBAmount.toString()}))}catch(s){throw console.error("Error fetching pool accounts:",s),s}}async function getPoolDetail(o,e,s){try{const a=new PublicKey(e.pubkey),c=new PublicKey(e.mintA),d=new PublicKey(e.mintB),[h]=PublicKey.findProgramAddressSync([new PublicKey(e.amm).toBuffer(),new PublicKey(e.mintA).toBuffer(),new PublicKey(e.mintB).toBuffer(),Buffer.from(AUTHORITY_SEED)],new PublicKey(fallIdl.address)),_=await getAssociatedTokenAddress(new PublicKey(e.mintA),h,!0),b=await getAssociatedTokenAddress(new PublicKey(e.mintB),h,!0),[$]=PublicKey.findProgramAddressSync([a.toBuffer(),s.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],new PublicKey(fallIdl.address)),_e=await getAccount(o,_),nt=await getAccount(o,b),rt=Number(_e.amount),tt=Number(nt.amount),ct=tt/rt,ht=rt/tt,[dt]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],new PublicKey(fallIdl.address)),[lt]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],new PublicKey(fallIdl.address)),[st]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],new PublicKey(fallIdl.address)),[it]=PublicKey.findProgramAddressSync([a.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],new PublicKey(fallIdl.address)),_t=await getAssociatedTokenAddress(c,dt,!0),St=await getAssociatedTokenAddress(d,dt,!0),vt=await getAccount(o,_t),At=await getAccount(o,St),It=await getMint(o,lt),kt=await getMint(o,st),xt=await getMint(o,it);console.log("walletPublicKey",s);const $t=await getAssociatedTokenAddressSync(c,s,!0),Ot=await getAssociatedTokenAddress(d,s,!0),yt=await getAccount(o,$t),j=await getAccount(o,Ot),et=await getUserTokenAmount$1(o,$,lt),at=await getUserTokenAmount$1(o,$,st),pt=await getUserTokenAmount$1(o,$,it);return{pool:{aToB:ct,bToA:ht,tokenAAmount:rt,tokenBAmount:tt},lendingPool:{tokenAAmount:Number(vt.amount),tokenBAmount:Number(At.amount),lendingReceiptSupply:Number(It.supply),borrowReceiptSupply:Number(kt.supply),collateralReceiptSupply:Number(xt.supply),addresses:{lendingReceipt:lt.toString(),borrowReceipt:st.toString(),collateralReceipt:it.toString()}},userAssets:{tokenAAmount:yt.amount.toString(),tokenBAmount:j.amount.toString(),lendingReceiptAmount:et.toString(),borrowReceiptAmount:at.toString(),collateralReceiptAmount:pt.toString()}}}catch(a){throw console.error("Error getting lending pool details:",a),a}}async function getUserTokenAmount$1(o,e,s){try{const a=await getAssociatedTokenAddress(s,e,!0),c=await getAccount(o,a);return Number(c.amount)}catch(a){return console.log("getUserTokenAmount",a),0}}async function swap(o,e,s,a,c,d,h,_,b){try{const $=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),_e=new Program(fallIdl,$),[nt]=PublicKey.findProgramAddressSync([a.toBuffer(),c.toBuffer(),d.toBuffer(),Buffer.from(AUTHORITY_SEED)],_e.programId),rt=await getAssociatedTokenAddress(c,nt,!0),tt=await getAssociatedTokenAddress(d,nt,!0),ct=await getAssociatedTokenAddress(c,o.publicKey,!0),ht=await getAssociatedTokenAddress(d,o.publicKey,!0);return await _e.methods.swapExactTokensForTokens(h,new bnExports.BN(_),new bnExports.BN(b)).accounts({amm:a,pool:s,poolAuthority:nt,trader:o.publicKey,mintA:c,mintB:d,poolAccountA:rt,poolAccountB:tt,traderAccountA:ct,traderAccountB:ht,payer:o.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc()}catch($){throw console.error("Error in swap:",$),$}}const SwapForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(!0),[_e,nt]=reactExports.useState({inputAmount:"",minOutputAmount:""}),rt=async tt=>{tt.preventDefault(),_(""),d(!0);try{const ct=parseFloat(_e.inputAmount),ht=parseFloat(_e.minOutputAmount),dt=await swap(s,a,new PublicKey(o.pubkey),new PublicKey(o.amm),new PublicKey(o.mintA),new PublicKey(o.mintB),b,ct,ht);e(dt),nt({inputAmount:"",minOutputAmount:""})}catch(ct){console.error("Error in swap:",ct),_(ct instanceof Error?ct.message:"Failed to swap")}finally{d(!1)}};return jsxRuntimeExports.jsxs("form",{onSubmit:rt,className:"swap-form",children:[h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),jsxRuntimeExports.jsx("div",{className:"form-group",children:jsxRuntimeExports.jsxs("div",{className:"swap-direction",children:[jsxRuntimeExports.jsx("button",{type:"button",className:`direction-button ${b?"active":""}`,onClick:()=>$(!0),children:"A → B"}),jsxRuntimeExports.jsx("button",{type:"button",className:`direction-button ${b?"":"active"}`,onClick:()=>$(!1),children:"B → A"})]})}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Input Amount:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:_e.inputAmount,onChange:tt=>nt({..._e,inputAmount:tt.target.value}),placeholder:`Enter amount for token ${b?"A":"B"}`,required:!0,disabled:c})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Minimum Output Amount:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:_e.minOutputAmount,onChange:tt=>nt({..._e,minOutputAmount:tt.target.value}),placeholder:`Minimum amount of token ${b?"B":"A"}`,required:!0,disabled:c})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:c||!s,children:c?"Swapping...":"Swap"})]})};async function depositLiquidity(o,e,s,a,c,d,h,_){try{const b=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),$=new Program(fallIdl,b),[_e]=PublicKey.findProgramAddressSync([a.toBuffer(),c.toBuffer(),d.toBuffer(),Buffer.from(AUTHORITY_SEED)],$.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LIQUIDITY_SEED)],$.programId),rt=await getAssociatedTokenAddress(c,_e,!0),tt=await getAssociatedTokenAddress(d,_e,!0),ct=await getAssociatedTokenAddress(c,o.publicKey,!0),ht=await getAssociatedTokenAddress(d,o.publicKey,!0),dt=await getAssociatedTokenAddress(nt,o.publicKey,!0);return await $.methods.depositLiquidity(new bnExports.BN(h),new bnExports.BN(_)).accounts({pool:s,poolAuthority:_e,mintA:c,mintB:d,depositor:o.publicKey,mintLiquidity:nt,poolAccountA:rt,poolAccountB:tt,depositorAccountLiquidity:dt,depositorAccountA:ct,depositorAccountB:ht,payer:o.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc({skipPreflight:!1,maxRetries:3,commitment:"confirmed"})}catch(b){throw console.error("Error in depositLiquidity:",b),b}}const DepositLiquidityForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState({amountA:"",amountB:""}),_e=async nt=>{nt.preventDefault(),_(""),d(!0);try{const rt=parseFloat(b.amountA),tt=parseFloat(b.amountB),ct=await depositLiquidity(s,a,new PublicKey(o.pubkey),new PublicKey(o.amm),new PublicKey(o.mintA),new PublicKey(o.mintB),rt,tt);e(ct),$({amountA:"",amountB:""})}catch(rt){console.error("Error depositing liquidity:",rt),_(rt instanceof Error?rt.message:"Failed to deposit liquidity")}finally{d(!1)}};return jsxRuntimeExports.jsxs("form",{onSubmit:_e,className:"deposit-form",children:[h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount Token A:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:b.amountA,onChange:nt=>$({...b,amountA:nt.target.value}),placeholder:"Enter amount for token A",required:!0,disabled:c})]}),jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount Token B:"}),jsxRuntimeExports.jsx("input",{type:"number",step:"any",value:b.amountB,onChange:nt=>$({...b,amountB:nt.target.value}),placeholder:"Enter amount for token B",required:!0,disabled:c})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:c||!s,children:c?"Depositing...":"Confirm Deposit"})]})};async function initPool(o,e,s,a,c){try{const d=new AnchorProvider(e,o,{commitment:"confirmed",preflightCommitment:"confirmed"}),h=new Program(fallIdl,d),[_]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],h.programId),[b]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],h.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],h.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],h.programId),nt=await index.token.associatedAddress({mint:a,owner:_}),rt=await index.token.associatedAddress({mint:c,owner:_}),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),[ct]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),ht=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});console.log("Step 1: Initializing lending pool...");let dt="";await accountExists(e,nt)?console.log("Lending pool 1 already initialized, skipping..."):(dt=await h.methods.initLendingPool1().accounts({pool:s,mintA:a,mintB:c,lendingPoolAuthority:_,lendingPoolTokenA:nt,lendingPoolTokenB:rt,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).preInstructions([ht]).rpc({commitment:"confirmed"}),await e.confirmTransaction(dt,"confirmed")),console.log("Step 2: Initializing lending pool...");let lt="";await accountExists(e,_e)?console.log("Lending pool 2 already initialized, skipping..."):(lt=await h.methods.initLendingPool2().accounts({pool:s,lendingPoolAuthority:_,lendingReceiptTokenMint:b,borrowReceiptTokenMint:$,collateralReceiptTokenMint:_e,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).preInstructions([ht]).rpc({commitment:"confirmed"}),await e.confirmTransaction(lt,"confirmed")),console.log("Step 3: Initializing lending pool...");let st="";return await accountExists(e,tt)?console.log("Lending pool 3 already initialized, skipping..."):(st=await h.methods.initLendingPool3().accounts({pool:s,lendingPoolAuthority:_,lenderLendingBlockHeightMint:tt,borrowerBorrowBlockHeightMint:ct,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId,rent:SYSVAR_RENT_PUBKEY}).preInstructions([ht]).rpc({commitment:"confirmed"}),await e.confirmTransaction(st,"confirmed")),{initTx1:dt,initTx2:lt,initTx3:st}}catch(d){console.error("Error",d)}return{initTx1:"",initTx2:"",initTx3:""}}async function accountExists(o,e){return await o.getAccountInfo(e)!==null}const InitPoolForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),{amm:c}=useAmm(),[d,h]=reactExports.useState(""),[_,b]=reactExports.useState(!1),$=async()=>{if(h(""),b(!0),!s){h("Please connect your wallet first"),b(!1);return}if(!c){h("Please select an AMM first"),b(!1);return}try{const _e=new PublicKey(o.pubkey),nt=new PublicKey(o.mintA),rt=new PublicKey(o.mintB),tt=await initPool(s,a,_e,nt,rt);console.log(`Transaction URL: https://explorer.solana.com/tx/${tt}`),e&&e(tt.toString())}catch(_e){console.error("Error initializing pool:",_e),h(_e instanceof Error?_e.message:"Failed to initialize pool")}finally{b(!1)}};return jsxRuntimeExports.jsxs("div",{className:"init-pool-container",children:[d&&jsxRuntimeExports.jsx("div",{className:"error-message",children:d}),jsxRuntimeExports.jsx("button",{onClick:$,className:"submit-button",disabled:_||!s,children:_?"Initializing...":"Initialize Pool"})]})},PoolItem=({pool:o,onTxSuccess:e})=>{const{connection:s}=useConnection(),{publicKey:a}=useWallet(),[c,d]=reactExports.useState("none"),[h,_]=reactExports.useState(null),[b,$]=reactExports.useState(!1),_e=async()=>{try{$(!0);const nt=await getPoolDetail(s,{pubkey:o.pubkey.toString(),amm:o.amm.toString(),mintA:o.mintA.toString(),mintB:o.mintB.toString()},a||new PublicKey(""));_(nt)}catch(nt){console.error("Error fetching pool prices:",nt)}finally{$(!1)}};return reactExports.useEffect(()=>{_e()},[o,s,a]),jsxRuntimeExports.jsxs("div",{className:"pool-item",children:[jsxRuntimeExports.jsx("div",{className:"pool-header",children:jsxRuntimeExports.jsx("h3",{children:"Pool Details"})}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"AMM Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.amm.toString(),children:o.amm.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-info",children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Pool Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.pubkey.toString(),children:o.pubkey.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintA.toString(),children:o.mintA.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintB.toString(),children:o.mintB.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Fee:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.fee.toString(),children:o.fee})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Min Collateral Ratio:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.minCollateralRatio.toString(),children:o.minCollateralRatio})]})]}),jsxRuntimeExports.jsx("div",{className:"pool-actions",children:jsxRuntimeExports.jsx("button",{className:"action-button",onClick:()=>d(c==="initPool"?"none":"initPool"),children:c==="initPool"?"Hide Init Pool":"Init Pool"})}),c==="initPool"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(InitPoolForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),jsxRuntimeExports.jsxs("div",{className:"pool-price-info",children:[jsxRuntimeExports.jsx("h4",{children:"Pool Liquidity & Prices"}),b?jsxRuntimeExports.jsx("div",{className:"loading-prices",children:"Loading prices..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A Reserve:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B Reserve:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenBAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (A → B):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 A = ",h.pool.aToB.toFixed(6)," B"]})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (B → A):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 B = ",h.pool.bToA.toFixed(6)," A"]})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load prices"})]}),jsxRuntimeExports.jsxs("div",{className:"pool-actions",children:[jsxRuntimeExports.jsx("button",{className:"action-button",onClick:()=>d(c==="deposit"?"none":"deposit"),children:c==="deposit"?"Hide Deposit":"Deposit"}),jsxRuntimeExports.jsx("button",{className:"action-button",onClick:()=>d(c==="swap"?"none":"swap"),children:c==="swap"?"Hide Swap":"Swap"})]}),c==="deposit"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(DepositLiquidityForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="swap"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(SwapForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info",children:[jsxRuntimeExports.jsx("h4",{children:"Lending Pool"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenAAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenBAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenBAmount.toFixed(6)})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]})]})},PoolList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),_e=async()=>{if(o){d(!0);try{const rt=await getPoolList(o,e);a(rt)}catch(rt){console.error("Error fetching pools:",rt),_(rt instanceof Error?rt.message:"Failed to fetch pools")}finally{d(!1)}}};reactExports.useEffect(()=>{_e()},[o,e]);const nt=rt=>{$(rt),_e()};return jsxRuntimeExports.jsxs("div",{className:"pool-list-container",children:[jsxRuntimeExports.jsx("h2",{children:"Liquidity Pools"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Transaction successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${b}`,target:"_blank",rel:"noopener noreferrer",children:"View on Explorer"})]}),c?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pools..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"empty-state",children:jsxRuntimeExports.jsx("p",{children:"No pools found"})}):jsxRuntimeExports.jsx("div",{className:"pool-list",children:s.map(rt=>jsxRuntimeExports.jsx(PoolItem,{pool:rt,onTxSuccess:nt},rt.pubkey.toString()))})]})};async function liquidate(o,e,s,a){try{console.log("Executing liquidate...");const c=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),d=new Program(fallIdl,c),h=await d.account.pool.fetch(s),_=h.mintA,b=h.mintB,[$]=PublicKey.findProgramAddressSync([h.amm.toBuffer(),_.toBuffer(),b.toBuffer(),Buffer.from(AUTHORITY_SEED)],d.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],d.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],d.programId),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],d.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),a.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],d.programId),ct=await index.token.associatedAddress({mint:nt,owner:tt}),ht=await index.token.associatedAddress({mint:rt,owner:tt}),dt=getAssociatedTokenAddressSync(b,c.wallet.publicKey,!0),lt=ComputeBudgetProgram.setComputeUnitLimit({units:2e8});console.log("Sending liquidate transaction...");const st=await d.methods.liquidate().accounts({pool:s,poolAuthority:$,mintA:_,mintB:b,lendingPoolAuthority:_e,borrowReceiptTokenMint:nt,collateralReceiptTokenMint:rt,trader:c.wallet.publicKey,traderAccountB:dt,borrower:a,borrowerBorrowReceiptToken:ct,borrowerCollateralReceiptToken:ht,payer:c.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([lt]).rpc();return console.log("Liquidate transaction signature:",st),{tx:st,accounts:{poolKey:s,poolAuthority:$,lendingPoolAuthority:_e,borrowReceiptTokenMint:nt,collateralReceiptTokenMint:rt,traderAccountB:dt,borrowerBorrowReceiptToken:ct,borrowerCollateralReceiptToken:ht}}}catch(c){throw console.error("Error in liquidate:",c),c instanceof Error&&console.error("Error details:",{message:c.message,stack:c.stack}),c}}async function getPendingLiquidation(o,e,s){try{const a=new AnchorProvider(s,o,{preflightCommitment:"confirmed"}),c=new Program(fallIdl,a),d=await c.account.pool.fetch(e),h=d.mintA,_=d.mintB,$=(await getPoolDetail(s,{pubkey:e.toString(),amm:d.amm.toString(),mintA:h.toString(),mintB:_.toString()},o.publicKey)).pool.aToB,[_e]=PublicKey.findProgramAddressSync([e.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],c.programId),[nt]=PublicKey.findProgramAddressSync([e.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],c.programId),rt=await s.getTokenLargestAccounts(_e),tt=[];for(const ct of rt.value){if(ct.amount=="0")continue;const ht=await getAccount(s,ct.address),dt=ht.owner,lt=await getUserTokenAmount(s,dt,nt);console.log("borrowReceiptToken amount",ht.amount.toString()),console.log("collateralReceiptTokenAmount",lt),console.log("Number(borrowTokenAccountInfo.amount) * 2*poolPrice",Number(ht.amount)*2*$),lt{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState(""),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),[_e,nt]=reactExports.useState(""),[rt,tt]=reactExports.useState([]),[ct,ht]=reactExports.useState(!1),dt=async st=>{if(st.preventDefault(),!o||!h){a("Please connect wallet and enter pool address");return}try{a(""),ht(!0);const it=new PublicKey(h),_t=await getPendingLiquidation(o,it,e);tt(_t)}catch(it){console.error("Error fetching pending liquidations:",it),a(it instanceof Error?it.message:"Failed to fetch pending liquidations"),tt([])}finally{ht(!1)}},lt=async st=>{if(st.preventDefault(),a(""),d(!0),!o){a("Please connect your wallet first"),d(!1);return}let it,_t;try{it=new PublicKey(h),_t=new PublicKey(b)}catch{a("Invalid pool or borrower address"),d(!1);return}try{const St=await liquidate(o,e,it,_t);console.log(`Transaction URL: https://explorer.solana.com/tx/${St.tx}`),nt(St.tx),_(""),$("")}catch(St){console.error("Error liquidating position:",St),a(St instanceof Error?St.message:"Failed to liquidate. Please try again.")}finally{d(!1)}};return jsxRuntimeExports.jsxs("div",{className:"liquidate-container",children:[s&&jsxRuntimeExports.jsx("div",{className:"error-message",children:s}),_e&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Liquidation successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${_e}`,target:"_blank",rel:"noopener noreferrer",children:"View transaction"})]}),jsxRuntimeExports.jsxs("div",{className:"search-form",children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{htmlFor:"pool-address",children:"Pool Address:"}),jsxRuntimeExports.jsxs("div",{className:"input-with-button",children:[jsxRuntimeExports.jsx("input",{id:"pool-address",type:"text",value:h,onChange:st=>_(st.target.value),placeholder:"Enter pool address",className:"input-field"}),jsxRuntimeExports.jsx("button",{onClick:dt,disabled:ct||!o||!h,className:"search-button",children:ct?"Searching...":"Search"})]})]}),jsxRuntimeExports.jsxs("div",{className:"pending-liquidations",children:[jsxRuntimeExports.jsx("h3",{children:"Pending Liquidations"}),ct?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pending liquidations..."}):rt.length===0?jsxRuntimeExports.jsx("p",{children:"No pending liquidations found"}):jsxRuntimeExports.jsx("ul",{className:"liquidation-list",children:rt.map((st,it)=>jsxRuntimeExports.jsx("li",{className:"liquidation-item",onClick:()=>$(st.userAuthorityPda.toString()),children:jsxRuntimeExports.jsxs("div",{children:["Borrower Authority PDA: ",st.userAuthorityPda.toString()]})},it))})]})]}),jsxRuntimeExports.jsxs("form",{onSubmit:lt,className:"liquidate-form",children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{htmlFor:"borrower-address",children:"Note: The current demo does not yet support liquidation based on PDAs. The public key is not the same as the PDA. So the PDA above is useless now. U'd better to use another account to borrow and then liquidate that account with it's Public Key."}),jsxRuntimeExports.jsx("label",{htmlFor:"borrower-address",children:"Borrower Address:"}),jsxRuntimeExports.jsx("input",{id:"borrower-address",type:"text",value:b,onChange:st=>$(st.target.value),placeholder:"Enter borrower address",className:"input-field"})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:c||!o||!h||!b,children:c?"Liquidating...":"Liquidate Position"})]})]})};async function lend(o,e,s,a){try{console.log("Executing lend...");const c=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),d=new Program(fallIdl,c),h=await d.account.pool.fetch(s),_=h.mintA,b=h.mintB,[$]=PublicKey.findProgramAddressSync([h.amm.toBuffer(),_.toBuffer(),b.toBuffer(),Buffer.from(AUTHORITY_SEED)],d.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],d.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],d.programId),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],d.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],d.programId),ct=getAssociatedTokenAddressSync(_,_e,!0),ht=getAssociatedTokenAddressSync(b,_e,!0),dt=await index.token.associatedAddress({mint:_,owner:c.wallet.publicKey}),[lt]=PublicKey.findProgramAddressSync([s.toBuffer(),c.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],d.programId),st=await index.token.associatedAddress({mint:nt,owner:lt}),it=await index.token.associatedAddress({mint:tt,owner:lt});return{tx:await d.methods.lend(new BN(a)).accounts({pool:s,lendingPoolAuthority:_e,lendingPoolTokenA:ct,lendingReceiptTokenMint:nt,lenderLendingBlockHeightMint:tt,lender:c.wallet.publicKey,lenderTokenA:dt,lenderAuthority:lt,lenderLendReceiptToken:st,lenderLendingBlockHeightReceiptToken:it,payer:c.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc(),accounts:{poolAuthority:$,lendingPoolAuthority:_e,lendingReceiptTokenMint:nt,borrowReceiptTokenMint:rt,lendingPoolTokenA:ct,lendingPoolTokenB:ht,lenderTokenA:dt,lenderLendReceiptToken:st,lenderLendingBlockHeightReceiptToken:it}}}catch(c){throw console.error("Error in lend:",c),c instanceof Error&&console.error("Error details:",{message:c.message,stack:c.stack}),c}}const LendForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async nt=>{if(nt.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const rt=parseFloat(b);if(isNaN(rt)||rt<=0)throw new Error("Invalid amount");const tt=new PublicKey(o.pubkey),ct=await lend(s,a,tt,new BN(rt));console.log(`Transaction URL: https://explorer.solana.com/tx/${ct.tx}`),$(""),e(ct.tx)}catch(rt){console.error("Error lending:",rt),d(rt instanceof Error?rt.message:"Failed to lend")}finally{_(!1)}};return console.log(o),jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Lend Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:_e,children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount to Lend:"}),jsxRuntimeExports.jsx("input",{type:"number",value:b,onChange:nt=>$(nt.target.value),placeholder:"Enter amount to lend",required:!0,min:"0",step:"any",disabled:h})]}),jsxRuntimeExports.jsxs("div",{className:"lendingPool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Pool: ",o.pubkey.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token A: ",o.mintA.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token B: ",o.mintB.toString()]})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Lend"})]})]})};async function redeem(o,e,s){try{const a=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),c=new Program(fallIdl,a),d=await c.account.pool.fetch(s),h=d.mintA,_=d.mintB,[b]=PublicKey.findProgramAddressSync([d.amm.toBuffer(),h.toBuffer(),_.toBuffer(),Buffer.from(AUTHORITY_SEED)],c.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],c.programId),_e=await index.token.associatedAddress({mint:h,owner:$}),nt=await index.token.associatedAddress({mint:_,owner:$}),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_TOKEN_SEED)],c.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],c.programId),[ct]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDER_LENDING_BLOCK_HEIGHT_TOKEN_SEED)],c.programId),ht=await index.token.associatedAddress({mint:h,owner:a.wallet.publicKey}),dt=await index.token.associatedAddress({mint:_,owner:a.wallet.publicKey}),[lt]=PublicKey.findProgramAddressSync([s.toBuffer(),a.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],c.programId),st=await index.token.associatedAddress({mint:rt,owner:lt}),it=await index.token.associatedAddress({mint:ct,owner:lt});console.log("Sending redeem transaction...");const _t=await c.methods.redeem().accounts({pool:s,poolAuthority:b,mintA:h,mintB:_,lendingPoolAuthority:$,lendingPoolTokenA:_e,lendingPoolTokenB:nt,lendingReceiptTokenMint:rt,borrowReceiptTokenMint:tt,lenderLendingBlockHeightTokenMint:ct,lender:a.wallet.publicKey,lenderTokenA:ht,lenderTokenB:dt,lenderLendingReceiptToken:st,lenderLendingBlockHeightReceiptToken:it,payer:a.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc();return console.log("Redeem transaction signature:",_t),_t}catch(a){throw console.error("Error in redeem:",a),a}}const RedeemForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),b=async $=>{if($.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const _e=new PublicKey(o.pubkey),nt=await redeem(s,a,_e);console.log(`Transaction URL: https://explorer.solana.com/tx/${nt}`),e(nt)}catch(_e){console.error("Error redeeming:",_e),d(_e instanceof Error?_e.message:"Failed to redeem")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Redeem Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:b,children:[jsxRuntimeExports.jsxs("div",{className:"lending-pool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Min Collateral Ratio: ",(o.minCollateralRatio/100).toFixed(2),"%"]}),jsxRuntimeExports.jsxs("div",{children:["Base Rate: ",BASE_RATE,"%"]})]}),jsxRuntimeExports.jsx("div",{className:"warning-message",children:"Note: This will redeem all your lending receipt tokens."}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Redeem"})]})]})},LenderPoolItem=({pool:o,onTxSuccess:e})=>{const{connection:s}=useConnection(),{publicKey:a}=useWallet(),[c,d]=reactExports.useState("none"),[h,_]=reactExports.useState(null),[b,$]=reactExports.useState(!1),_e=async()=>{try{$(!0);const nt=await getPoolDetail(s,{pubkey:o.pubkey.toString(),amm:o.amm.toString(),mintA:o.mintA.toString(),mintB:o.mintB.toString()},a||new PublicKey(""));_(nt)}catch(nt){console.error("Error fetching pool prices:",nt)}finally{$(!1)}};return reactExports.useEffect(()=>{_e()},[o,s,a]),jsxRuntimeExports.jsxs("div",{className:"pool-item",children:[jsxRuntimeExports.jsx("div",{className:"pool-header",children:jsxRuntimeExports.jsx("h3",{children:"Pool Details"})}),jsxRuntimeExports.jsxs("div",{className:"pool-info",children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Pool Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.pubkey.toString(),children:o.pubkey.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintA.toString(),children:o.mintA.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintB.toString(),children:o.mintB.toString()})]})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info",children:[jsxRuntimeExports.jsx("h4",{children:"Lending Pool"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenAAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenBAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenBAmount.toFixed(6)})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-assets-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your Assets"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenA Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenAAmount})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenB Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenBAmount})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-lending-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your lending details"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"lended tokenA amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.lendingReceiptAmount})]})}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsx("div",{className:"lending-pool-actions",children:jsxRuntimeExports.jsxs("div",{className:"lending-pool-action-buttons",children:[jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="lend"?"none":"lend"),children:c==="lend"?"Hide Lend":"Lend"}),jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="redeem"?"none":"redeem"),children:c==="redeem"?"Hide Redeem":"Redeem"})]})}),jsxRuntimeExports.jsx("div",{className:"lending-pool-actions",children:jsxRuntimeExports.jsx("button",{className:"lending-pool-refresh-button",onClick:_e,disabled:b,children:b?"Loading...":"🔄 Refresh"})}),c==="lend"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(LendForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="redeem"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(RedeemForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})})]})},LenderPoolList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),_e=async()=>{if(o){d(!0);try{const rt=await getPoolList(o,e);a(rt)}catch(rt){console.error("Error fetching pools:",rt),_(rt instanceof Error?rt.message:"Failed to fetch pools")}finally{d(!1)}}};reactExports.useEffect(()=>{_e()},[o,e]);const nt=rt=>{$(rt),_e()};return jsxRuntimeExports.jsxs("div",{className:"pool-list-container",children:[jsxRuntimeExports.jsx("h2",{children:"Liquidity Pools"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Transaction successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${b}`,target:"_blank",rel:"noopener noreferrer",children:"View on Explorer"})]}),c?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pools..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"empty-state",children:jsxRuntimeExports.jsx("p",{children:"No pools found"})}):jsxRuntimeExports.jsx("div",{className:"pool-list",children:s.map(rt=>jsxRuntimeExports.jsx(LenderPoolItem,{pool:rt,onTxSuccess:nt}))})]})};async function borrow(o,e,s,a,c,d){try{console.log("Executing borrow...");const h=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),_=new Program(fallIdl,h),b=await _.account.pool.fetch(s);console.log("Pool info:",{amm:b.amm.toString(),mintA:b.mintA.toString(),mintB:b.mintB.toString()});const[$]=PublicKey.findProgramAddressSync([b.amm.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(AUTHORITY_SEED)],_.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],_.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],_.programId),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],_.programId),[tt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],_.programId),ct=await index.token.associatedAddress({mint:a,owner:$}),ht=await index.token.associatedAddress({mint:c,owner:$}),dt=await index.token.associatedAddress({mint:a,owner:_e}),lt=await index.token.associatedAddress({mint:c,owner:_e}),st=await index.token.associatedAddress({mint:a,owner:h.wallet.publicKey}),it=await index.token.associatedAddress({mint:c,owner:h.wallet.publicKey}),[_t]=PublicKey.findProgramAddressSync([s.toBuffer(),h.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],_.programId),St=await index.token.associatedAddress({mint:nt,owner:_t}),vt=await index.token.associatedAddress({mint:rt,owner:_t}),At=await index.token.associatedAddress({mint:tt,owner:_t});console.log("Sending borrow transaction...");const It=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});return await _.methods.borrow(d).accounts({pool:s,poolAuthority:$,mintA:a,mintB:c,poolAccountA:ct,poolAccountB:ht,lendingPoolAuthority:_e,lendingPoolTokenA:dt,lendingPoolTokenB:lt,borrowReceiptTokenMint:nt,collateralReceiptTokenMint:rt,borrowerBorrowBlockHeightTokenMint:tt,borrower:h.wallet.publicKey,borrowerTokenA:st,borrowerTokenB:it,borrowerBorrowReceiptToken:St,borrowerCollateralReceiptToken:vt,borrowerBorrowBlockHeightReceiptToken:At,payer:h.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([It]).rpc()}catch(h){throw console.error("Error in borrow:",h),h instanceof Error&&console.error("Error details:",{message:h.message,stack:h.stack}),h}}const BorrowForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async rt=>{if(rt.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const tt=parseFloat(b);if(isNaN(tt)||tt<=0)throw new Error("Invalid borrow amount");const ct=new PublicKey(o.pubkey),ht=new PublicKey(o.mintA),dt=new PublicKey(o.mintB),lt=await borrow(s,a,ct,ht,dt,new BN(tt));console.log(`Transaction URL: https://explorer.solana.com/tx/${lt}`),$(""),e(lt)}catch(tt){console.error("Error borrowing:",tt),d(tt instanceof Error?tt.message:"Failed to borrow")}finally{_(!1)}},nt=(o.minCollateralRatio/100).toFixed(2);return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Borrow Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:_e,children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount to Borrow (Token A):"}),jsxRuntimeExports.jsx("input",{type:"number",value:b,onChange:rt=>$(rt.target.value),placeholder:"Enter amount to borrow",required:!0,min:"0",step:"any",disabled:h})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Pool: ",o.pubkey.toString().slice(0,4),"...",o.pubkey.toString().slice(-4)]}),jsxRuntimeExports.jsxs("div",{children:["Token A (Borrow): ",o.mintA.toString().slice(0,4),"...",o.mintA.toString().slice(-4)]}),jsxRuntimeExports.jsxs("div",{children:["Token B (Collateral): ",o.mintB.toString().slice(0,4),"...",o.mintB.toString().slice(-4)]}),jsxRuntimeExports.jsxs("div",{children:["Min Collateral Ratio: ",nt,"%"]}),jsxRuntimeExports.jsxs("div",{children:["Base Rate: ",(o.fee/100).toFixed(2),"%"]})]}),jsxRuntimeExports.jsx("div",{className:"warning-message",children:"Note: Please ensure you provide sufficient collateral based on the minimum collateral ratio."}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Borrow"})]})]})};async function repay(o,e,s,a,c){try{console.log("Executing repay...");const d=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),h=new Program(fallIdl,d),_=await h.account.pool.fetch(s),[b]=PublicKey.findProgramAddressSync([_.amm.toBuffer(),a.toBuffer(),c.toBuffer(),Buffer.from(AUTHORITY_SEED)],h.programId),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],h.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROW_TOKEN_SEED)],h.programId),[nt]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],h.programId),rt=await index.token.associatedAddress({mint:a,owner:$}),tt=await index.token.associatedAddress({mint:c,owner:$}),ct=await index.token.associatedAddress({mint:a,owner:d.wallet.publicKey}),ht=await index.token.associatedAddress({mint:c,owner:d.wallet.publicKey}),[dt]=PublicKey.findProgramAddressSync([s.toBuffer(),d.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],h.programId),lt=await index.token.associatedAddress({mint:_e,owner:dt}),st=await index.token.associatedAddress({mint:nt,owner:dt}),[it]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),_t=await index.token.associatedAddress({mint:it,owner:dt});console.log("Sending repay transaction...");const St=await h.methods.repay().accounts({mintA:a,mintB:c,pool:s,poolAuthority:b,lendingPoolAuthority:$,lendingPoolTokenA:rt,lendingPoolTokenB:tt,borrowReceiptTokenMint:_e,collateralReceiptTokenMint:nt,borrowerBorrowBlockHeightMint:it,borrower:d.wallet.publicKey,borrowerTokenA:ct,borrowerTokenB:ht,borrowerAuthority:dt,borrowerBorrowReceiptToken:lt,borrowerCollateralReceiptToken:st,borrowerBorrowBlockHeightReceiptToken:_t,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).rpc();return console.log("Repay transaction signature:",St),St}catch(d){throw console.error("Error in repay:",d),d}}const RepayForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),b=async $=>{if($.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const _e=new PublicKey(o.pubkey),nt=new PublicKey(o.mintA),rt=new PublicKey(o.mintB),tt=await repay(s,a,_e,nt,rt);console.log(`Transaction URL: https://explorer.solana.com/tx/${tt}`),e(tt)}catch(_e){console.error("Error repaying:",_e),d(_e instanceof Error?_e.message:"Failed to repay")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"Repay Loan"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:b,children:[jsxRuntimeExports.jsx("div",{className:"form-group",children:jsxRuntimeExports.jsx("div",{className:"info-message",children:"Repaying your loan will return your collateral proportionally."})}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm Repay"})]})]})};async function depositCollateral(o,e,s,a,c){try{console.log("Executing borrow...");const d=new AnchorProvider(e,o,{preflightCommitment:"confirmed"}),h=new Program(fallIdl,d),[_]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(LENDING_AUTHORITY_SEED)],h.programId),b=await getAssociatedTokenAddressSync(a,_,!0),[$]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(COLLATERAL_TOKEN_SEED)],h.programId),[_e]=PublicKey.findProgramAddressSync([s.toBuffer(),Buffer.from(BORROWER_BORROW_BLOCK_HEIGHT_TOKEN_SEED)],h.programId),nt=getAssociatedTokenAddressSync(a,d.wallet.publicKey),[rt]=PublicKey.findProgramAddressSync([s.toBuffer(),d.wallet.publicKey.toBuffer(),Buffer.from(BORROWER_AUTHORITY_SEED)],h.programId),tt=await getAssociatedTokenAddressSync($,rt,!0),ct=await index.token.associatedAddress({mint:_e,owner:rt});console.log("Sending borrow transaction...");const ht=ComputeBudgetProgram.setComputeUnitLimit({units:1e6});return{tx:await h.methods.depositCollateral(c).accounts({pool:s,lendingPoolAuthority:_,lendingPoolTokenB:b,collateralReceiptTokenMint:$,borrowerBorrowBlockHeightTokenMint:_e,borrower:d.wallet.publicKey,borrowerTokenB:nt,borrowerAuthority:rt,borrowerCollateralReceiptToken:tt,borrowerBorrowBlockHeightReceiptToken:ct,payer:d.wallet.publicKey,tokenProgram:TOKEN_PROGRAM_ID,associatedTokenProgram:ASSOCIATED_TOKEN_PROGRAM_ID,systemProgram:SystemProgram.programId}).preInstructions([ht]).rpc()}}catch(d){throw console.error("Error in borrow:",d),d instanceof Error&&console.error("Error details:",{message:d.message,stack:d.stack}),d}}const DepositCollateralForm=({pool:o,onSuccess:e})=>{const s=useAnchorWallet(),{connection:a}=useConnection(),[c,d]=reactExports.useState(""),[h,_]=reactExports.useState(!1),[b,$]=reactExports.useState(""),_e=async nt=>{if(nt.preventDefault(),d(""),_(!0),!s){d("Please connect your wallet first"),_(!1);return}try{const rt=parseFloat(b);if(isNaN(rt)||rt<=0)throw new Error("Invalid amount");const tt=new PublicKey(o.pubkey),ct=new PublicKey(o.mintB),ht=await depositCollateral(s,a,tt,ct,new BN(rt));console.log(`Transaction URL: https://explorer.solana.com/tx/${ht.tx}`),$(""),e(ht.tx)}catch(rt){console.error("Error lending:",rt),d(rt instanceof Error?rt.message:"Failed to lend")}finally{_(!1)}};return jsxRuntimeExports.jsxs("div",{className:"form-wrapper",children:[jsxRuntimeExports.jsx("h3",{children:"DepositCollateral Tokens"}),c&&jsxRuntimeExports.jsx("div",{className:"error-message",children:c}),jsxRuntimeExports.jsxs("form",{onSubmit:_e,children:[jsxRuntimeExports.jsxs("div",{className:"form-group",children:[jsxRuntimeExports.jsx("label",{children:"Amount to DepositCollateral:"}),jsxRuntimeExports.jsx("input",{type:"number",value:b,onChange:nt=>$(nt.target.value),placeholder:"Enter amount of collateral to deposit",required:!0,min:"0",step:"any",disabled:h})]}),jsxRuntimeExports.jsxs("div",{className:"lendingPool-info-summary",children:[jsxRuntimeExports.jsxs("div",{children:["Pool: ",o.pubkey.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token A: ",o.mintA.toString()]}),jsxRuntimeExports.jsxs("div",{children:["Token B: ",o.mintB.toString()]})]}),jsxRuntimeExports.jsx("button",{type:"submit",className:"action-button",disabled:h||!s,children:h?"Processing...":"Confirm DepositCollateral"})]})]})},BorrowerPoolItem=({pool:o,onTxSuccess:e})=>{const{connection:s}=useConnection(),{publicKey:a}=useWallet(),[c,d]=reactExports.useState("none"),[h,_]=reactExports.useState(null),[b,$]=reactExports.useState(!1),_e=async()=>{try{$(!0);const nt=await getPoolDetail(s,{pubkey:o.pubkey.toString(),amm:o.amm.toString(),mintA:o.mintA.toString(),mintB:o.mintB.toString()},a||new PublicKey(""));_(nt)}catch(nt){console.error("Error fetching pool prices:",nt)}finally{$(!1)}};return reactExports.useEffect(()=>{_e()},[o,s,a]),jsxRuntimeExports.jsxs("div",{className:"pool-item",children:[jsxRuntimeExports.jsx("div",{className:"pool-header",children:jsxRuntimeExports.jsx("h3",{children:"Pool Details"})}),jsxRuntimeExports.jsxs("div",{className:"pool-info",children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Pool Pubkey:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.pubkey.toString(),children:o.pubkey.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token A mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintA.toString(),children:o.mintA.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Token B mint addr:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.mintB.toString(),children:o.mintB.toString()})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Min Collateral Ratio:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",title:o.minCollateralRatio.toString(),children:o.minCollateralRatio})]})]}),jsxRuntimeExports.jsxs("div",{className:"pool-price-info",children:[jsxRuntimeExports.jsx("h4",{children:"Prices"}),b?jsxRuntimeExports.jsx("div",{className:"loading-prices",children:"Loading prices..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"TokenA Amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"TokenB Amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.pool.tokenBAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (A → B):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 A = ",h.pool.aToB.toFixed(6)," B"]})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Price (B → A):"}),jsxRuntimeExports.jsxs("span",{className:"pool-value",children:["1 B = ",h.pool.bToA.toFixed(6)," A"]})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load prices"})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-info",children:[jsxRuntimeExports.jsx("h4",{children:"Lending Pool"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenAAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenAAmount.toFixed(6)})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"Lending Pool tokenBAmount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.lendingPool.tokenBAmount.toFixed(6)})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-assets-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your Assets"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenA Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenAAmount})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"tokenB Balance:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.tokenBAmount})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"user-lending-details",children:[jsxRuntimeExports.jsx("h4",{children:"Your borrowing details"}),b?jsxRuntimeExports.jsx("div",{className:"loading-lending-pool-details",children:"Loading lending pool details..."}):h?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"borrowed tokenB amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.borrowReceiptAmount})]}),jsxRuntimeExports.jsxs("div",{className:"pool-details",children:[jsxRuntimeExports.jsx("span",{className:"pool-label",children:"collateral TokenA amount:"}),jsxRuntimeExports.jsx("span",{className:"pool-value",children:h.userAssets.collateralReceiptAmount})]})]}):jsxRuntimeExports.jsx("div",{className:"error-message",children:"Failed to load lending pool details"})]}),jsxRuntimeExports.jsxs("div",{className:"lending-pool-actions",children:[jsxRuntimeExports.jsxs("div",{className:"lending-pool-action-buttons",children:[jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="depositCollateral"?"none":"depositCollateral"),children:c==="depositCollateral"?"Hide DepositCollateral":"DepositCollateral"}),jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="borrow"?"none":"borrow"),children:c==="borrow"?"Hide Borrow":"Borrow"}),jsxRuntimeExports.jsx("button",{className:"lending-pool-action-button",onClick:()=>d(c==="repay"?"none":"repay"),children:c==="repay"?"Hide Repay":"Repay"})]}),jsxRuntimeExports.jsx("button",{className:"lending-pool-refresh-button",onClick:_e,disabled:b,children:b?"Loading...":"🔄 Refresh"})]}),c==="borrow"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(BorrowForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="repay"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(RepayForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})}),c==="depositCollateral"&&jsxRuntimeExports.jsx("div",{className:"form-container",children:jsxRuntimeExports.jsx(DepositCollateralForm,{pool:o,onSuccess:nt=>{e(nt),d("none"),_e()}})})]})},BorrowerPoolList=()=>{const o=useAnchorWallet(),{connection:e}=useConnection(),[s,a]=reactExports.useState([]),[c,d]=reactExports.useState(!1),[h,_]=reactExports.useState(""),[b,$]=reactExports.useState(""),_e=async()=>{if(o){d(!0);try{const rt=await getPoolList(o,e);a(rt)}catch(rt){console.error("Error fetching pools:",rt),_(rt instanceof Error?rt.message:"Failed to fetch pools")}finally{d(!1)}}};reactExports.useEffect(()=>{_e()},[o,e]);const nt=rt=>{$(rt),_e()};return jsxRuntimeExports.jsxs("div",{className:"pool-list-container",children:[jsxRuntimeExports.jsx("h2",{children:"Liquidity Pools"}),h&&jsxRuntimeExports.jsx("div",{className:"error-message",children:h}),b&&jsxRuntimeExports.jsxs("div",{className:"success-message",children:["Transaction successful!",jsxRuntimeExports.jsx("a",{href:`https://explorer.solana.com/tx/${b}`,target:"_blank",rel:"noopener noreferrer",children:"View on Explorer"})]}),c?jsxRuntimeExports.jsx("div",{className:"loading",children:"Loading pools..."}):s.length===0?jsxRuntimeExports.jsx("div",{className:"empty-state",children:jsxRuntimeExports.jsx("p",{children:"No pools found"})}):jsxRuntimeExports.jsx("div",{className:"pool-list",children:s.map(rt=>jsxRuntimeExports.jsx(BorrowerPoolItem,{pool:rt,onTxSuccess:nt}))})]})},EXCLUDED_PUBLIC_KEY="GUXNPX5ci1Qj76MZe2aRJ33zK48VmT6gXVyR86CsF4T5",Dashboard=()=>{const{publicKey:o}=useWallet(),[e,s]=reactExports.useState("amm");return jsxRuntimeExports.jsx(AmmProvider,{children:jsxRuntimeExports.jsxs("div",{className:"defi-dashboard",children:[jsxRuntimeExports.jsxs("div",{className:"tabs",children:[(o==null?void 0:o.toBase58())==EXCLUDED_PUBLIC_KEY&&jsxRuntimeExports.jsx("button",{className:`tab ${e==="amm"?"active":""}`,onClick:()=>s("amm"),children:"AMM"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="pool"?"active":""}`,onClick:()=>s("pool"),children:"Swap"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="lenderPool"?"active":""}`,onClick:()=>s("lenderPool"),children:"Lend"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="borrowerPool"?"active":""}`,onClick:()=>s("borrowerPool"),children:"Borrow"}),jsxRuntimeExports.jsx("button",{className:`tab ${e==="liquidate"?"active":""}`,onClick:()=>s("liquidate"),children:"Liquidate"})]}),jsxRuntimeExports.jsx("div",{className:"content",children:e==="amm"&&(o==null?void 0:o.toBase58())==EXCLUDED_PUBLIC_KEY?jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(AmmList,{}),jsxRuntimeExports.jsx(CreateAmmForm,{})]}):e==="pool"?jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PoolList,{}),jsxRuntimeExports.jsx(PoolCreateForm,{})]}):e==="lenderPool"?jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(LenderPoolList,{})}):e==="borrowerPool"?jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(BorrowerPoolList,{})}):e==="liquidate"?jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(LiquidateForm,{})}):jsxRuntimeExports.jsx(FutureForm,{})})]})})},FutureForm=()=>jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("h3",{children:" Coming Soon..."})}),PhantomWalletName="Phantom";class PhantomWalletAdapter extends BaseMessageSignerWalletAdapter{constructor(e={}){super(),this.name=PhantomWalletName,this.url="https://phantom.app",this.icon="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiB2aWV3Qm94PSIwIDAgMTA4IDEwOCIgZmlsbD0ibm9uZSI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPg==",this.supportedTransactionVersions=new Set(["legacy",0]),this._readyState=typeof window>"u"||typeof document>"u"?WalletReadyState.Unsupported:WalletReadyState.NotDetected,this._disconnected=()=>{const s=this._wallet;s&&(s.off("disconnect",this._disconnected),s.off("accountChanged",this._accountChanged),this._wallet=null,this._publicKey=null,this.emit("error",new WalletDisconnectedError),this.emit("disconnect"))},this._accountChanged=s=>{const a=this._publicKey;if(a){try{s=new PublicKey(s.toBytes())}catch(c){this.emit("error",new WalletPublicKeyError(c==null?void 0:c.message,c));return}a.equals(s)||(this._publicKey=s,this.emit("connect",s))}},this._connecting=!1,this._wallet=null,this._publicKey=null,this._readyState!==WalletReadyState.Unsupported&&(isIosAndRedirectable()?(this._readyState=WalletReadyState.Loadable,this.emit("readyStateChange",this._readyState)):scopePollingDetectionStrategy(()=>{var s,a,c;return(a=(s=window.phantom)==null?void 0:s.solana)!=null&&a.isPhantom||(c=window.solana)!=null&&c.isPhantom?(this._readyState=WalletReadyState.Installed,this.emit("readyStateChange",this._readyState),!0):!1}))}get publicKey(){return this._publicKey}get connecting(){return this._connecting}get readyState(){return this._readyState}async autoConnect(){this.readyState===WalletReadyState.Installed&&await this.connect()}async connect(){var e;try{if(this.connected||this.connecting)return;if(this.readyState===WalletReadyState.Loadable){const c=encodeURIComponent(window.location.href),d=encodeURIComponent(window.location.origin);window.location.href=`https://phantom.app/ul/browse/${c}?ref=${d}`;return}if(this.readyState!==WalletReadyState.Installed)throw new WalletNotReadyError;this._connecting=!0;const s=((e=window.phantom)==null?void 0:e.solana)||window.solana;if(!s.isConnected)try{await s.connect()}catch(c){throw new WalletConnectionError(c==null?void 0:c.message,c)}if(!s.publicKey)throw new WalletAccountError;let a;try{a=new PublicKey(s.publicKey.toBytes())}catch(c){throw new WalletPublicKeyError(c==null?void 0:c.message,c)}s.on("disconnect",this._disconnected),s.on("accountChanged",this._accountChanged),this._wallet=s,this._publicKey=a,this.emit("connect",a)}catch(s){throw this.emit("error",s),s}finally{this._connecting=!1}}async disconnect(){const e=this._wallet;if(e){e.off("disconnect",this._disconnected),e.off("accountChanged",this._accountChanged),this._wallet=null,this._publicKey=null;try{await e.disconnect()}catch(s){this.emit("error",new WalletDisconnectionError(s==null?void 0:s.message,s))}}this.emit("disconnect")}async sendTransaction(e,s,a={}){try{const c=this._wallet;if(!c)throw new WalletNotConnectedError;try{const{signers:d,...h}=a;isVersionedTransaction$2(e)?d!=null&&d.length&&e.sign(d):(e=await this.prepareTransaction(e,s,h),d!=null&&d.length&&e.partialSign(...d)),h.preflightCommitment=h.preflightCommitment||s.commitment;const{signature:_}=await c.signAndSendTransaction(e,h);return _}catch(d){throw d instanceof WalletError?d:new WalletSendTransactionError(d==null?void 0:d.message,d)}}catch(c){throw this.emit("error",c),c}}async signTransaction(e){try{const s=this._wallet;if(!s)throw new WalletNotConnectedError;try{return await s.signTransaction(e)||e}catch(a){throw new WalletSignTransactionError(a==null?void 0:a.message,a)}}catch(s){throw this.emit("error",s),s}}async signAllTransactions(e){try{const s=this._wallet;if(!s)throw new WalletNotConnectedError;try{return await s.signAllTransactions(e)||e}catch(a){throw new WalletSignTransactionError(a==null?void 0:a.message,a)}}catch(s){throw this.emit("error",s),s}}async signMessage(e){try{const s=this._wallet;if(!s)throw new WalletNotConnectedError;try{const{signature:a}=await s.signMessage(e);return a}catch(a){throw new WalletSignMessageError(a==null?void 0:a.message,a)}}catch(s){throw this.emit("error",s),s}}}const NetworkContext=reactExports.createContext({network:"localnet",setNetwork:()=>{}}),useNetwork=()=>reactExports.useContext(NetworkContext),ENDPOINTS={"mainnet-beta":clusterApiUrl("mainnet-beta"),testnet:clusterApiUrl("testnet"),devnet:clusterApiUrl("devnet"),localnet:"http://127.0.0.1:8899"},NetworkSelect=({onChange:o,value:e})=>jsxRuntimeExports.jsx("div",{className:"solana-network-select-container",children:jsxRuntimeExports.jsxs("select",{onChange:s=>o(s.target.value),value:e,className:"solana-network-select",children:[jsxRuntimeExports.jsx("option",{value:"localnet",children:"Localnet"}),jsxRuntimeExports.jsx("option",{value:"devnet",children:"Devnet"}),jsxRuntimeExports.jsx("option",{value:"testnet",children:"Testnet"}),jsxRuntimeExports.jsx("option",{value:"mainnet-beta",children:"Mainnet"})]})}),WalletContextProvider=({children:o})=>{const[e,s]=reactExports.useState("localnet"),a=reactExports.useMemo(()=>ENDPOINTS[e],[e]),c=reactExports.useMemo(()=>[new PhantomWalletAdapter],[]);return jsxRuntimeExports.jsx(NetworkContext.Provider,{value:{network:e,setNetwork:s},children:jsxRuntimeExports.jsx(ConnectionProvider,{endpoint:a,children:jsxRuntimeExports.jsx(WalletProvider,{wallets:c,autoConnect:!0,children:jsxRuntimeExports.jsx(WalletModalProvider,{children:o})})})})},App=()=>{const{connected:o}=useWallet(),{network:e,setNetwork:s}=useNetwork();return jsxRuntimeExports.jsxs("div",{className:"container",children:[jsxRuntimeExports.jsx("nav",{className:"navbar",children:jsxRuntimeExports.jsxs("div",{className:"navbar-content",children:[jsxRuntimeExports.jsx(NetworkSelect,{onChange:s,value:e}),jsxRuntimeExports.jsx(WalletMultiButton,{})]})}),jsxRuntimeExports.jsx("main",{className:"main-content",children:o?jsxRuntimeExports.jsx(Dashboard,{}):jsxRuntimeExports.jsx("div",{className:"connect-prompt",children:jsxRuntimeExports.jsx("h2",{children:"Please connect your wallet to continue"})})})]})};client.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(React.StrictMode,{children:jsxRuntimeExports.jsx(WalletContextProvider,{children:jsxRuntimeExports.jsx(App,{})})})); diff --git a/index.html b/index.html index a0e8a5a..6d63a12 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ Vite + React + TS - +