@orbs-network/spot-react 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +71 -53
  2. package/dist/spot-react/src/context/{spot-store.d.ts → create-spot-store.d.ts} +8 -41
  3. package/dist/spot-react/src/context/create-spot-store.d.ts.map +1 -0
  4. package/dist/spot-react/src/context/order-form-context.d.ts.map +1 -1
  5. package/dist/spot-react/src/context/spot-form-synchronizer.d.ts +1 -1
  6. package/dist/spot-react/src/context/spot-form-synchronizer.d.ts.map +1 -1
  7. package/dist/spot-react/src/context/spot-provider.d.ts.map +1 -1
  8. package/dist/spot-react/src/context/spot-runtime-context.d.ts +33 -0
  9. package/dist/spot-react/src/context/spot-runtime-context.d.ts.map +1 -0
  10. package/dist/spot-react/src/context/spot-store-context.d.ts +10 -0
  11. package/dist/spot-react/src/context/spot-store-context.d.ts.map +1 -0
  12. package/dist/spot-react/src/context/use-client.d.ts.map +1 -1
  13. package/dist/spot-react/src/context/use-spot-provider-state.d.ts +2 -1
  14. package/dist/spot-react/src/context/use-spot-provider-state.d.ts.map +1 -1
  15. package/dist/spot-react/src/execute-order.d.ts +1 -0
  16. package/dist/spot-react/src/execute-order.d.ts.map +1 -1
  17. package/dist/spot-react/src/execution-state.d.ts +2 -2
  18. package/dist/spot-react/src/hooks/helper-hooks.d.ts +0 -2
  19. package/dist/spot-react/src/hooks/helper-hooks.d.ts.map +1 -1
  20. package/dist/spot-react/src/hooks/order-hooks.d.ts.map +1 -1
  21. package/dist/spot-react/src/hooks/use-cancel-order.d.ts +1 -0
  22. package/dist/spot-react/src/hooks/use-cancel-order.d.ts.map +1 -1
  23. package/dist/spot-react/src/hooks/use-duration.d.ts +1 -1
  24. package/dist/spot-react/src/hooks/use-duration.d.ts.map +1 -1
  25. package/dist/spot-react/src/hooks/use-execution.d.ts.map +1 -1
  26. package/dist/spot-react/src/hooks/use-fill-delay.d.ts +1 -1
  27. package/dist/spot-react/src/hooks/use-fill-delay.d.ts.map +1 -1
  28. package/dist/spot-react/src/hooks/use-history-order.d.ts +0 -1
  29. package/dist/spot-react/src/hooks/use-history-order.d.ts.map +1 -1
  30. package/dist/spot-react/src/hooks/use-limit-price.d.ts.map +1 -1
  31. package/dist/spot-react/src/hooks/use-price-display.d.ts.map +1 -1
  32. package/dist/spot-react/src/hooks/use-submit-order.d.ts.map +1 -1
  33. package/dist/spot-react/src/hooks/use-trades.d.ts.map +1 -1
  34. package/dist/spot-react/src/hooks/use-trigger-price.d.ts.map +1 -1
  35. package/dist/spot-react/src/index.d.ts +2 -2
  36. package/dist/spot-react/src/index.d.ts.map +1 -1
  37. package/dist/spot-react/src/types.d.ts +29 -28
  38. package/dist/spot-react/src/types.d.ts.map +1 -1
  39. package/dist/spot-react.js +828 -843
  40. package/dist/spot-react.umd.cjs +1 -1
  41. package/package.json +2 -2
  42. package/dist/spot-react/src/context/spot-store.d.ts.map +0 -1
@@ -1 +1 @@
1
- (function(d,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@orbs-network/spot-ui"),require("react/jsx-runtime"),require("react"),require("zustand"),require("zustand/vanilla")):typeof define=="function"&&define.amd?define(["exports","@orbs-network/spot-ui","react/jsx-runtime","react","zustand","zustand/vanilla"],s):(d=typeof globalThis<"u"?globalThis:d||self,s(d.SpotReact={},d.SpotUI,d.jsxRuntime,d.React,d.Zustand,d.ZustandVanilla))})(this,(function(d,s,R,l,ye,he){"use strict";"use client";var Tt=Object.defineProperty;var pt=(d,s,R)=>s in d?Tt(d,s,{enumerable:!0,configurable:!0,writable:!0,value:R}):d[s]=R;var oe=(d,s,R)=>pt(d,typeof s!="symbol"?s+"":s,R);const Se={version:"2.1.0"};var x=(e=>(e[e.LOADING=1]="LOADING",e[e.SUCCESS=2]="SUCCESS",e[e.FAILED=3]="FAILED",e))(x||{}),m=(e=>(e.IDLE="idle",e.PREPARING="preparing",e.WRAPPING="wrapping",e.APPROVING="approving",e.SIGNING="signing",e.SUBMITTING="submitting",e.SUCCESS="success",e.FAILED="failed",e.REJECTED="rejected",e))(m||{}),$=(e=>(e.TRIGGER_MARKET_PRICE="triggerMarketPriceDisclaimer",e.MARKET_PRICE="marketOrderDisclaimer",e.LIMIT_PRICE="limitOrderDisclaimer",e))($||{}),z=(e=>(e.WRAP="wrap",e.APPROVE="approve",e.CREATE="create",e))(z||{});const Ee=new Set([m.PREPARING,m.WRAPPING,m.APPROVING,m.SIGNING,m.SUBMITTING]),Ie={[m.IDLE]:new Set,[m.PREPARING]:new Set([m.PREPARING,m.WRAPPING,m.APPROVING,m.SIGNING,m.FAILED,m.REJECTED]),[m.WRAPPING]:new Set([m.WRAPPING,m.APPROVING,m.SIGNING,m.FAILED,m.REJECTED]),[m.APPROVING]:new Set([m.APPROVING,m.SIGNING,m.FAILED,m.REJECTED]),[m.SIGNING]:new Set([m.SIGNING,m.SUBMITTING,m.FAILED,m.REJECTED]),[m.SUBMITTING]:new Set([m.SUCCESS,m.FAILED,m.REJECTED]),[m.SUCCESS]:new Set,[m.FAILED]:new Set,[m.REJECTED]:new Set},Q=e=>({phase:m.IDLE,completedWrap:e}),J=e=>Ee.has(e),Ae=e=>e===m.IDLE||e===m.FAILED||e===m.REJECTED,Ce=(e,t)=>Ie[e].has(t),ve=e=>{if(J(e))return x.LOADING;if(e===m.SUCCESS)return x.SUCCESS;if(e===m.FAILED||e===m.REJECTED)return x.FAILED},we=e=>{if(e===m.WRAPPING)return z.WRAP;if(e===m.APPROVING)return z.APPROVE;if(e===m.SIGNING||e===m.SUBMITTING)return z.CREATE},X=e=>{if(e instanceof Error)return e.message;if(typeof e=="string")return e;if(typeof e=="object"&&e!==null){const t=Reflect.get(e,"message");if(typeof t=="string")return t}return"Unknown error"},Te=e=>{if(typeof e!="object"||e===null)return 0;const t=Reflect.get(e,"code");return typeof t=="number"&&Number.isFinite(t)?t:typeof t=="string"&&/^-?\d+$/.test(t)?Number(t):0},k=e=>e instanceof Error?e:new Error(X(e)),U=e=>{const t=X(e),n=t.match(/,\s*code\s*:\s*(-?\d+)/i);return{message:t.replace(/^error\s*:/i,"").replace(/,\s*code\s*:\s*-?\d+/i,"").trim()||"Unknown error",code:Te(e)||(n?Number(n[1]):0)}},C=e=>{if(e)try{const t=e();Promise.resolve(t).catch(()=>{})}catch{}},pe=({execution:e,account:t,chainId:n,inputTokenAddress:r,inputAmountWei:o})=>{const i=e.completedWrap;if((i==null?void 0:i.account.toLowerCase())===t.toLowerCase()&&i.chainId===n&&i.inputTokenAddress.toLowerCase()===r.toLowerCase()&&Re(i.inputAmountWei,o))return i},Re=(e,t)=>{try{return BigInt(e)>=BigInt(t)}catch{return!1}},Le=2e4,se=new WeakMap,ae=e=>{const t=se.get(e);if(t)return t;const n={all:[...e].sort((r,o)=>o.createdAt-r.createdAt),open:[],completed:[],cancelled:[],expired:[]};for(const r of n.all)switch(r.status){case s.OrderStatus.Open:n.open.push(r);break;case s.OrderStatus.Completed:n.completed.push(r);break;case s.OrderStatus.Cancelled:n.cancelled.push(r);break;case s.OrderStatus.Expired:n.expired.push(r);break}return se.set(e,n),n},Fe=(e,t)=>{const n=new Set(e.map(o=>o.historyKey)),r=(t==null?void 0:t.filter(o=>o.version===1&&!n.has(o.historyKey)))??[];return[...e,...r]},Me=(e,t,n)=>{if(!e)return;const r=new Map(t.map(i=>[i.historyKey,i])),o=[];for(const i of e){if(i.version!==2)continue;const a=r.get(i.historyKey);!a||a.progress===i.progress||(o.push(a),a.status===s.OrderStatus.Completed&&C(()=>{var c;return(c=n==null?void 0:n.onOrderFilled)==null?void 0:c.call(n,a)}))}o.length>0&&C(()=>{var i;return(i=n==null?void 0:n.onOrdersProgressUpdate)==null?void 0:i.call(n,o)})},ce=e=>{if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},ee=(e,t)=>{if(Object.is(e,t))return e;if(Array.isArray(e)&&Array.isArray(t)){const n=t.map((o,i)=>ee(e[i],o));return e.length===n.length&&n.every((o,i)=>o===e[i])?e:n}if(ce(e)&&ce(t)){const n=Object.keys(e),r=Object.keys(t),o={};let i=n.length===r.length;for(const a of r){Object.prototype.hasOwnProperty.call(e,a)||(i=!1);const c=ee(e[a],t[a]);o[a]=c,c!==e[a]&&(i=!1)}return i?e:o}return t},Ne=(e,t)=>e?ee(e,t):t,te=e=>({typedTrades:e.typedTrades,typedFillDelay:e.typedFillDelay,typedDuration:e.typedDuration,typedLimitPrice:e.typedLimitPrice,typedTriggerPrice:e.typedTriggerPrice,triggerPricePercent:e.triggerPricePercent,limitPricePercent:e.limitPricePercent,isMarketOrder:e.isMarketOrder,isInvertedTrade:void 0}),De=e=>({...te(e),cancelOrders:{},currentExecution:Q()}),ue={isFetching:!1},de={isFetching:!1},be=e=>new Promise(t=>setTimeout(t,e)),Ge=e=>{let t=0,n,r,o=0,i,a,c,u=!1,y=0,v=0,E,I,g;return he.createStore((f,S)=>{const L=async()=>{if(!n||!r)return;if(i)return i;const O=++o,h=r;f(A=>({client:{key:n,data:A.client.data,error:void 0,isFetching:!0}}));const p=(async()=>{let A;for(let w=0;w<3;w++){if(O!==o)return;try{const P=await h();return O!==o?void 0:(f({client:{key:n,data:P,isFetching:!1}}),P)}catch(P){if(A=P instanceof Error?P:new Error(String(P)),O!==o)return;w<2&&await be(2**w*1e3)}}O===o&&f({client:{key:n,error:A,isFetching:!1}})})();return i=p,p.finally(()=>{i===p&&(i=void 0)}),p},N=async(O=!1)=>{if(!O&&y===0||!a||!c)return S().orders.data;if(E)return E;const h=++v,p=c,A=S().orders.data,w=new AbortController;I=w,f(F=>({orders:{key:a,data:F.orders.data,error:void 0,isFetching:!0}}));const P=p(A,u,w.signal).then(({orders:F,legacyLoaded:b})=>{if(h!==v)return;u=b;const H=Ne(S().orders.data,F);return f({orders:{key:a,data:H,isFetching:!1}}),H}).catch(F=>{if(h!==v||w.signal.aborted)return;const b=F instanceof Error?F:new Error(String(F));f(H=>({orders:{key:a,data:H.orders.data,error:b,isFetching:!1}}))});return E=P,P.finally(()=>{E===P&&(E=void 0),I===w&&(I=void 0)}),P},W=()=>{N()},K=()=>{g&&(clearInterval(g),g=void 0),typeof window<"u"&&window.removeEventListener("focus",W),I==null||I.abort(),I=void 0,E=void 0,v++,f(O=>({orders:{...O.orders,isFetching:!1}}))},q=()=>{!a||!c||g||(N(!0),g=setInterval(()=>{N()},Le),typeof window<"u"&&window.addEventListener("focus",W))};return{client:ue,orders:de,state:De(e),configureClient:(O,h)=>{if(n===O){r=h;return}n=O,r=h,o++,i=void 0,f({client:O?{key:O,isFetching:!1}:ue}),O&&h&&L()},refetchClient:L,configureOrders:(O,h)=>{if(a===O){c=h;return}K(),a=O,c=h,u=!1,f({orders:O?{key:O,isFetching:!1}:de}),y>0&&q()},registerOrdersConsumer:()=>(y++,y===1&&q(),()=>{y=Math.max(0,y-1),y===0&&K()}),refetchOrders:N,addOrder:O=>{f(h=>{const p=h.orders.data;return p!=null&&p.some(A=>A.historyKey===O.historyKey)?h:{orders:{...h.orders,data:[O,...p??[]]}}})},updateOrderStatus:(O,h)=>{f(p=>{var A;return{orders:{...p.orders,data:(A=p.orders.data)==null?void 0:A.map(w=>w.historyKey===O?{...w,status:h}:w)}}})},updateState:O=>f(h=>({state:{...h.state,...O}})),beginExecution:O=>{let h;return f(p=>Ae(p.state.currentExecution.phase)?(h={...O,executionId:++t,phase:m.PREPARING},{state:{...p.state,currentExecution:h}}):p),h},replaceExecution:(O,h)=>{let p=!1;return f(A=>{const w=A.state.currentExecution;return w.executionId!==O||h.executionId!==O||!Ce(w.phase,h.phase)?A:(p=!0,{state:{...A.state,currentExecution:h}})}),p},returnToOrderForm:()=>{const O=S().state.currentExecution;return J(O.phase)||O.phase===m.SUCCESS?!1:(f(h=>({state:{...h.state,currentExecution:Q(O.completedWrap)}})),!0)},syncFormDefaults:O=>J(S().state.currentExecution.phase)?!1:(f(h=>({state:{...h.state,...te(O),currentExecution:Q()}})),!0),startNewOrder:O=>{const{state:h}=S();return J(h.currentExecution.phase)?!1:(f(p=>({state:{...p.state,...te(O),isMarketOrder:h.isMarketOrder,currentExecution:Q()}})),!0)}}})},le=l.createContext(null),me=l.createContext(null),je=({children:e,runtime:t,initialState:n})=>{const[r]=l.useState(()=>Ge(n));return R.jsx(me.Provider,{value:t,children:R.jsx(le.Provider,{value:r,children:e})})},M=()=>{const e=l.useContext(me);if(e===null)throw new Error("useSpotRuntime must be used within SpotProvider");return e},V=()=>{const e=l.useContext(le);if(e===null)throw new Error("useSpotStore must be used within SpotProvider");return e},T=e=>{const t=V();return ye.useStore(t,e)},ge=e=>{var n;const t=(n=e.overrides)==null?void 0:n.state;return{isMarketOrder:e.module===s.Module.LIMIT?!1:t==null?void 0:t.isMarketOrder,typedTrades:t==null?void 0:t.trades,typedFillDelay:t==null?void 0:t.fillDelay,typedDuration:t==null?void 0:t.duration,typedLimitPrice:t==null?void 0:t.limitPrice,typedTriggerPrice:t==null?void 0:t.triggerPrice,triggerPricePercent:t==null?void 0:t.triggerPricePercent,limitPricePercent:t==null?void 0:t.limitPricePercent}},xe={isFetching:!1},Y=()=>{const{partner:e,chainId:t,isSupportedChain:n}=M(),r=V(),o=T(v=>v.client),i=!!(t&&n),a=i?`${e}:${t}`:void 0,c=o.key===a?o:xe,u=l.useCallback(()=>t?s.createClient(e,t):Promise.reject(new Error("Spot is unavailable on the connected chain")),[t,e]);l.useEffect(()=>{r.getState().configureClient(a,i?u:void 0)},[i,a,u,r]);const y=l.useCallback(()=>{if(!i||!a)return Promise.resolve(void 0);const v=r.getState();return v.configureClient(a,u),v.refetchClient()},[i,a,u,r]);return l.useMemo(()=>({data:c.data,error:c.error,isLoading:i&&!c.data&&c.error===void 0,isFetching:c.isFetching,refetch:y}),[c,i,y])},_e=({error:e,retry:t,isRetrying:n})=>R.jsxs("div",{className:"spot-client-error-fallback",role:"alert",children:[R.jsx("p",{children:e.message||"Unable to load Spot configuration."}),R.jsx("button",{type:"button",className:"spot-client-error-retry",disabled:n,onClick:t,children:n?"Retrying…":"Retry"})]}),We=({children:e,fallback:t=_e})=>{const{partner:n,chainId:r,isSupportedChain:o,minTradeSizeUsd:i}=M(),{data:a,error:c,isFetching:u,refetch:y}=Y(),v=l.useCallback(async()=>{await y()},[y]);return l.useEffect(()=>{!a||!r||!o||s.analytics.onFetchedConfig(a.rePermitData,n,s.getTwapConfig(n,r),i)},[r,a,o,i,n]),R.jsxs(R.Fragment,{children:[e,!a&&c&&o?R.jsx(t,{error:c,retry:v,isRetrying:u}):null]})},Be=({resetErrorBoundary:e})=>R.jsxs("div",{className:"twap-error-fallback",role:"alert",children:[R.jsx("p",{children:"Something went wrong"}),R.jsx("button",{type:"button",onClick:e,children:"Retry"})]}),qe=({children:e,fallback:t=Be})=>R.jsx(Ve,{fallback:t,children:e});class Ve extends l.Component{constructor(){super(...arguments);oe(this,"state",{});oe(this,"resetErrorBoundary",()=>{this.setState({error:void 0})})}static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n){s.analytics.onCrash(n)}render(){const{error:n}=this.state;if(n){const r=this.props.fallback;return R.jsx(r,{error:n,resetErrorBoundary:this.resetErrorBoundary})}return this.props.children}}const Ke=({children:e,defaults:t,scopeKey:n})=>{const r=V(),o=T(a=>a.state.currentExecution.phase),i=l.useRef(n);return l.useEffect(()=>{i.current===n||J(o)||r.getState().syncFormDefaults(t)&&(i.current=n)},[t,o,n,r]),e},fe=l.createContext(null),He=({children:e})=>{const{inputToken:t,outputToken:n,typedInputAmount:r,marketPrice:o,quotedOutputAmount:i,inputUsd1Token:a,outputUsd1Token:c,minTradeSizeUsd:u,inputBalance:y,displayFeePercent:v,priceProtection:E,module:I}=M(),g=T(P=>P.state.typedTrades),f=T(P=>P.state.typedFillDelay),S=T(P=>P.state.typedDuration),L=T(P=>P.state.typedLimitPrice),N=T(P=>P.state.typedTriggerPrice),W=T(P=>P.state.limitPricePercent),K=T(P=>P.state.triggerPricePercent),q=T(P=>P.state.isInvertedTrade),O=T(P=>P.state.isMarketOrder),h=T(P=>{const F=P.state.currentExecution;return F.phase!==m.IDLE?F.form:void 0}),p=l.useMemo(()=>s.toAmountWei(r,t==null?void 0:t.decimals),[t==null?void 0:t.decimals,r]),A=l.useMemo(()=>({module:I,isMarketOrder:!!O,inputAmountWei:p,inputTokenDecimals:(t==null?void 0:t.decimals)??0,outputTokenDecimals:(n==null?void 0:n.decimals)??0,marketPrice:o,quotedOutputAmount:i,inputUsdPrice:a,outputUsdPrice:c,minTradeSizeUsd:u,trades:g,fillDelay:f,duration:S,limitPrice:L,limitPricePercent:W,triggerPrice:N,triggerPricePercent:K,isInverted:q,priceProtection:E,displayFeePercent:v,inputBalance:y}),[n==null?void 0:n.decimals,c,v,p,o,i,u,I,E,y,t==null?void 0:t.decimals,a,q,O,W,K,g,S,f,L,N]),w=l.useMemo(()=>{const P=s.calculateOrderForm(A);return t&&n?P:{...P,isReady:!1,canSubmit:!1}},[t,n,A]);return R.jsx(fe.Provider,{value:h??w,children:e})},j=()=>{const e=l.useContext(fe);if(!e)throw new Error("useOrderForm must be used within OrderFormProvider");return e},ze=(e,t)=>{l.useEffect(()=>{!e.chainId||!t||s.analytics.init(e.partner,e.minTradeSizeUsd,e.chainId,e.appId)},[e.appId,e.chainId,e.minTradeSizeUsd,e.partner,t])},Je=e=>{var E,I,g,f,S;const t=l.useMemo(()=>s.getPartnerChains(e.partner),[e.partner]),n=!!(e.chainId&&t.includes(e.chainId)),r=s.shouldWrapOnly(e.inputToken,e.outputToken,e.chainId)||s.shouldUnwrapOnly(e.inputToken,e.outputToken,e.chainId),o=r?s.toAmountWei("1",(E=e.outputToken)==null?void 0:E.decimals):void 0,i=r?void 0:e.marketReferencePrice.value,a=r?!1:e.marketReferencePrice.isLoading,c=r?!1:e.marketReferencePrice.noLiquidity,u=l.useMemo(()=>ge({module:e.module,overrides:e.overrides}),[e.module,e.overrides]),y=JSON.stringify([e.partner,e.chainId,e.module,(I=e.inputToken)==null?void 0:I.address,(g=e.inputToken)==null?void 0:g.decimals,(f=e.outputToken)==null?void 0:f.address,(S=e.outputToken)==null?void 0:S.decimals,u]),v=l.useMemo(()=>({typedInputAmount:e.typedInputAmount,minTradeSizeUsd:e.minTradeSizeUsd,account:e.account,walletInteractions:e.walletInteractions,marketPrice:o,quotedOutputAmount:i,marketPriceLoading:a,noLiquidity:c,priceProtection:e.priceProtection,chainId:e.chainId,isSupportedChain:n,partner:e.partner,module:e.module,displayFeePercent:e.displayFeePercent??0,callbacks:e.callbacks,inputUsd1Token:e.inputUsd1Token,outputUsd1Token:e.outputUsd1Token,inputBalance:e.inputBalance,inputToken:e.inputToken,outputToken:e.outputToken,supportLegacyOrders:e.supportLegacyOrders??!1,overrides:e.overrides}),[e.account,e.callbacks,e.chainId,e.displayFeePercent,e.inputBalance,e.inputToken,e.inputUsd1Token,e.minTradeSizeUsd,e.module,e.outputToken,e.outputUsd1Token,e.overrides,e.partner,e.priceProtection,e.supportLegacyOrders,e.typedInputAmount,e.walletInteractions,n,o,a,c,i]);return{initialState:u,formScopeKey:y,runtime:v}},Ye=e=>{const{initialState:t,formScopeKey:n,runtime:r}=Je(e);return ze(e,r.isSupportedChain),R.jsx(je,{runtime:r,initialState:t,children:R.jsx(qe,{fallback:e.errorFallback,children:R.jsx(Ke,{defaults:t,scopeKey:n,children:R.jsx(We,{fallback:e.clientErrorFallback,children:R.jsx(He,{children:e.children})})})})})},$e=(e,t)=>l.useMemo(()=>s.toAmountUI(t,e),[e,t]),re=e=>{const{chainId:t}=M(),n=e??t;return l.useMemo(()=>s.getNetwork(n),[n])},Qe=(e,t)=>{const n=re(t);return l.useMemo(()=>{if(!(!e||!n))return s.getExplorerUrl(e,n.id)},[e,n])},ke={isFetching:!1},ne=()=>{const{account:e,partner:t,chainId:n,supportLegacyOrders:r,callbacks:o}=M(),{data:i}=Y(),a=V(),c=!!(e&&i),u=c?JSON.stringify([e,i==null?void 0:i.exchangeAddress,t,n,r]):void 0,y=l.useCallback(async(E,I,g)=>{if(!e||!i)return{orders:[],legacyLoaded:!1};const f=r&&!I,S=await i.getAccountOrders({signal:g,account:e,legacyOrders:f});return Me(E,S,o),{orders:r&&!f?Fe(S,E):S,legacyLoaded:I||f}},[e,o,i,r]);l.useEffect(()=>{a.getState().configureOrders(u,c?y:void 0)},[c,u,y,a]);const v=l.useCallback(()=>{if(!c||!u)return Promise.resolve(void 0);const E=a.getState();return E.configureOrders(u,y),E.refetchOrders(!0)},[c,u,y,a]);return{enabled:c,key:u,refetch:v}},Ze=()=>{ne();const e=V();return l.useCallback(t=>e.getState().addOrder(t),[e])},Xe=()=>{const e=V();return l.useCallback((t,n)=>e.getState().updateOrderStatus(t,n),[e])},Ue=()=>{const e=V();return l.useCallback(()=>e.getState().refetchOrders(),[e])},et=()=>{const e=T(u=>u.orders),t=T(u=>u.registerOrdersConsumer),{enabled:n,key:r,refetch:o}=ne(),i=e.key===r?e:ke;l.useEffect(()=>t(),[t]);const a=l.useMemo(()=>i.data===void 0?void 0:ae(i.data),[i.data]),c=l.useCallback(async()=>{const u=await o();return u===void 0?void 0:ae(u)},[o]);return l.useMemo(()=>({data:a,error:i.error,isLoading:n&&a===void 0&&i.error===void 0,isFetching:i.isFetching,isRefetching:i.isFetching&&a!==void 0,refetch:c}),[i,a,n,c])},tt=60,rt=()=>{const{refetch:e}=ne();return l.useCallback(async t=>{for(let n=0;n<tt;n++){const r=await e();if(!r)throw new Error("orders not found");const o=r.find(i=>i.historyKey===t);if((o==null?void 0:o.status)===s.OrderStatus.Cancelled)return;await new Promise(i=>setTimeout(i,1e3))}throw new Error("Timed out waiting for order cancellation to be confirmed")},[e])},nt=()=>{const e=V(),t=T(r=>r.updateState);return{cancelOrders:T(r=>r.state.cancelOrders),setCancelOrder:(r,o)=>{const i=e.getState().state.cancelOrders;t({cancelOrders:{...i,[r]:o}})},clearCancelOrder:r=>{const o=e.getState().state.cancelOrders,{[r]:i,...a}=o;t({cancelOrders:a})}}},it=e=>{const{account:t,walletInteractions:n,callbacks:r,chainId:o}=M(),{data:i}=Y(),a=rt(),c=Xe(),{cancelOrders:u,setCancelOrder:y,clearCancelOrder:v}=nt(),E=l.useCallback(async()=>{const g=e==null?void 0:e.historyKey;try{if(!t)throw new Error("missing account");if(!e)throw new Error("order is required");if(!i)throw new Error("Spot client is unavailable");const f=e.historyKey;y(f,{status:x.LOADING}),C(()=>{var N;return(N=r==null?void 0:r.onCancelOrderRequest)==null?void 0:N.call(r,e)}),C(()=>s.analytics.onCancelOrderRequest([e.version===1?e.id.toString():e.hash],e.version));const S=i.getCancelOrderRequest(e),L=await n.cancelOrder(S);if(!L)throw new Error("failed to cancel order");return C(()=>s.analytics.onCancelOrderSuccess(L)),c(f,s.OrderStatus.Cancelled),y(f,{status:x.SUCCESS,txHash:L}),C(()=>{var N;return(N=r==null?void 0:r.onCancelOrderSuccess)==null?void 0:N.call(r,{order:e.version===1?{...e,status:s.OrderStatus.Cancelled}:e,txHash:L,explorerUrl:s.getExplorerUrl(L,o)})}),e.version!==1&&a(f).catch(N=>{console.warn("cancel status sync lagging",N)}),L}catch(f){s.isTxRejected(f)?g&&v(g):(g&&y(g,{status:x.FAILED,error:X(f)}),C(()=>s.analytics.onCancelOrderError(f))),C(()=>{var S;return(S=r==null?void 0:r.onCancelOrderFailed)==null?void 0:S.call(r,k(f))})}},[t,r,o,v,i,e,a,y,c,n]),I=l.useMemo(()=>{const g=u[(e==null?void 0:e.historyKey)||""];return{isLoading:(g==null?void 0:g.status)===x.LOADING,disabled:!!(e&&!i),isSuccess:(g==null?void 0:g.status)===x.SUCCESS,isError:(g==null?void 0:g.status)===x.FAILED,error:g==null?void 0:g.error,txHash:g==null?void 0:g.txHash}},[u,e,i]);return l.useMemo(()=>({cancelOrder:E,...I}),[E,I])},ot=()=>{const{module:e,values:t}=j();if(t.isMarketOrder&&e===s.Module.STOP_LOSS)return $.TRIGGER_MARKET_PRICE;if(e===s.Module.LIMIT||e===s.Module.TWAP)return t.isMarketOrder?$.MARKET_PRICE:$.LIMIT_PRICE},st=()=>{const{callbacks:e}=M(),t=T(c=>c.updateState),{schedule:n}=j(),{duration:r}=n,o=l.useCallback(c=>{t({typedDuration:c}),C(()=>{var u;return(u=e==null?void 0:e.onDurationChange)==null?void 0:u.call(e,c)})},[e,t]),i=l.useCallback(c=>{const u=Number(c);Number.isFinite(u)&&o({unit:r.unit,value:u})},[r.unit,o]),a=l.useCallback(c=>{o({unit:c,value:r.value})},[r.value,o]);return l.useMemo(()=>({duration:r,onChange:o,milliseconds:n.durationMillis,onInputChange:i,onUnitSelect:a,error:n.durationError}),[r,o,i,a,n])},at=()=>{const{callbacks:e}=M(),t=T(c=>c.updateState),{schedule:n}=j(),{fillDelay:r}=n,o=l.useCallback(c=>{t({typedFillDelay:c}),C(()=>{var u;return(u=e==null?void 0:e.onFillDelayChange)==null?void 0:u.call(e,c)})},[e,t]),i=l.useCallback(c=>{const u=Number(c);Number.isFinite(u)&&o({unit:r.unit,value:u})},[r.unit,o]),a=l.useCallback(c=>o({unit:c,value:r.value}),[r.value,o]);return l.useMemo(()=>({onInputChange:i,onUnitSelect:a,onChange:o,milliseconds:n.fillDelayMillis,fillDelay:r,error:n.fillDelayError}),[r,o,i,a,n])},_=(e,t)=>({raw:e||"",ui:s.toAmountUI(e,t)}),ct=(e,t,n)=>{var o;const r=(o=re())==null?void 0:o.id;return l.useMemo(()=>!e||!t||!n?[]:e.map(i=>({rawFill:i,inputToken:t,outputToken:n,inputAmount:_(i.inAmount,t.decimals),outputAmount:_(i.outAmount,n.decimals),timestamp:i.timestamp,txHash:i.txHash,explorerUrl:s.getExplorerUrl(i.txHash,r),executionRate:s.getOrderExecutionRate(i.inAmount,i.outAmount,t.decimals,n.decimals)})),[e,t,r,n])},ut=(e,t,n)=>{const{chainId:r,partner:o}=M(),i=l.useMemo(()=>{if(!(!t||!n||!e||e.isMarketPrice))return s.getOrderLimitPriceRate(e,t.decimals,n.decimals)},[t,e,n]),a=l.useMemo(()=>{if(!(!t||!n||!e))return s.getTriggerPriceRate(e,t.decimals,n.decimals)},[t,e,n]),c=l.useMemo(()=>{if(!(!t||!n||!e))return s.getOrderExecutionRate(e.srcAmountFilled,e.dstAmountFilled,t.decimals,n.decimals)},[t,e,n]),u=l.useMemo(()=>e?s.getOrderFillDelayMillis(e,r?s.getTwapConfig(o,r):void 0):0,[e,o,r]),y=ct(e==null?void 0:e.fills,t,n);return l.useMemo(()=>{if(e!=null&&e.id)return{original:e,fills:y,inputToken:t,outputToken:n,orderType:e.type,createdAt:e.createdAt,deadline:e.deadline||0,totalTrades:e.totalTradesAmount||0,tradeInterval:u,recipient:e.maker||"",inputAmount:_(e.srcAmount,t==null?void 0:t.decimals),limitPrice:_(s.toAmountWei(i,n==null?void 0:n.decimals),n==null?void 0:n.decimals),inputAmountPerTrade:_(e.srcAmountPerTrade,t==null?void 0:t.decimals),minOutputAmountPerTrade:_(e.dstMinAmountPerTrade,n==null?void 0:n.decimals),minOutputAmount:_(e.dstMinAmountTotal,n==null?void 0:n.decimals),triggerPrice:_(s.toAmountWei(a,n==null?void 0:n.decimals),n==null?void 0:n.decimals),id:e.id,inputAmountFilled:_(e.srcAmountFilled,t==null?void 0:t.decimals),outputAmountFilled:_(e.dstAmountFilled,n==null?void 0:n.decimals),progress:e.progress,executionPrice:_(s.toAmountWei(c,n==null?void 0:n.decimals),n==null?void 0:n.decimals),version:e.version}},[e,y,t,n,u,i,a,c])},dt=()=>{const{marketPriceLoading:e}=M(),t=j().errors.primary;return e?void 0:t},lt=()=>{const{marketPriceLoading:e,inputToken:t,outputToken:n,callbacks:r}=M(),{limitPrice:o,values:i,module:a,isInverted:c}=j(),u=T(f=>f.updateState),y=l.useCallback(f=>{u({typedLimitPrice:f,limitPricePercent:null}),C(()=>{var S;return(S=r==null?void 0:r.onLimitPriceChange)==null?void 0:S.call(r,f||"")}),C(()=>{var S;return(S=r==null?void 0:r.onLimitPricePercentChange)==null?void 0:S.call(r,"")})},[r,u]),v=l.useCallback(f=>{u({typedLimitPrice:void 0,limitPricePercent:f}),C(()=>{var S;return(S=r==null?void 0:r.onLimitPriceChange)==null?void 0:S.call(r,"")}),C(()=>{var S;return(S=r==null?void 0:r.onLimitPricePercentChange)==null?void 0:S.call(r,f||"")})},[r,u]),E=l.useCallback(()=>{u({typedLimitPrice:void 0,limitPricePercent:void 0})},[u]),I=!i.isMarketOrder,g=l.useCallback(()=>{u({isMarketOrder:!i.isMarketOrder,...i.isMarketOrder?{}:{isInvertedTrade:!1},...!i.isMarketOrder&&a===s.Module.STOP_LOSS?{limitPricePercent:void 0}:{}})},[a,u,i.isMarketOrder]);return l.useMemo(()=>({price:o.display,canonicalPriceRaw:o.raw,error:o.error,onInputChange:y,onPercentageChange:v,onReset:E,inputToken:t,outputToken:n,displayInputToken:c?n:t,displayOutputToken:c?t:n,percentage:o.percentage,isLoading:!!e,isEnabled:I,toggle:g,isTypedValue:o.isTypedValue}),[t,c,I,o,e,y,v,E,n,g])},mt=()=>{const{marketPriceLoading:e}=M(),{outputAmount:t}=j();return l.useMemo(()=>({amount:t,isLoading:!!e}),[e,t])},gt=()=>{const{inputToken:e,outputToken:t}=M(),n=T(u=>u.updateState),{isInverted:r,values:o}=j(),i=T(u=>u.state.typedTriggerPrice),a=T(u=>u.state.typedLimitPrice),c=l.useCallback(()=>{n({isInvertedTrade:!r,...i!==void 0?{typedTriggerPrice:s.invertPriceInput(i)}:{},...a!==void 0?{typedLimitPrice:s.invertPriceInput(a)}:{}})},[n,r,i,a]);return l.useMemo(()=>({onInvert:c,isInverted:r,inputToken:e,outputToken:t,displayInputToken:r?t:e,displayOutputToken:r?e:t,isMarketOrder:o.isMarketOrder}),[e,r,c,t,o.isMarketOrder])},Pe=3,ft=3e3,Pt=e=>new Promise(t=>setTimeout(t,e)),ie=(e,t)=>{if(!/^\d+$/.test(e))throw new Error(`${t} must be a non-negative integer base-unit amount`);return BigInt(e)},Oe=async({client:e,walletInteractions:t,tokenAddress:n,inputAmountWei:r})=>{const o=await t.getAllowance({tokenAddress:n,spenderAddress:e.spenderAddress});return ie(o||"0","Allowance")>=ie(r,"Input amount")},Ot=e=>{if(!e.client)throw new Error("Spot client is unavailable");if(!e.isSupportedChain||!e.chainId)throw new Error("Spot is unavailable on the connected chain");if(!e.account)throw new Error("missing account");if(!e.inputToken)throw new Error("missing inputToken");if(!e.outputToken)throw new Error("missing outputToken");if(!e.form.canSubmit)throw new Error("Order form is not submittable");const t=e.form.inputAmount.raw;return ie(t,"Input amount"),{account:e.account,chainId:e.chainId,inputToken:e.inputToken,outputToken:e.outputToken,client:e.client,inputAmountWei:t}},yt=({account:e,chainId:t,inputToken:n,outputToken:r,preparedOrder:o})=>{const{form:i,values:a}=o;C(()=>s.analytics.onRequestOrder({account:e,chainId:t,module:i.module,srcToken:n,dstToken:r,fromTokenAmount:a.inputAmount,srcChunkAmount:a.inputAmountPerTrade,triggerPricePerTrade:a.triggerOutputAmountPerTrade,deadline:a.deadlineMillis,fillDelay:a.fillDelayMillis,minDstAmountOutPerTrade:a.minOutputAmountPerTrade,slippage:i.values.slippageBps/100,isMarketOrder:a.isMarketOrder,chunksAmount:a.totalTrades}))},ht=async e=>{const{form:t,walletInteractions:n,callbacks:r,addNewOrder:o,refetchActiveOrders:i,getCurrentExecution:a,beginExecution:c,replaceExecution:u,wait:y=Pt}=e;let v;try{v=Ot(e)}catch(A){const w=k(A),P=U(A),F=c({form:t,inputToken:e.inputToken,outputToken:e.outputToken,chainId:e.chainId});throw F&&u(F.executionId,{...F,phase:m.FAILED,error:w,parsedError:P}),C(()=>{var b;return(b=r==null?void 0:r.onSubmitOrderFailed)==null?void 0:b.call(r,P)}),w}const{account:E,chainId:I,inputToken:g,outputToken:f,client:S,inputAmountWei:L}=v,N=a(),W=pe({execution:N,account:E,chainId:I,inputTokenAddress:g.address,inputAmountWei:L}),K=c({form:t,inputToken:g,outputToken:f,chainId:I,completedWrap:W,wrapTxHash:W==null?void 0:W.txHash});if(!K)return;const q=K.executionId;let O=K;const h=(A,w={})=>{const P={...O,...w,executionId:q,phase:A};if(!u(q,P))throw new Error("Execution is no longer current");O=P},p=(A,w={})=>{const P={...O,...w,executionId:q,phase:A};return u(q,P)?(O=P,!0):!1};try{const A=s.ensureWrappedToken(g,I),w=s.isNativeAddress(g.address)&&!W;if(w&&s.isNativeAddress(A.address))throw new Error("Wrapped input token is unavailable");const P=!await Oe({client:S,walletInteractions:n,tokenAddress:A.address,inputAmountWei:L}),F=[];w&&F.push(z.WRAP),P&&F.push(z.APPROVE),F.push(z.CREATE);let b=0;if(h(m.PREPARING,{pendingSteps:F,totalSteps:F.length,stepIndex:b,hasApproval:!P}),w){h(m.WRAPPING),C(()=>s.analytics.onWrapRequest()),C(r==null?void 0:r.onWrapRequest);const D=await n.wrapNativeToken(L);if(!D)throw new Error("failed to wrap input token");const B={account:E,chainId:I,inputTokenAddress:g.address,inputAmountWei:L,txHash:D};b++,h(m.WRAPPING,{wrapTxHash:D,completedWrap:B,stepIndex:b}),C(()=>s.analytics.onWrapSuccess(D)),C(()=>{var G;return(G=r==null?void 0:r.onWrapSuccess)==null?void 0:G.call(r,{txHash:D,explorerUrl:s.getExplorerUrl(D,I),amount:s.toAmountUI(L,A.decimals)})})}if(P){h(m.APPROVING),C(()=>s.analytics.onApproveRequest()),C(r==null?void 0:r.onApproveRequest);const D=await n.approveToken({tokenAddress:A.address,amount:L,spenderAddress:S.spenderAddress});if(!D)throw new Error("failed to approve token");h(m.APPROVING,{approveTxHash:D});let B=!1;for(let G=0;G<Pe&&(B=await Oe({client:S,walletInteractions:n,tokenAddress:A.address,inputAmountWei:L}),!B);G++)G<Pe-1&&await y(ft);if(!B)throw new Error(`Insufficient ${A.symbol} allowance to perform the swap. Please approve the token first.`);b++,h(m.APPROVING,{hasApproval:!0,stepIndex:b}),C(()=>s.analytics.onApproveSuccess(D)),C(()=>{var G;return(G=r==null?void 0:r.onApproveSuccess)==null?void 0:G.call(r,{txHash:D,explorerUrl:s.getExplorerUrl(D,I),token:A,amount:s.toAmountUI(L,A.decimals)})})}h(m.SIGNING);const H=S.prepareOrder({form:t,inputTokenAddress:g.address,outputTokenAddress:f.address,swapperAddress:E});h(m.SIGNING,{preparedOrder:H}),yt({account:E,chainId:I,inputToken:g,outputToken:f,preparedOrder:H});const wt=await S.signOrder(H,async D=>{C(r==null?void 0:r.onSignOrderRequest);try{const B=await n.signOrder(D);return C(()=>{var G;return(G=r==null?void 0:r.onSignOrderSuccess)==null?void 0:G.call(r,B)}),B}catch(B){throw C(()=>{var G;return(G=r==null?void 0:r.onSignOrderError)==null?void 0:G.call(r,k(B))}),B}});h(m.SUBMITTING);const Z=await S.submitOrder(H,wt);return h(m.SUCCESS,{orderId:Z.id.toString()}),C(()=>o(Z)),C(()=>i()),C(()=>{var D;return(D=r==null?void 0:r.onOrderCreated)==null?void 0:D.call(r,Z)}),Z}catch(A){const w=O.phase,P=k(A),F=s.isTxRejected(A);throw p(F?m.REJECTED:m.FAILED,{error:P,parsedError:U(A)}),w===m.WRAPPING?C(()=>s.analytics.onWrapError(A)):w===m.APPROVING&&C(()=>s.analytics.onApproveError(A)),C(F?r==null?void 0:r.onSubmitOrderRejected:()=>{var b;return(b=r==null?void 0:r.onSubmitOrderFailed)==null?void 0:b.call(r,U(A))}),P}},St=()=>{const{inputToken:e,outputToken:t,chainId:n,isSupportedChain:r,callbacks:o,account:i,walletInteractions:a}=M(),{data:c}=Y(),u=Ze(),y=Ue(),v=j(),E=V();return l.useCallback(()=>{ht({account:i,chainId:n,isSupportedChain:r,inputToken:e,outputToken:t,form:v,client:c,walletInteractions:a,callbacks:o,addNewOrder:u,refetchActiveOrders:y,getCurrentExecution:()=>E.getState().state.currentExecution,beginExecution:E.getState().beginExecution,replaceExecution:E.getState().replaceExecution}).catch(()=>{})},[i,u,o,n,c,v,e,r,t,y,E,a])},Et=()=>{const e=T(n=>n.state.currentExecution),t=T(n=>n.returnToOrderForm);return l.useMemo(()=>({...e,returnToOrderForm:t}),[e,t])},It=()=>{const e=Et(),{inputToken:t,outputToken:n,chainId:r,isSupportedChain:o,module:i,overrides:a}=M(),{data:c,isLoading:u}=Y(),y=St(),v=T(L=>L.startNewOrder),E=l.useCallback(()=>y(),[y]),I=l.useCallback(()=>v(ge({module:i,overrides:a})),[i,a,v]),g=ve(e.phase),f=we(e.phase),S=J(e.phase);return l.useMemo(()=>({phase:e.phase,status:g,error:e.parsedError,currentStep:f,currentStepIndex:e.stepIndex,approvalTxHash:e.approveTxHash,wrapTxHash:e.wrapTxHash,totalSteps:e.totalSteps,executionSteps:e.pendingSteps,inputToken:e.inputToken??t,outputToken:e.outputToken??n,chainId:e.chainId??r,submitOrder:E,startNewOrder:I,returnToOrderForm:e.returnToOrderForm,isExecuting:S,isSuccess:e.phase===m.SUCCESS,isFailed:e.phase===m.FAILED,isRejected:e.phase===m.REJECTED,isPreparingOrder:e.phase===m.PREPARING||o&&u&&!c,canDismiss:!S}),[c,f,t,n,r,u,S,o,I,E,g,e])},At=()=>{const{inputToken:e,outputToken:t,inputBalance:n,noLiquidity:r,typedInputAmount:o,marketPriceLoading:i,isSupportedChain:a}=M(),c=j(),{data:u,isLoading:y}=Y(),v=T(S=>S.state.currentExecution.phase),E=J(v),I=i||!c.isReady||n===void 0,g=E||a&&y&&!u||!!(e&&t&&o&&I),f=!!(!c.canSubmit||E||!a||!u||r||g||!e||!t);return l.useMemo(()=>({disabled:f,loading:g}),[f,g])},Ct=()=>{const{inputToken:e,outputToken:t,callbacks:n}=M(),r=T(a=>a.updateState),{trades:o}=j(),i=l.useCallback(a=>{r({typedTrades:a}),C(()=>{var c;return(c=n==null?void 0:n.onTradesChange)==null?void 0:c.call(n,a)})},[n,r]);return l.useMemo(()=>({totalTrades:o.totalTrades,maxTrades:o.maxTrades,inputAmountPerTrade:o.inputAmountPerTrade,minOutputAmountPerTrade:o.minOutputAmountPerTrade,triggerOutputAmountPerTrade:o.triggerOutputAmountPerTrade,onChange:i,error:o.error,inputToken:e,outputToken:t}),[e,i,t,o])},vt=()=>{const{marketPriceLoading:e,inputToken:t,outputToken:n,callbacks:r}=M(),{marketPrice:o,trades:i,triggerPrice:a,isInverted:c}=j(),u=T(I=>I.updateState),y=l.useCallback(I=>{u({typedTriggerPrice:I,triggerPricePercent:null}),C(()=>{var g;return(g=r==null?void 0:r.onTriggerPriceChange)==null?void 0:g.call(r,I||"")}),C(()=>{var g;return(g=r==null?void 0:r.onTriggerPricePercentChange)==null?void 0:g.call(r,"")})},[r,u]),v=l.useCallback(I=>{u({typedTriggerPrice:void 0,triggerPricePercent:I}),C(()=>{var g;return(g=r==null?void 0:r.onTriggerPriceChange)==null?void 0:g.call(r,"")}),C(()=>{var g;return(g=r==null?void 0:r.onTriggerPricePercentChange)==null?void 0:g.call(r,I||"")})},[r,u]),E=l.useCallback(()=>{u({triggerPricePercent:void 0,typedTriggerPrice:void 0})},[u]);return l.useMemo(()=>({price:a.display,canonicalPriceRaw:a.raw,outputAmountPerTrade:i.triggerOutputAmountPerTrade,error:a.error,onInputChange:y,onPercentageChange:v,percentage:a.percentage,onReset:E,inputToken:t,outputToken:n,displayInputToken:c?n:t,displayOutputToken:c?t:n,isLoading:!!(e||!o.raw),isTypedValue:a.isTypedValue}),[t,c,o.raw,e,y,v,E,n,i.triggerOutputAmountPerTrade,a])};s.setUIVersion(Se.version),Object.defineProperty(d,"DISCLAIMER_URL",{enumerable:!0,get:()=>s.DISCLAIMER_URL}),Object.defineProperty(d,"InputErrors",{enumerable:!0,get:()=>s.InputErrors}),Object.defineProperty(d,"Module",{enumerable:!0,get:()=>s.Module}),Object.defineProperty(d,"ORBS_LOGO",{enumerable:!0,get:()=>s.ORBS_LOGO}),Object.defineProperty(d,"ORBS_SLTP_FAQ_URL",{enumerable:!0,get:()=>s.ORBS_SLTP_FAQ_URL}),Object.defineProperty(d,"ORBS_TWAP_FAQ_URL",{enumerable:!0,get:()=>s.ORBS_TWAP_FAQ_URL}),Object.defineProperty(d,"ORBS_WEBSITE_URL",{enumerable:!0,get:()=>s.ORBS_WEBSITE_URL}),Object.defineProperty(d,"OrderFilter",{enumerable:!0,get:()=>s.OrderFilter}),Object.defineProperty(d,"OrderStatus",{enumerable:!0,get:()=>s.OrderStatus}),Object.defineProperty(d,"OrderType",{enumerable:!0,get:()=>s.OrderType}),Object.defineProperty(d,"Partners",{enumerable:!0,get:()=>s.Partners}),Object.defineProperty(d,"SPOT_VERSION",{enumerable:!0,get:()=>s.SPOT_VERSION}),Object.defineProperty(d,"TimeUnit",{enumerable:!0,get:()=>s.TimeUnit}),Object.defineProperty(d,"calculateOrderForm",{enumerable:!0,get:()=>s.calculateOrderForm}),Object.defineProperty(d,"createClient",{enumerable:!0,get:()=>s.createClient}),Object.defineProperty(d,"ensureWrappedToken",{enumerable:!0,get:()=>s.ensureWrappedToken}),Object.defineProperty(d,"eqIgnoreCase",{enumerable:!0,get:()=>s.eqIgnoreCase}),Object.defineProperty(d,"getExplorerUrl",{enumerable:!0,get:()=>s.getExplorerUrl}),Object.defineProperty(d,"getNetwork",{enumerable:!0,get:()=>s.getNetwork}),Object.defineProperty(d,"getOrderExecutionRate",{enumerable:!0,get:()=>s.getOrderExecutionRate}),Object.defineProperty(d,"getOrderFillDelayMillis",{enumerable:!0,get:()=>s.getOrderFillDelayMillis}),Object.defineProperty(d,"getOrderLimitPriceRate",{enumerable:!0,get:()=>s.getOrderLimitPriceRate}),Object.defineProperty(d,"getPartnerChains",{enumerable:!0,get:()=>s.getPartnerChains}),Object.defineProperty(d,"getPartners",{enumerable:!0,get:()=>s.getPartners}),Object.defineProperty(d,"getTriggerPriceRate",{enumerable:!0,get:()=>s.getTriggerPriceRate}),Object.defineProperty(d,"getTwapConfig",{enumerable:!0,get:()=>s.getTwapConfig}),Object.defineProperty(d,"invertPriceInput",{enumerable:!0,get:()=>s.invertPriceInput}),Object.defineProperty(d,"isNativeAddress",{enumerable:!0,get:()=>s.isNativeAddress}),Object.defineProperty(d,"isTxRejected",{enumerable:!0,get:()=>s.isTxRejected}),Object.defineProperty(d,"networks",{enumerable:!0,get:()=>s.networks}),Object.defineProperty(d,"shouldUnwrapOnly",{enumerable:!0,get:()=>s.shouldUnwrapOnly}),Object.defineProperty(d,"shouldWrapOnly",{enumerable:!0,get:()=>s.shouldWrapOnly}),Object.defineProperty(d,"toAmountUI",{enumerable:!0,get:()=>s.toAmountUI}),Object.defineProperty(d,"toAmountWei",{enumerable:!0,get:()=>s.toAmountWei}),d.Disclaimer=$,d.ExecutionPhase=m,d.ExecutionStatus=x,d.SpotProvider=Ye,d.Steps=z,d.useAmountUi=$e,d.useCancelOrder=it,d.useClient=Y,d.useDisclaimer=ot,d.useDuration=st,d.useExecution=It,d.useExplorerLink=Qe,d.useFillDelay=at,d.useHistoryOrder=ut,d.useInputErrors=dt,d.useLimitPrice=lt,d.useNetwork=re,d.useOrderForm=j,d.useOrders=et,d.useOutputAmount=mt,d.usePriceDisplay=gt,d.useSubmitButton=At,d.useTrades=Ct,d.useTriggerPrice=vt,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(m,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@orbs-network/spot-ui"),require("react/jsx-runtime"),require("react"),require("zustand"),require("zustand/vanilla")):typeof define=="function"&&define.amd?define(["exports","@orbs-network/spot-ui","react/jsx-runtime","react","zustand","zustand/vanilla"],a):(m=typeof globalThis<"u"?globalThis:m||self,a(m.SpotReact={},m.SpotUI,m.jsxRuntime,m.React,m.Zustand,m.ZustandVanilla))})(this,(function(m,a,p,d,Oe,Se){"use strict";"use client";var Rt=Object.defineProperty;var Tt=(m,a,p)=>a in m?Rt(m,a,{enumerable:!0,configurable:!0,writable:!0,value:p}):m[a]=p;var ie=(m,a,p)=>Tt(m,typeof a!="symbol"?a+"":a,p);const he={version:"2.1.1"},oe=d.createContext(null),Ee=({children:e,value:r})=>p.jsx(oe.Provider,{value:r,children:e}),M=()=>{const e=d.useContext(oe);if(e===null)throw new Error("useSpotRuntime must be used within SpotProvider");return e};var q=(e=>(e[e.LOADING=1]="LOADING",e[e.SUCCESS=2]="SUCCESS",e[e.FAILED=3]="FAILED",e))(q||{}),l=(e=>(e.IDLE="idle",e.PREPARING="preparing",e.WRAPPING="wrapping",e.APPROVING="approving",e.SIGNING="signing",e.SUBMITTING="submitting",e.SUCCESS="success",e.FAILED="failed",e.REJECTED="rejected",e))(l||{}),Q=(e=>(e.TRIGGER_MARKET_PRICE="triggerMarketPriceDisclaimer",e.MARKET_PRICE="marketOrderDisclaimer",e.LIMIT_PRICE="limitOrderDisclaimer",e))(Q||{}),z=(e=>(e.WRAP="wrap",e.APPROVE="approve",e.CREATE="create",e))(z||{});const Ie=new Set([l.PREPARING,l.WRAPPING,l.APPROVING,l.SIGNING,l.SUBMITTING]),Ae={[l.IDLE]:new Set,[l.PREPARING]:new Set([l.PREPARING,l.WRAPPING,l.APPROVING,l.SIGNING,l.FAILED,l.REJECTED]),[l.WRAPPING]:new Set([l.WRAPPING,l.APPROVING,l.SIGNING,l.FAILED,l.REJECTED]),[l.APPROVING]:new Set([l.APPROVING,l.SIGNING,l.FAILED,l.REJECTED]),[l.SIGNING]:new Set([l.SIGNING,l.SUBMITTING,l.FAILED,l.REJECTED]),[l.SUBMITTING]:new Set([l.SUCCESS,l.FAILED,l.REJECTED]),[l.SUCCESS]:new Set,[l.FAILED]:new Set,[l.REJECTED]:new Set},Y=e=>({phase:l.IDLE,completedWrap:e}),U=e=>Ie.has(e),Ce=e=>e===l.IDLE||e===l.FAILED||e===l.REJECTED,ye=(e,r)=>Ae[e].has(r),ve=e=>{if(U(e))return q.LOADING;if(e===l.SUCCESS)return q.SUCCESS;if(e===l.FAILED||e===l.REJECTED)return q.FAILED},we=e=>{if(e===l.WRAPPING)return z.WRAP;if(e===l.APPROVING)return z.APPROVE;if(e===l.SIGNING||e===l.SUBMITTING)return z.CREATE},Z=e=>{if(e instanceof Error)return e.message;if(typeof e=="string")return e;if(typeof e=="object"&&e!==null){const r=Reflect.get(e,"message");if(typeof r=="string")return r}return"Unknown error"},Re=e=>{if(typeof e!="object"||e===null)return 0;const r=Reflect.get(e,"code");return typeof r=="number"&&Number.isFinite(r)?r:typeof r=="string"&&/^-?\d+$/.test(r)?Number(r):0},$=e=>e instanceof Error?e:new Error(Z(e)),X=e=>{const r=Z(e),n=r.match(/,\s*code\s*:\s*(-?\d+)/i);return{message:r.replace(/^error\s*:/i,"").replace(/,\s*code\s*:\s*-?\d+/i,"").trim()||"Unknown error",code:Re(e)||(n?Number(n[1]):0)}},C=e=>{if(e)try{const r=e();Promise.resolve(r).catch(()=>{})}catch{}},Te=({execution:e,account:r,chainId:n,inputTokenAddress:t,inputAmountRaw:o})=>{const i=e.completedWrap;if((i==null?void 0:i.account.toLowerCase())===r.toLowerCase()&&i.chainId===n&&i.inputTokenAddress.toLowerCase()===t.toLowerCase()&&pe(i.inputAmountRaw,o))return i},pe=(e,r)=>{try{return BigInt(e)>=BigInt(r)}catch{return!1}},Le=2e4,se=new WeakMap,ae=e=>{const r=se.get(e);if(r)return r;const n={all:[...e].sort((t,o)=>o.createdAt-t.createdAt),open:[],completed:[],cancelled:[],expired:[]};for(const t of n.all)switch(t.status){case a.OrderStatus.Open:n.open.push(t);break;case a.OrderStatus.Completed:n.completed.push(t);break;case a.OrderStatus.Cancelled:n.cancelled.push(t);break;case a.OrderStatus.Expired:n.expired.push(t);break}return se.set(e,n),n},Ne=(e,r)=>{const n=new Set(e.map(o=>o.historyKey)),t=(r==null?void 0:r.filter(o=>o.version===1&&!n.has(o.historyKey)))??[];return[...e,...t]},Fe=(e,r,n)=>{if(!e)return;const t=new Map(r.map(i=>[i.historyKey,i])),o=[];for(const i of e){if(i.version!==2)continue;const s=t.get(i.historyKey);!s||s.progress===i.progress||(o.push(s),s.status===a.OrderStatus.Completed&&C(()=>{var c;return(c=n==null?void 0:n.onOrderFilled)==null?void 0:c.call(n,s)}))}o.length>0&&C(()=>{var i;return(i=n==null?void 0:n.onOrdersProgressUpdate)==null?void 0:i.call(n,o)})},ce=e=>{if(e===null||typeof e!="object")return!1;const r=Object.getPrototypeOf(e);return r===Object.prototype||r===null},ee=(e,r)=>{if(Object.is(e,r))return e;if(Array.isArray(e)&&Array.isArray(r)){const n=r.map((o,i)=>ee(e[i],o));return e.length===n.length&&n.every((o,i)=>o===e[i])?e:n}if(ce(e)&&ce(r)){const n=Object.keys(e),t=Object.keys(r),o={};let i=n.length===t.length;for(const s of t){Object.prototype.hasOwnProperty.call(e,s)||(i=!1);const c=ee(e[s],r[s]);o[s]=c,c!==e[s]&&(i=!1)}return i?e:o}return r},Me=(e,r)=>e?ee(e,r):r,te=e=>({tradeCount:e.tradeCount,tradeInterval:e.tradeInterval,orderDuration:e.orderDuration,limitPriceUi:e.limitPriceUi,triggerPriceUi:e.triggerPriceUi,triggerPricePercent:e.triggerPricePercent,limitPricePercent:e.limitPricePercent,isMarketOrder:e.isMarketOrder,isPriceInverted:void 0}),De=e=>({...te(e),cancelOrders:{},currentExecution:Y()}),ue={isFetching:!1},de={isFetching:!1},be=e=>new Promise(r=>setTimeout(r,e)),Ge=e=>{let r=0,n,t,o=0,i,s,c,u=!1,S=0,y=0,I,g,f;return Se.createStore((P,h)=>{const F=async()=>{if(!n||!t)return;if(i)return i;const O=++o,E=t;P(A=>({client:{key:n,data:A.client.data,error:void 0,isFetching:!0}}));const v=(async()=>{let A;for(let w=0;w<3;w++){if(O!==o)return;try{const L=await E();return O!==o?void 0:(P({client:{key:n,data:L,isFetching:!1}}),L)}catch(L){if(A=L instanceof Error?L:new Error(String(L)),O!==o)return;w<2&&await be(2**w*1e3)}}O===o&&P({client:{key:n,error:A,isFetching:!1}})})();return i=v,v.finally(()=>{i===v&&(i=void 0)}),v},R=async(O=!1)=>{if(!O&&S===0||!s||!c)return h().orders.data;if(I)return I;const E=++y,v=c,A=h().orders.data,w=new AbortController;g=w,P(N=>({orders:{key:s,data:N.orders.data,error:void 0,isFetching:!0}}));const L=v(A,u,w.signal).then(({orders:N,legacyLoaded:D})=>{if(E!==y)return;u=D;const b=Me(h().orders.data,N);return P({orders:{key:s,data:b,isFetching:!1}}),b}).catch(N=>{if(E!==y||w.signal.aborted)return;const D=N instanceof Error?N:new Error(String(N));P(b=>({orders:{key:s,data:b.orders.data,error:D,isFetching:!1}}))});return I=L,L.finally(()=>{I===L&&(I=void 0),g===w&&(g=void 0)}),L},K=()=>{R()},_=()=>{f&&(clearInterval(f),f=void 0),typeof window<"u"&&window.removeEventListener("focus",K),g==null||g.abort(),g=void 0,I=void 0,y++,P(O=>({orders:{...O.orders,isFetching:!1}}))},B=()=>{!s||!c||f||(R(!0),f=setInterval(()=>{R()},Le),typeof window<"u"&&window.addEventListener("focus",K))};return{client:ue,orders:de,state:De(e),configureClient:(O,E)=>{if(n===O){t=E;return}n=O,t=E,o++,i=void 0,P({client:O?{key:O,isFetching:!1}:ue}),O&&E&&F()},refetchClient:F,configureOrders:(O,E)=>{if(s===O){c=E;return}_(),s=O,c=E,u=!1,P({orders:O?{key:O,isFetching:!1}:de}),S>0&&B()},registerOrdersConsumer:()=>(S++,S===1&&B(),()=>{S=Math.max(0,S-1),S===0&&_()}),refetchOrders:R,addOrder:O=>{P(E=>{const v=E.orders.data;return v!=null&&v.some(A=>A.historyKey===O.historyKey)?E:{orders:{...E.orders,data:[O,...v??[]]}}})},updateOrderStatus:(O,E)=>{P(v=>{var A;return{orders:{...v.orders,data:(A=v.orders.data)==null?void 0:A.map(w=>w.historyKey===O?{...w,status:E}:w)}}})},updateState:O=>P(E=>({state:{...E.state,...O}})),beginExecution:O=>{let E;return P(v=>Ce(v.state.currentExecution.phase)?(E={...O,executionId:++r,phase:l.PREPARING},{state:{...v.state,currentExecution:E}}):v),E},replaceExecution:(O,E)=>{let v=!1;return P(A=>{const w=A.state.currentExecution;return w.executionId!==O||E.executionId!==O||!ye(w.phase,E.phase)?A:(v=!0,{state:{...A.state,currentExecution:E}})}),v},returnToOrderForm:()=>{const O=h().state.currentExecution;return U(O.phase)||O.phase===l.SUCCESS?!1:(P(E=>({state:{...E.state,currentExecution:Y(O.completedWrap)}})),!0)},syncFormDefaults:O=>U(h().state.currentExecution.phase)?!1:(P(E=>({state:{...E.state,...te(O),currentExecution:Y()}})),!0),startNewOrder:O=>{const{state:E}=h();return U(E.currentExecution.phase)?!1:(P(v=>({state:{...v.state,...te(O),isMarketOrder:E.isMarketOrder,currentExecution:Y()}})),!0)}}})},le=e=>{var n;const r=(n=e.overrides)==null?void 0:n.state;return{isMarketOrder:e.module===a.Module.LIMIT?!1:r==null?void 0:r.isMarketOrder,tradeCount:r==null?void 0:r.tradeCount,tradeInterval:r==null?void 0:r.tradeInterval,orderDuration:r==null?void 0:r.orderDuration,limitPriceUi:r==null?void 0:r.limitPriceUi,triggerPriceUi:r==null?void 0:r.triggerPriceUi,triggerPricePercent:r==null?void 0:r.triggerPricePercent,limitPricePercent:r==null?void 0:r.limitPricePercent}},me=d.createContext(null),xe=({children:e,initialState:r})=>{const[n]=d.useState(()=>Ge(r));return p.jsx(me.Provider,{value:n,children:e})},H=()=>{const e=d.useContext(me);if(e===null)throw new Error("useSpotStore must be used within SpotProvider");return e},T=e=>{const r=H();return Oe.useStore(r,e)},_e={isFetching:!1},J=()=>{const{partner:e,chainId:r,isSupportedChain:n}=M(),t=H(),o=T(y=>y.client),i=!!(r&&n),s=i?`${e}:${r}`:void 0,c=o.key===s?o:_e,u=d.useCallback(()=>r?a.createClient(e,r):Promise.reject(new Error("Spot is unavailable on the connected chain")),[r,e]);d.useEffect(()=>{t.getState().configureClient(s,i?u:void 0)},[i,s,u,t]);const S=d.useCallback(()=>{if(!i||!s)return Promise.resolve(void 0);const y=t.getState();return y.configureClient(s,u),y.refetchClient()},[i,s,u,t]);return d.useMemo(()=>({data:c.data,error:c.error,isLoading:i&&!c.data&&c.error===void 0,isFetching:c.isFetching,refetch:S}),[c,i,S])},je=({error:e,retry:r,isRetrying:n})=>p.jsxs("div",{className:"spot-client-error-fallback",role:"alert",children:[p.jsx("p",{children:e.message||"Unable to load Spot configuration."}),p.jsx("button",{type:"button",className:"spot-client-error-retry",disabled:n,onClick:r,children:n?"Retrying…":"Retry"})]}),Be=({children:e,fallback:r=je})=>{const{partner:n,chainId:t,isSupportedChain:o,minTradeSizeUsd:i}=M(),{data:s,error:c,isFetching:u,refetch:S}=J(),y=d.useCallback(async()=>{await S()},[S]);return d.useEffect(()=>{!s||!t||!o||a.analytics.onFetchedConfig(s.rePermitData,n,a.getTwapConfig(n,t),i)},[t,s,o,i,n]),p.jsxs(p.Fragment,{children:[e,!s&&c&&o?p.jsx(r,{error:c,retry:y,isRetrying:u}):null]})},qe=({resetErrorBoundary:e})=>p.jsxs("div",{className:"twap-error-fallback",role:"alert",children:[p.jsx("p",{children:"Something went wrong"}),p.jsx("button",{type:"button",onClick:e,children:"Retry"})]}),We=({children:e,fallback:r=qe})=>p.jsx(Ve,{fallback:r,children:e});class Ve extends d.Component{constructor(){super(...arguments);ie(this,"state",{});ie(this,"resetErrorBoundary",()=>{this.setState({error:void 0})})}static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n){a.analytics.onCrash(n)}render(){const{error:n}=this.state;if(n){const t=this.props.fallback;return p.jsx(t,{error:n,resetErrorBoundary:this.resetErrorBoundary})}return this.props.children}}const Ke=({children:e,defaults:r,scopeKey:n})=>{const t=H(),o=T(s=>s.state.currentExecution.phase),i=d.useRef(n);return d.useEffect(()=>{i.current===n||U(o)||t.getState().syncFormDefaults(r)&&(i.current=n)},[r,o,n,t]),e},ge=d.createContext(null),He=({children:e})=>{const{inputToken:r,outputToken:n,inputAmountUi:t,quotedOutputAmountRaw:o,inputTokenUsdPrice:i,outputTokenUsdPrice:s,minTradeSizeUsd:c,inputBalanceRaw:u,displayFeePercent:S,priceProtectionPercent:y,module:I}=M(),g=T(A=>A.state.tradeCount),f=T(A=>A.state.tradeInterval),P=T(A=>A.state.orderDuration),h=T(A=>A.state.limitPriceUi),F=T(A=>A.state.triggerPriceUi),R=T(A=>A.state.limitPricePercent),K=T(A=>A.state.triggerPricePercent),_=T(A=>A.state.isPriceInverted),B=T(A=>A.state.isMarketOrder),O=T(A=>{const w=A.state.currentExecution;return w.phase!==l.IDLE?w.form:void 0}),E=d.useMemo(()=>({module:I,inputTokenDecimals:(r==null?void 0:r.decimals)??0,outputTokenDecimals:(n==null?void 0:n.decimals)??0,quotedOutputAmountRaw:o,inputTokenUsdPrice:i,outputTokenUsdPrice:s,minTradeSizeUsd:c,priceProtectionPercent:y,displayFeePercent:S,inputBalanceRaw:u,userInput:{inputAmountUi:t,isMarketOrder:!!B,tradeCount:g,tradeInterval:f,orderDuration:P,limitPriceUi:h,limitPricePercent:R,triggerPriceUi:F,triggerPricePercent:K,isPriceInverted:_}}),[n==null?void 0:n.decimals,s,S,o,c,I,y,u,r==null?void 0:r.decimals,i,_,B,R,K,g,P,f,h,t,F]),v=d.useMemo(()=>{const A=a.calculateOrderForm(E);return r&&n?A:{...A,isReady:!1,canSubmit:!1}},[r,n,E]);return p.jsx(ge.Provider,{value:O??v,children:e})},j=()=>{const e=d.useContext(ge);if(!e)throw new Error("useOrderForm must be used within OrderFormProvider");return e},ze=(e,r)=>{d.useEffect(()=>{!e.chainId||!r||a.analytics.init(e.partner,e.minTradeSizeUsd,e.chainId,e.appId)},[e.appId,e.chainId,e.minTradeSizeUsd,e.partner,r])},Ue=e=>{var I,g,f,P,h,F,R,K,_,B,O,E;const r=d.useMemo(()=>a.getPartnerChains(e.partner),[e.partner]),n=!!(e.chainId&&r.includes(e.chainId)),t=(I=e.wrappedNativeToken)==null?void 0:I.address,o=!!(t&&(a.isNativeAddress((g=e.inputToken)==null?void 0:g.address)&&a.eqIgnoreCase(((f=e.outputToken)==null?void 0:f.address)||"",t)||a.eqIgnoreCase(((P=e.inputToken)==null?void 0:P.address)||"",t)&&a.isNativeAddress((h=e.outputToken)==null?void 0:h.address))),i=o?a.toAmountRaw(e.inputAmountUi,(F=e.outputToken)==null?void 0:F.decimals):e.marketQuote.isLoading?void 0:e.marketQuote.quotedOutputAmountRaw,s=o?!1:e.marketQuote.isLoading,c=o?!1:e.marketQuote.noLiquidity,u=d.useMemo(()=>le({module:e.module,overrides:e.overrides}),[e.module,e.overrides]),S=JSON.stringify([e.partner,e.chainId,e.module,(R=e.inputToken)==null?void 0:R.address,(K=e.inputToken)==null?void 0:K.decimals,(_=e.outputToken)==null?void 0:_.address,(B=e.outputToken)==null?void 0:B.decimals,(O=e.wrappedNativeToken)==null?void 0:O.address,(E=e.wrappedNativeToken)==null?void 0:E.decimals,u]),y=d.useMemo(()=>({inputAmountUi:e.inputAmountUi,minTradeSizeUsd:e.minTradeSizeUsd,account:e.account,walletInteractions:e.walletInteractions,quotedOutputAmountRaw:i,marketPriceLoading:s,noLiquidity:c,priceProtectionPercent:e.priceProtectionPercent,chainId:e.chainId,isSupportedChain:n,partner:e.partner,module:e.module,displayFeePercent:e.displayFeePercent??0,callbacks:e.callbacks,inputTokenUsdPrice:e.inputTokenUsdPrice,outputTokenUsdPrice:e.outputTokenUsdPrice,inputBalanceRaw:e.inputBalanceRaw,inputToken:e.inputToken,outputToken:e.outputToken,wrappedNativeToken:e.wrappedNativeToken,supportLegacyOrders:e.supportLegacyOrders??!1,overrides:e.overrides}),[e.account,e.callbacks,e.chainId,e.displayFeePercent,e.inputBalanceRaw,e.inputToken,e.inputTokenUsdPrice,e.minTradeSizeUsd,e.module,e.outputToken,e.outputTokenUsdPrice,e.wrappedNativeToken,e.overrides,e.partner,e.priceProtectionPercent,e.supportLegacyOrders,e.inputAmountUi,e.walletInteractions,n,s,c,i]);return{initialState:u,formScopeKey:S,runtime:y}},Je=e=>{const{initialState:r,formScopeKey:n,runtime:t}=Ue(e);return ze(e,t.isSupportedChain),p.jsx(Ee,{value:t,children:p.jsx(xe,{initialState:r,children:p.jsx(We,{fallback:e.errorFallback,children:p.jsx(Ke,{defaults:r,scopeKey:n,children:p.jsx(Be,{fallback:e.clientErrorFallback,children:p.jsx(He,{children:e.children})})})})})})},Qe=(e,r)=>d.useMemo(()=>a.toAmountUI(r,e),[e,r]),Ye={isFetching:!1},re=()=>{const{account:e,partner:r,chainId:n,supportLegacyOrders:t,callbacks:o}=M(),{data:i}=J(),s=H(),c=!!(e&&i),u=c?JSON.stringify([e,i==null?void 0:i.exchangeAddress,r,n,t]):void 0,S=d.useCallback(async(I,g,f)=>{if(!e||!i)return{orders:[],legacyLoaded:!1};const P=t&&!g,h=await i.getAccountOrders({signal:f,account:e,legacyOrders:P});return Fe(I,h,o),{orders:t&&!P?Ne(h,I):h,legacyLoaded:g||P}},[e,o,i,t]);d.useEffect(()=>{s.getState().configureOrders(u,c?S:void 0)},[c,u,S,s]);const y=d.useCallback(()=>{if(!c||!u)return Promise.resolve(void 0);const I=s.getState();return I.configureOrders(u,S),I.refetchOrders(!0)},[c,u,S,s]);return{enabled:c,key:u,refetch:y}},$e=()=>{re();const e=H();return d.useCallback(r=>e.getState().addOrder(r),[e])},ke=()=>{const e=H();return d.useCallback((r,n)=>e.getState().updateOrderStatus(r,n),[e])},Ze=()=>{const e=H();return d.useCallback(()=>e.getState().refetchOrders(),[e])},Xe=()=>{const e=T(u=>u.orders),r=T(u=>u.registerOrdersConsumer),{enabled:n,key:t,refetch:o}=re(),i=e.key===t?e:Ye;d.useEffect(()=>r(),[r]);const s=d.useMemo(()=>i.data===void 0?void 0:ae(i.data),[i.data]),c=d.useCallback(async()=>{const u=await o();return u===void 0?void 0:ae(u)},[o]);return d.useMemo(()=>({data:s,error:i.error,isLoading:n&&s===void 0&&i.error===void 0,isFetching:i.isFetching,isRefetching:i.isFetching&&s!==void 0,refetch:c}),[i,s,n,c])},et=60,tt=()=>{const{refetch:e}=re();return d.useCallback(async r=>{for(let n=0;n<et;n++){const t=await e();if(!t)throw new Error("orders not found");const o=t.find(i=>i.historyKey===r);if((o==null?void 0:o.status)===a.OrderStatus.Cancelled)return;await new Promise(i=>setTimeout(i,1e3))}throw new Error("Timed out waiting for order cancellation to be confirmed")},[e])},rt=()=>{const e=H(),r=T(t=>t.updateState);return{cancelOrders:T(t=>t.state.cancelOrders),setCancelOrder:(t,o)=>{const i=e.getState().state.cancelOrders;r({cancelOrders:{...i,[t]:o}})},clearCancelOrder:t=>{const o=e.getState().state.cancelOrders,{[t]:i,...s}=o;r({cancelOrders:s})}}},nt=e=>({...e,status:a.OrderStatus.Cancelled}),it=e=>{const{account:r,walletInteractions:n,callbacks:t}=M(),{data:o}=J(),i=tt(),s=ke(),{cancelOrders:c,setCancelOrder:u,clearCancelOrder:S}=rt(),y=d.useCallback(async()=>{const g=e==null?void 0:e.historyKey;try{if(!r)throw new Error("missing account");if(!e)throw new Error("order is required");if(!o)throw new Error("Spot client is unavailable");const f=e.historyKey;u(f,{status:q.LOADING}),C(()=>{var R;return(R=t==null?void 0:t.onCancelOrderRequest)==null?void 0:R.call(t,e)}),C(()=>a.analytics.onCancelOrderRequest([e.version===1?e.id.toString():e.hash],e.version));const P=o.getCancelOrderRequest(e),h=await n.cancelOrder(P);if(!h)throw new Error("failed to cancel order");C(()=>a.analytics.onCancelOrderSuccess(h));const F=nt(e);return s(f,a.OrderStatus.Cancelled),u(f,{status:q.SUCCESS,txHash:h}),C(()=>{var R;return(R=t==null?void 0:t.onCancelOrderSuccess)==null?void 0:R.call(t,{order:F,txHash:h})}),e.version!==1&&i(f).catch(R=>{console.warn("cancel status sync lagging",R)}),h}catch(f){a.isTxRejected(f)?g&&S(g):(g&&u(g,{status:q.FAILED,error:Z(f)}),C(()=>a.analytics.onCancelOrderError(f))),C(()=>{var P;return(P=t==null?void 0:t.onCancelOrderFailed)==null?void 0:P.call(t,$(f))})}},[r,t,S,o,e,i,u,s,n]),I=d.useMemo(()=>{const g=c[(e==null?void 0:e.historyKey)||""];return{isLoading:(g==null?void 0:g.status)===q.LOADING,disabled:!!(e&&!o),isSuccess:(g==null?void 0:g.status)===q.SUCCESS,isError:(g==null?void 0:g.status)===q.FAILED,error:g==null?void 0:g.error,txHash:g==null?void 0:g.txHash}},[c,e,o]);return d.useMemo(()=>({cancelOrder:y,...I}),[y,I])},ot=()=>{const{module:e,values:r}=j();if(r.isMarketOrder&&e===a.Module.STOP_LOSS)return Q.TRIGGER_MARKET_PRICE;if(e===a.Module.LIMIT||e===a.Module.TWAP)return r.isMarketOrder?Q.MARKET_PRICE:Q.LIMIT_PRICE},st=()=>{const{callbacks:e}=M(),r=T(c=>c.updateState),{schedule:n}=j(),{duration:t}=n,o=d.useCallback(c=>{r({orderDuration:c}),C(()=>{var u;return(u=e==null?void 0:e.onOrderDurationChange)==null?void 0:u.call(e,c)})},[e,r]),i=d.useCallback(c=>{const u=Number(c);Number.isFinite(u)&&o({unit:t.unit,value:u})},[t.unit,o]),s=d.useCallback(c=>{o({unit:c,value:t.value})},[t.value,o]);return d.useMemo(()=>({duration:t,onChange:o,milliseconds:n.durationMillis,onInputChange:i,onUnitSelect:s,error:n.durationError}),[t,o,i,s,n])},at=()=>{const{callbacks:e}=M(),r=T(c=>c.updateState),{schedule:n}=j(),{fillDelay:t}=n,o=d.useCallback(c=>{r({tradeInterval:c}),C(()=>{var u;return(u=e==null?void 0:e.onTradeIntervalChange)==null?void 0:u.call(e,c)})},[e,r]),i=d.useCallback(c=>{const u=Number(c);Number.isFinite(u)&&o({unit:t.unit,value:u})},[t.unit,o]),s=d.useCallback(c=>o({unit:c,value:t.value}),[t.value,o]);return d.useMemo(()=>({onInputChange:i,onUnitSelect:s,onChange:o,milliseconds:n.fillDelayMillis,fillDelay:t,error:n.fillDelayError}),[t,o,i,s,n])},W=(e,r)=>({raw:e||"",ui:a.toAmountUI(e,r)}),ct=(e,r,n)=>d.useMemo(()=>!e||!r||!n?[]:e.map(t=>({rawFill:t,inputToken:r,outputToken:n,inputAmount:W(t.inAmount,r.decimals),outputAmount:W(t.outAmount,n.decimals),timestamp:t.timestamp,txHash:t.txHash,executionRate:a.getOrderExecutionRate(t.inAmount,t.outAmount,r.decimals,n.decimals)})),[e,r,n]),ut=(e,r,n)=>{const{chainId:t,partner:o}=M(),i=d.useMemo(()=>{if(!(!r||!n||!e||e.isMarketPrice))return a.getOrderLimitPriceRate(e,r.decimals,n.decimals)},[r,e,n]),s=d.useMemo(()=>{if(!(!r||!n||!e))return a.getTriggerPriceRate(e,r.decimals,n.decimals)},[r,e,n]),c=d.useMemo(()=>{if(!(!r||!n||!e))return a.getOrderExecutionRate(e.srcAmountFilled,e.dstAmountFilled,r.decimals,n.decimals)},[r,e,n]),u=d.useMemo(()=>e?a.getOrderFillDelayMillis(e,t?a.getTwapConfig(o,t):void 0):0,[e,o,t]),S=ct(e==null?void 0:e.fills,r,n);return d.useMemo(()=>{if(e!=null&&e.id)return{original:e,fills:S,inputToken:r,outputToken:n,orderType:e.type,createdAt:e.createdAt,deadline:e.deadline||0,totalTrades:e.totalTradesAmount||0,tradeInterval:u,recipient:e.maker||"",inputAmount:W(e.srcAmount,r==null?void 0:r.decimals),limitPrice:W(a.toAmountRaw(i,n==null?void 0:n.decimals),n==null?void 0:n.decimals),inputAmountPerTrade:W(e.srcAmountPerTrade,r==null?void 0:r.decimals),minOutputAmountPerTrade:W(e.dstMinAmountPerTrade,n==null?void 0:n.decimals),minOutputAmount:W(e.dstMinAmountTotal,n==null?void 0:n.decimals),triggerPrice:W(a.toAmountRaw(s,n==null?void 0:n.decimals),n==null?void 0:n.decimals),id:e.id,inputAmountFilled:W(e.srcAmountFilled,r==null?void 0:r.decimals),outputAmountFilled:W(e.dstAmountFilled,n==null?void 0:n.decimals),progress:e.progress,executionPrice:W(a.toAmountRaw(c,n==null?void 0:n.decimals),n==null?void 0:n.decimals),version:e.version}},[e,S,r,n,u,i,s,c])},dt=()=>{const{marketPriceLoading:e}=M(),r=j().errors.primary;return e?void 0:r},lt=()=>{const{marketPriceLoading:e,inputToken:r,outputToken:n,callbacks:t}=M(),{limitPrice:o,values:i,module:s,isInverted:c}=j(),u=T(P=>P.updateState),S=d.useCallback(P=>{u({limitPriceUi:P,limitPricePercent:null}),C(()=>{var h;return(h=t==null?void 0:t.onLimitPriceChange)==null?void 0:h.call(t,P||"")}),C(()=>{var h;return(h=t==null?void 0:t.onLimitPricePercentChange)==null?void 0:h.call(t,"")})},[t,u]),y=d.useCallback(P=>{u({limitPriceUi:void 0,limitPricePercent:P}),C(()=>{var h;return(h=t==null?void 0:t.onLimitPriceChange)==null?void 0:h.call(t,"")}),C(()=>{var h;return(h=t==null?void 0:t.onLimitPricePercentChange)==null?void 0:h.call(t,P||"")})},[t,u]),I=d.useCallback(()=>{u({limitPriceUi:void 0,limitPricePercent:void 0})},[u]),g=!i.isMarketOrder,f=d.useCallback(()=>{u({isMarketOrder:!i.isMarketOrder,...i.isMarketOrder?{}:{isPriceInverted:!1},...!i.isMarketOrder&&s===a.Module.STOP_LOSS?{limitPricePercent:void 0}:{}})},[s,u,i.isMarketOrder]);return d.useMemo(()=>({price:o.display,canonicalPriceRaw:o.raw,error:o.error,onInputChange:S,onPercentageChange:y,onReset:I,inputToken:r,outputToken:n,displayInputToken:c?n:r,displayOutputToken:c?r:n,percentage:o.percentage,isLoading:!!e,isEnabled:g,toggle:f,isTypedValue:o.isTypedValue}),[r,c,g,o,e,S,y,I,n,f])},mt=()=>{const{marketPriceLoading:e}=M(),{outputAmount:r}=j();return d.useMemo(()=>({amount:r,isLoading:!!e}),[e,r])},gt=()=>{const{inputToken:e,outputToken:r}=M(),n=T(u=>u.updateState),{isInverted:t,values:o}=j(),i=T(u=>u.state.triggerPriceUi),s=T(u=>u.state.limitPriceUi),c=d.useCallback(()=>{n({isPriceInverted:!t,...i!==void 0?{triggerPriceUi:a.invertPriceInput(i)}:{},...s!==void 0?{limitPriceUi:a.invertPriceInput(s)}:{}})},[n,t,i,s]);return d.useMemo(()=>({onInvert:c,isInverted:t,inputToken:e,outputToken:r,displayInputToken:t?r:e,displayOutputToken:t?e:r,isMarketOrder:o.isMarketOrder}),[e,t,c,r,o.isMarketOrder])},Pe=3,Pt=3e3,ft=e=>new Promise(r=>setTimeout(r,e)),ne=(e,r)=>{if(!/^\d+$/.test(e))throw new Error(`${r} must be a non-negative integer base-unit amount`);return BigInt(e)},fe=async({client:e,walletInteractions:r,tokenAddress:n,inputAmountRaw:t})=>{const o=await r.getAllowance({tokenAddress:n,spenderAddress:e.spenderAddress});return ne(o||"0","Allowance")>=ne(t,"Input amount")},Ot=e=>{if(!e.client)throw new Error("Spot client is unavailable");if(!e.isSupportedChain||!e.chainId)throw new Error("Spot is unavailable on the connected chain");if(!e.account)throw new Error("missing account");if(!e.inputToken)throw new Error("missing inputToken");if(!e.outputToken)throw new Error("missing outputToken");const r=a.isNativeAddress(e.inputToken.address)?e.wrappedNativeToken:e.inputToken;if(!r||a.isNativeAddress(r.address))throw new Error("missing wrappedNativeToken for native input");if(!e.form.canSubmit)throw new Error("Order form is not submittable");const n=e.form.inputAmount.raw;return ne(n,"Input amount"),{account:e.account,chainId:e.chainId,inputToken:e.inputToken,orderInputToken:r,outputToken:e.outputToken,client:e.client,inputAmountRaw:n}},St=({account:e,chainId:r,inputToken:n,outputToken:t,preparedOrder:o})=>{const{form:i,values:s}=o;C(()=>a.analytics.onRequestOrder({account:e,chainId:r,module:i.module,srcToken:n,dstToken:t,fromTokenAmount:s.inputAmount,srcChunkAmount:s.inputAmountPerTrade,triggerPricePerTrade:s.triggerOutputAmountPerTrade,deadline:s.deadlineMillis,fillDelay:s.fillDelayMillis,minDstAmountOutPerTrade:s.minOutputAmountPerTrade,slippage:i.values.slippageBps/100,isMarketOrder:s.isMarketOrder,chunksAmount:s.totalTrades}))},ht=async e=>{const{form:r,walletInteractions:n,callbacks:t,addNewOrder:o,refetchActiveOrders:i,getCurrentExecution:s,beginExecution:c,replaceExecution:u,wait:S=ft}=e;let y;try{y=Ot(e)}catch(w){const L=$(w),N=X(w),D=c({form:r,inputToken:e.inputToken,outputToken:e.outputToken,chainId:e.chainId});throw D&&u(D.executionId,{...D,phase:l.FAILED,error:L,parsedError:N}),C(()=>{var b;return(b=t==null?void 0:t.onSubmitOrderFailed)==null?void 0:b.call(t,N)}),L}const{account:I,chainId:g,inputToken:f,orderInputToken:P,outputToken:h,client:F,inputAmountRaw:R}=y,K=s(),_=Te({execution:K,account:I,chainId:g,inputTokenAddress:f.address,inputAmountRaw:R}),B=c({form:r,inputToken:f,outputToken:h,chainId:g,completedWrap:_,wrapTxHash:_==null?void 0:_.txHash});if(!B)return;const O=B.executionId;let E=B;const v=(w,L={})=>{const N={...E,...L,executionId:O,phase:w};if(!u(O,N))throw new Error("Execution is no longer current");E=N},A=(w,L={})=>{const N={...E,...L,executionId:O,phase:w};return u(O,N)?(E=N,!0):!1};try{const w=a.isNativeAddress(f.address)&&!_,L=!await fe({client:F,walletInteractions:n,tokenAddress:P.address,inputAmountRaw:R}),N=[];w&&N.push(z.WRAP),L&&N.push(z.APPROVE),N.push(z.CREATE);let D=0;if(v(l.PREPARING,{pendingSteps:N,totalSteps:N.length,stepIndex:D,hasApproval:!L}),w){v(l.WRAPPING),C(()=>a.analytics.onWrapRequest()),C(t==null?void 0:t.onWrapRequest);const G=await n.wrapNativeToken(R);if(!G)throw new Error("failed to wrap input token");const V={account:I,chainId:g,inputTokenAddress:f.address,inputAmountRaw:R,txHash:G};D++,v(l.WRAPPING,{wrapTxHash:G,completedWrap:V,stepIndex:D}),C(()=>a.analytics.onWrapSuccess(G)),C(()=>{var x;return(x=t==null?void 0:t.onWrapSuccess)==null?void 0:x.call(t,{txHash:G,amount:a.toAmountUI(R,P.decimals)})})}if(L){v(l.APPROVING),C(()=>a.analytics.onApproveRequest()),C(t==null?void 0:t.onApproveRequest);const G=await n.approveToken({tokenAddress:P.address,amount:R,spenderAddress:F.spenderAddress});if(!G)throw new Error("failed to approve token");v(l.APPROVING,{approveTxHash:G});let V=!1;for(let x=0;x<Pe&&(V=await fe({client:F,walletInteractions:n,tokenAddress:P.address,inputAmountRaw:R}),!V);x++)x<Pe-1&&await S(Pt);if(!V)throw new Error(`Insufficient ${P.symbol} allowance to perform the swap. Please approve the token first.`);D++,v(l.APPROVING,{hasApproval:!0,stepIndex:D}),C(()=>a.analytics.onApproveSuccess(G)),C(()=>{var x;return(x=t==null?void 0:t.onApproveSuccess)==null?void 0:x.call(t,{txHash:G,token:P,amount:a.toAmountUI(R,P.decimals)})})}v(l.SIGNING);const b=F.prepareOrder({form:r,inputTokenAddress:P.address,outputTokenAddress:h.address,swapperAddress:I});v(l.SIGNING,{preparedOrder:b}),St({account:I,chainId:g,inputToken:f,outputToken:h,preparedOrder:b});const wt=await F.signOrder(b,async G=>{C(t==null?void 0:t.onSignOrderRequest);try{const V=await n.signOrder(G);return C(()=>{var x;return(x=t==null?void 0:t.onSignOrderSuccess)==null?void 0:x.call(t,V)}),V}catch(V){throw C(()=>{var x;return(x=t==null?void 0:t.onSignOrderError)==null?void 0:x.call(t,$(V))}),V}});v(l.SUBMITTING);const k=await F.submitOrder(b,wt);return v(l.SUCCESS,{orderId:k.id.toString()}),C(()=>o(k)),C(()=>i()),C(()=>{var G;return(G=t==null?void 0:t.onOrderCreated)==null?void 0:G.call(t,k)}),k}catch(w){const L=E.phase,N=$(w),D=a.isTxRejected(w);throw A(D?l.REJECTED:l.FAILED,{error:N,parsedError:X(w)}),L===l.WRAPPING?C(()=>a.analytics.onWrapError(w)):L===l.APPROVING&&C(()=>a.analytics.onApproveError(w)),C(D?t==null?void 0:t.onSubmitOrderRejected:()=>{var b;return(b=t==null?void 0:t.onSubmitOrderFailed)==null?void 0:b.call(t,X(w))}),N}},Et=()=>{const{inputToken:e,outputToken:r,wrappedNativeToken:n,chainId:t,isSupportedChain:o,callbacks:i,account:s,walletInteractions:c}=M(),{data:u}=J(),S=$e(),y=Ze(),I=j(),g=H();return d.useCallback(()=>{ht({account:s,chainId:t,isSupportedChain:o,inputToken:e,outputToken:r,wrappedNativeToken:n,form:I,client:u,walletInteractions:c,callbacks:i,addNewOrder:S,refetchActiveOrders:y,getCurrentExecution:()=>g.getState().state.currentExecution,beginExecution:g.getState().beginExecution,replaceExecution:g.getState().replaceExecution}).catch(()=>{})},[s,S,i,t,u,I,e,o,r,n,y,g,c])},It=()=>{const e=T(n=>n.state.currentExecution),r=T(n=>n.returnToOrderForm);return d.useMemo(()=>({...e,returnToOrderForm:r}),[e,r])},At=()=>{const e=It(),{inputToken:r,outputToken:n,chainId:t,isSupportedChain:o,module:i,overrides:s}=M(),{data:c,isLoading:u}=J(),S=Et(),y=T(F=>F.startNewOrder),I=d.useCallback(()=>S(),[S]),g=d.useCallback(()=>y(le({module:i,overrides:s})),[i,s,y]),f=ve(e.phase),P=we(e.phase),h=U(e.phase);return d.useMemo(()=>({phase:e.phase,status:f,error:e.parsedError,currentStep:P,currentStepIndex:e.stepIndex,approvalTxHash:e.approveTxHash,wrapTxHash:e.wrapTxHash,totalSteps:e.totalSteps,executionSteps:e.pendingSteps,inputToken:e.inputToken??r,outputToken:e.outputToken??n,chainId:e.chainId??t,submitOrder:I,startNewOrder:g,returnToOrderForm:e.returnToOrderForm,isExecuting:h,isSuccess:e.phase===l.SUCCESS,isFailed:e.phase===l.FAILED,isRejected:e.phase===l.REJECTED,isPreparingOrder:e.phase===l.PREPARING||o&&u&&!c,canDismiss:!h}),[c,P,r,n,t,u,h,o,g,I,f,e])},Ct=()=>{const{inputToken:e,outputToken:r,wrappedNativeToken:n,inputBalanceRaw:t,noLiquidity:o,inputAmountUi:i,marketPriceLoading:s,isSupportedChain:c}=M(),u=j(),{data:S,isLoading:y}=J(),I=T(R=>R.state.currentExecution.phase),g=U(I),f=!!(e&&a.isNativeAddress(e.address)&&(!n||a.isNativeAddress(n.address))),P=s||!u.isReady||t===void 0,h=g||c&&y&&!S||!!(e&&r&&i&&P),F=!!(!u.canSubmit||g||!c||!S||o||h||!e||!r||f);return d.useMemo(()=>({disabled:F,loading:h}),[F,h])},yt=()=>{const{inputToken:e,outputToken:r,callbacks:n}=M(),t=T(s=>s.updateState),{trades:o}=j(),i=d.useCallback(s=>{t({tradeCount:s}),C(()=>{var c;return(c=n==null?void 0:n.onTradeCountChange)==null?void 0:c.call(n,s)})},[n,t]);return d.useMemo(()=>({totalTrades:o.totalTrades,maxTrades:o.maxTrades,inputAmountPerTrade:o.inputAmountPerTrade,minOutputAmountPerTrade:o.minOutputAmountPerTrade,triggerOutputAmountPerTrade:o.triggerOutputAmountPerTrade,onChange:i,error:o.error,inputToken:e,outputToken:r}),[e,i,r,o])},vt=()=>{const{marketPriceLoading:e,inputToken:r,outputToken:n,callbacks:t}=M(),{marketPrice:o,trades:i,triggerPrice:s,isInverted:c}=j(),u=T(g=>g.updateState),S=d.useCallback(g=>{u({triggerPriceUi:g,triggerPricePercent:null}),C(()=>{var f;return(f=t==null?void 0:t.onTriggerPriceChange)==null?void 0:f.call(t,g||"")}),C(()=>{var f;return(f=t==null?void 0:t.onTriggerPricePercentChange)==null?void 0:f.call(t,"")})},[t,u]),y=d.useCallback(g=>{u({triggerPriceUi:void 0,triggerPricePercent:g}),C(()=>{var f;return(f=t==null?void 0:t.onTriggerPriceChange)==null?void 0:f.call(t,"")}),C(()=>{var f;return(f=t==null?void 0:t.onTriggerPricePercentChange)==null?void 0:f.call(t,g||"")})},[t,u]),I=d.useCallback(()=>{u({triggerPricePercent:void 0,triggerPriceUi:void 0})},[u]);return d.useMemo(()=>({price:s.display,canonicalPriceRaw:s.raw,outputAmountPerTrade:i.triggerOutputAmountPerTrade,error:s.error,onInputChange:S,onPercentageChange:y,percentage:s.percentage,onReset:I,inputToken:r,outputToken:n,displayInputToken:c?n:r,displayOutputToken:c?r:n,isLoading:!!(e||!o.raw),isTypedValue:s.isTypedValue}),[r,c,o.raw,e,S,y,I,n,i.triggerOutputAmountPerTrade,s])};a.setUIVersion(he.version),Object.defineProperty(m,"DISCLAIMER_URL",{enumerable:!0,get:()=>a.DISCLAIMER_URL}),Object.defineProperty(m,"InputErrors",{enumerable:!0,get:()=>a.InputErrors}),Object.defineProperty(m,"Module",{enumerable:!0,get:()=>a.Module}),Object.defineProperty(m,"ORBS_LOGO",{enumerable:!0,get:()=>a.ORBS_LOGO}),Object.defineProperty(m,"ORBS_SLTP_FAQ_URL",{enumerable:!0,get:()=>a.ORBS_SLTP_FAQ_URL}),Object.defineProperty(m,"ORBS_TWAP_FAQ_URL",{enumerable:!0,get:()=>a.ORBS_TWAP_FAQ_URL}),Object.defineProperty(m,"ORBS_WEBSITE_URL",{enumerable:!0,get:()=>a.ORBS_WEBSITE_URL}),Object.defineProperty(m,"OrderFilter",{enumerable:!0,get:()=>a.OrderFilter}),Object.defineProperty(m,"OrderStatus",{enumerable:!0,get:()=>a.OrderStatus}),Object.defineProperty(m,"OrderType",{enumerable:!0,get:()=>a.OrderType}),Object.defineProperty(m,"Partners",{enumerable:!0,get:()=>a.Partners}),Object.defineProperty(m,"SPOT_VERSION",{enumerable:!0,get:()=>a.SPOT_VERSION}),Object.defineProperty(m,"TimeUnit",{enumerable:!0,get:()=>a.TimeUnit}),Object.defineProperty(m,"calculateOrderForm",{enumerable:!0,get:()=>a.calculateOrderForm}),Object.defineProperty(m,"createClient",{enumerable:!0,get:()=>a.createClient}),Object.defineProperty(m,"eqIgnoreCase",{enumerable:!0,get:()=>a.eqIgnoreCase}),Object.defineProperty(m,"getOrderExecutionRate",{enumerable:!0,get:()=>a.getOrderExecutionRate}),Object.defineProperty(m,"getOrderFillDelayMillis",{enumerable:!0,get:()=>a.getOrderFillDelayMillis}),Object.defineProperty(m,"getOrderLimitPriceRate",{enumerable:!0,get:()=>a.getOrderLimitPriceRate}),Object.defineProperty(m,"getPartnerChains",{enumerable:!0,get:()=>a.getPartnerChains}),Object.defineProperty(m,"getPartners",{enumerable:!0,get:()=>a.getPartners}),Object.defineProperty(m,"getTriggerPriceRate",{enumerable:!0,get:()=>a.getTriggerPriceRate}),Object.defineProperty(m,"getTwapConfig",{enumerable:!0,get:()=>a.getTwapConfig}),Object.defineProperty(m,"invertPriceInput",{enumerable:!0,get:()=>a.invertPriceInput}),Object.defineProperty(m,"isNativeAddress",{enumerable:!0,get:()=>a.isNativeAddress}),Object.defineProperty(m,"isTxRejected",{enumerable:!0,get:()=>a.isTxRejected}),Object.defineProperty(m,"toAmountRaw",{enumerable:!0,get:()=>a.toAmountRaw}),Object.defineProperty(m,"toAmountUI",{enumerable:!0,get:()=>a.toAmountUI}),m.Disclaimer=Q,m.ExecutionPhase=l,m.ExecutionStatus=q,m.SpotProvider=Je,m.Steps=z,m.useAmountUi=Qe,m.useCancelOrder=it,m.useClient=J,m.useDisclaimer=ot,m.useDuration=st,m.useExecution=At,m.useFillDelay=at,m.useHistoryOrder=ut,m.useInputErrors=dt,m.useLimitPrice=lt,m.useOrderForm=j,m.useOrders=Xe,m.useOutputAmount=mt,m.usePriceDisplay=gt,m.useSubmitButton=Ct,m.useTrades=yt,m.useTriggerPrice=vt,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbs-network/spot-react",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "Spot React Components - React components for Spot SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/spot-react.umd.cjs",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "zustand": "^5.0.9",
32
- "@orbs-network/spot-ui": "2.1.0"
32
+ "@orbs-network/spot-ui": "2.1.1"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/react": "^19.0.2",
@@ -1 +0,0 @@
1
- {"version":3,"file":"spot-store.d.ts","sourceRoot":"","sources":["../../../../src/context/spot-store.tsx"],"names":[],"mappings":"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"}