@imtbl/sdk 1.13.4 → 1.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blockchain_data.js +2 -2
- package/dist/browser/checkout/{BridgeWidget-dcd71ca9.js → BridgeWidget-cefd712d.js} +1 -1
- package/dist/browser/checkout/{OnRampWidget-77b9252b.js → OnRampWidget-b4266e39.js} +1 -1
- package/dist/browser/checkout/{SaleWidget-22aeb5cf.js → SaleWidget-f9be8158.js} +1 -1
- package/dist/browser/checkout/{SpendingCapHero-30560501.js → SpendingCapHero-11f0e68a.js} +1 -1
- package/dist/browser/checkout/{SwapWidget-e566f294.js → SwapWidget-c5f9f041.js} +1 -1
- package/dist/browser/checkout/{TopUpView-d3059efc.js → TopUpView-6927b26e.js} +1 -1
- package/dist/browser/checkout/{WalletWidget-466870cf.js → WalletWidget-a17d0cc5.js} +1 -1
- package/dist/browser/checkout/{auto-track-ef86ef9d.js → auto-track-ed70ee8a.js} +1 -1
- package/dist/browser/checkout/{balance-ce9feed9.js → balance-1abfdac7.js} +1 -1
- package/dist/browser/checkout/{index-c96b2810.js → index-0a30f623.js} +1 -1
- package/dist/browser/checkout/{index-540ecd2d.js → index-0c572918.js} +1 -1
- package/dist/browser/checkout/{index-ba874b79.js → index-1d43d6f2.js} +1 -1
- package/dist/browser/checkout/{index-f315a31c.js → index-691f5ce8.js} +1 -1
- package/dist/browser/checkout/{index-187db549.js → index-cf3b56ee.js} +1 -1
- package/dist/browser/checkout/{index-96ca7ad4.js → index-d4117464.js} +15 -15
- package/dist/browser/checkout/index-f0366ae9.js +1 -0
- package/dist/browser/checkout/{index-11477845.js → index-f32be3af.js} +1 -1
- package/dist/browser/checkout/{index.umd-6c8a7698.js → index.umd-b2a4cb81.js} +1 -1
- package/dist/browser/checkout/{retry-50c84c29.js → retry-0087cf02.js} +1 -1
- package/dist/browser/checkout/sdk.js +7 -7
- package/dist/browser/checkout/{useTransakEvents-1f3a3223.js → useTransakEvents-52c867f2.js} +1 -1
- package/dist/browser/checkout/widgets-esm.js +1 -1
- package/dist/browser/checkout/widgets.js +74 -74
- package/dist/checkout.js +99 -55
- package/dist/config.js +1 -1
- package/dist/index.browser.js +5 -5
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +101 -57
- package/dist/index.js +101 -57
- package/dist/orderbook.js +1 -1
- package/dist/passport.js +3 -3
- package/dist/x.js +2 -2
- package/package.json +1 -1
- package/dist/browser/checkout/index-dfc1ffda.js +0 -1
package/dist/blockchain_data.js
CHANGED
|
@@ -4814,7 +4814,7 @@ const flattenProperties = (properties) => {
|
|
|
4814
4814
|
};
|
|
4815
4815
|
|
|
4816
4816
|
// WARNING: DO NOT CHANGE THE STRING BELOW. IT GETS REPLACED AT BUILD TIME.
|
|
4817
|
-
const SDK_VERSION = '1.13.
|
|
4817
|
+
const SDK_VERSION = '1.13.5';
|
|
4818
4818
|
const getReferrer = () => {
|
|
4819
4819
|
if (isNode()) {
|
|
4820
4820
|
return '';
|
|
@@ -5055,7 +5055,7 @@ class APIError extends Error {
|
|
|
5055
5055
|
|
|
5056
5056
|
/* eslint-disable implicit-arrow-linebreak */
|
|
5057
5057
|
const defaultHeaders = {
|
|
5058
|
-
sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-1.13.
|
|
5058
|
+
sdkVersion: 'ts-immutable-sdk-multi-rollup-api-client-1.13.5',
|
|
5059
5059
|
};
|
|
5060
5060
|
/**
|
|
5061
5061
|
* createAPIConfiguration to create a custom Configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b5 as e,b6 as t,ar as s,b7 as a,b8 as n,r as o,b9 as r,u as i,j as l,M as c,as as d,ba as u,I as x,ao as p,bb as g,bc as h,B as w,l as E,O as T,bd as b,a4 as m,aM as f,P as I,Q as y,be as A,bf as v,a as S,bg as _,U as k,bh as C,V as R,d as j,bi as N,aL as L,bj as D,z as W,X as B,ad as M,Y as P,E as O,o as G,bk as F,q as V,T as U,p as K,bl as z,bm as $,c as H,H as J,F as Z,bn as q,bo as Q,L as Y,w as X,bp as ee,m as te,_ as se,bq as ae,aJ as ne,br as oe,aK as re,x as ie,n as le,N as ce,aP as de,aV as ue,S as xe,ac as pe,aQ as ge,aI as he,bs as we,aN as Ee,aT as Te,bt as be,bu as me,a1 as fe,a2 as Ie,bv as ye,e as Ae,D as ve,aW as Se,bw as _e,t as ke,v as Ce,i as Re,bx as je,aY as Ne,by as Le,f as De,h as We,a6 as Be,bz as Me,bA as Pe,bB as Oe}from"./index-96ca7ad4.js";import{B as Ge,C as Fe,a as Ve,b as Ue,T as Ke}from"./TopUpView-d3059efc.js";import{r as ze,u as $e}from"./retry-50c84c29.js";import{b as He,S as Je,T as Ze,a as qe,g as Qe,F as Ye,W as Xe}from"./balance-ce9feed9.js";const{Axios:et,AxiosError:tt,CanceledError:st,isCancel:at,CancelToken:nt,VERSION:ot,all:rt,Cancel:it,isAxiosError:lt,spread:ct,toFormData:dt,AxiosHeaders:ut,HttpStatusCode:xt,formToJSON:pt,getAdapter:gt,mergeConfig:ht}=e;class wt{url;ttl;env;cacheMap;setCache(e,t){this.cacheMap[e]={data:t,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(e){const t=this.cacheMap[e];return!t||t.ttl<=(new Date).getTime()?null:t.data}constructor(e){this.env=e.env,this.url=`${t[this.env]}/checkout`,this.cacheMap={},this.ttl=void 0!==e.ttl?e.ttl:60}static isHttpError=e=>"code"in e;async getTransactions(t){const{txType:s,fromAddress:a}=t;try{const t=`${this.url}/v1/transactions?from_address=${a}&tx_type=${s}`,n=this.getCache(t);if(n)return Promise.resolve(n);const o=await e.get(t);if(o.status>=400)return Promise.reject({code:o.status,message:o.statusText});const{data:r}=o;return this.setCache(t,r),Promise.resolve(r)}catch(t){let s=xt.InternalServerError,a="InternalServerError";return e.isAxiosError(t)&&(s=t.response?.status||s,a=t.message),Promise.reject({code:s,message:a})}}}var Et;!function(e){e.BRIDGE="bridge"}(Et||(Et={}));const Tt={IN_PROGRESS:"in_progress",WITHDRAWAL_PENDING:"withdrawal_pending"};function bt(e){switch(e){case s.ETHEREUM:return a.ETHEREUM;case s.IMTBL_ZKEVM_TESTNET:return a.IMTBL_ZKEVM_TESTNET;case s.IMTBL_ZKEVM_MAINNET:return a.IMTBL_ZKEVM_MAINNET;case s.IMTBL_ZKEVM_DEVNET:return a.IMTBL_ZKEVM_DEVNET;case s.SEPOLIA:return a.SEPOLIA;default:return""}}function mt(e){switch(e){case s.ETHEREUM:return n.ETHEREUM;case s.IMTBL_ZKEVM_TESTNET:return n.IMTBL_ZKEVM_TESTNET;case s.IMTBL_ZKEVM_MAINNET:return n.IMTBL_ZKEVM_MAINNET;case s.IMTBL_ZKEVM_DEVNET:return n.IMTBL_ZKEVM_DEVNET;case s.SEPOLIA:return n.SEPOLIA;default:return""}}function ft(e){switch(e){case n.ETHEREUM:return s.ETHEREUM;case n.IMTBL_ZKEVM_TESTNET:return s.IMTBL_ZKEVM_TESTNET;case n.IMTBL_ZKEVM_MAINNET:return s.IMTBL_ZKEVM_MAINNET;case n.IMTBL_ZKEVM_DEVNET:return s.IMTBL_ZKEVM_DEVNET;case n.SEPOLIA:return s.SEPOLIA;default:return 0}}const It={web3Provider:null,walletProviderName:null,from:null,to:null,tokenBridge:null,tokenBalances:[],allowedTokens:[],token:null,amount:"0"};var yt;!function(e){e.SET_WALLETS_AND_NETWORKS="SET_WALLETS_AND_NETWORKS",e.SET_WALLET_PROVIDER_NAME="SET_WALLET_PROVIDER_NAME",e.SET_PROVIDER="SET_PROVIDER",e.SET_TOKEN_BRIDGE="SET_TOKEN_BRIDGE",e.SET_TOKEN_BALANCES="SET_TOKEN_BALANCES",e.SET_ALLOWED_TOKENS="SET_ALLOWED_TOKENS",e.SET_TOKEN_AND_AMOUNT="SET_TOKEN_AND_AMOUNT"}(yt||(yt={}));const At=o.createContext({bridgeState:{...It,checkout:{}},bridgeDispatch:()=>{}});At.displayName="BridgeContext";const vt=(e,t)=>{switch(t.payload.type){case yt.SET_WALLETS_AND_NETWORKS:return{...e,from:t.payload.from,to:t.payload.to};case yt.SET_WALLET_PROVIDER_NAME:return{...e,walletProviderName:t.payload.walletProviderName};case yt.SET_PROVIDER:return{...e,web3Provider:t.payload.web3Provider};case yt.SET_TOKEN_BRIDGE:return{...e,tokenBridge:t.payload.tokenBridge};case yt.SET_TOKEN_BALANCES:return{...e,tokenBalances:t.payload.tokenBalances};case yt.SET_ALLOWED_TOKENS:return{...e,allowedTokens:t.payload.allowedTokens};case yt.SET_TOKEN_AND_AMOUNT:return{...e,token:t.payload.token,amount:t.payload.amount};default:return e}};function St(e){switch(e){case r.METAMASK:return"MetaMaskSymbol";case r.PASSPORT:return"PassportSymbolOutlined";case"walletconnect":return"WalletConnectSymbol";default:return"MetaMaskSymbol"}}function _t({testId:e,walletProviderName:t,onWalletClick:s,loading:a}){const{t:n}=i(),[r,d]=o.useState(!1);return l.jsxs(c,{testId:`${e}-wallet-list-${t}`,size:"medium",emphasized:!0,onClick:async()=>{if(!a){d(!0);try{await s(t)}finally{d(!1)}}},children:[l.jsx(c.FramedLogo,{logo:St(t),sx:{backgroundColor:"base.color.translucent.standard.200"}}),l.jsx(c.Label,{size:"medium",children:n(`wallets.${t}.heading`)}),r&&l.jsx(c.StatefulButtCon,{state:"loading",icon:"Loading"})]})}const kt={display:"flex",flexDirection:"column",gap:"base.spacing.x1",paddingX:"base.spacing.x4"};function Ct({testId:e,drawerText:t,walletOptions:s,showWalletSelectorTarget:a,showDrawer:n,setShowDrawer:r,onWalletItemClick:i}){const[c,x]=o.useState(!1),{heading:p,defaultText:g}=t,h=async e=>{x(!0);try{await i(e)}catch(e){console.error(e)}finally{x(!1)}};return l.jsxs(d,{headerBarTitle:p,size:"full",onCloseDrawer:()=>{c||r(!1)},visible:n,children:[a&&l.jsx(d.Target,{children:l.jsx(He,{testId:`${e}-wallet-form-control`,textAlign:"left",children:l.jsx(u,{testId:`${e}-wallet-select`,defaultLabel:g??"",size:"large",targetClickOveride:()=>r(!0)})})}),l.jsx(d.Content,{sx:kt,children:s.map((t=>l.jsx(_t,{testId:e,loading:c,walletProviderName:t,onWalletClick:h},t)))})]})}const Rt=(e,t)=>{const s=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.TRANSACTION_SENT,data:{transactionHash:t}}});console.log("bridge success ",e,s),void 0!==e&&e.dispatchEvent(s)};function jt(e){const t=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.CLOSE_WIDGET,data:{}}});console.log("bridge close ",e,t),void 0!==e&&e.dispatchEvent(t)}function Nt(){return l.jsxs(g,{sx:{gap:"base.spacing.x2"},children:[l.jsx(h,{sx:{h:"base.spacing.x4",w:"base.spacing.x32",mt:"base.spacing.x2"}}),l.jsx(c,{shimmer:!0,emphasized:!0,size:"small"}),l.jsx(c,{shimmer:!0,emphasized:!0,size:"small"}),l.jsx(c,{shimmer:!0,emphasized:!0,size:"small"})]})}const Lt={px:"base.spacing.x4",display:"flex",flexDirection:"column",height:"100%"},Dt={flexGrow:"1",flexShrink:"0",flexBasis:"0"},Wt={flexGrow:"0",flexShrink:"1",mt:"base.spacing.x2"},Bt={bg:"base.color.translucent.emphasis.100",borderRadius:"base.borderRadius.x4",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",height:"100%",px:"base.spacing.x5"};function Mt({openWalletDrawer:e}){const{t:t}=i();return l.jsxs(w,{sx:Bt,children:[l.jsx(E,{sx:{mb:"base.spacing.x8"},children:t("views.TRANSACTIONS.status.emptyState.notConnected.body")}),l.jsx(T,{variant:"secondary",size:"medium",testId:"transactions-connect-wallet-button",onClick:e,children:t("views.TRANSACTIONS.status.emptyState.notConnected.buttonText")})]})}const Pt={backgroundColor:"base.color.neutral.800",px:"base.spacing.x4",p:"base.spacing.x5",borderRadius:"base.borderRadius.x6"},Ot={color:"base.color.text.body.secondary"};function Gt({checkout:e,isPassport:t}){const{t:s}=i(),[a,n]=o.useState("");return o.useEffect((()=>{e&&n(b[e.config.environment])}),[e]),l.jsx(w,{sx:Pt,children:l.jsxs(w,{sx:{display:"flex",flexDirection:"column"},children:[l.jsxs(w,{children:[l.jsx(E,{size:"small",children:s("views.TRANSACTIONS.support.body1")}),l.jsxs(E,{size:"small",sx:Ot,children:[s("views.TRANSACTIONS.support.body2"),l.jsx(m,{size:"small",rc:l.jsx("a",{target:"_blank",href:s("views.TRANSACTIONS.support.supportLink"),rel:"noreferrer"}),children:s("views.TRANSACTIONS.support.body3")})]})]}),t&&l.jsxs(E,{size:"small",sx:Ot,children:[s("views.TRANSACTIONS.support.passport.body1")," ",l.jsx(m,{size:"small",rc:l.jsx("a",{target:"_blank",href:a,rel:"noreferrer"}),children:s("views.TRANSACTIONS.support.passport.body2")})]})]})})}const Ft={display:"flex",flexDirection:"column",borderRadius:"base.borderRadius.x4",bg:"base.color.translucent.emphasis.100"},Vt={p:"base.spacing.x3",d:"flex",justifyContent:"space-between",position:"relative"},Ut={display:"flex",flexGrow:"1",alignItems:"center",gap:"base.spacing.x2"};function Kt({transaction:e}){const t=ft(e.details.from_chain),s=ft(e.details.to_chain);return l.jsxs(w,{sx:{display:"flex",px:"base.spacing.x4",gap:"base.spacing.x2"},children:[l.jsx(f,{icon:I[t],sx:{w:"base.icon.size.250",fill:y[t]},variant:"bold"}),l.jsxs(w,{sx:{display:"flex",flexDirection:"column",flexGrow:"1"},children:[l.jsx(E,{size:"xxSmall",sx:{color:"base.color.translucent.standard.900"},children:A[t]}),l.jsx(v,{size:"xxSmall",sx:{color:"base.color.translucent.standard.600"},text:e.details.from_address})]}),l.jsx(w,{sx:{flexGrow:"1"}}),l.jsx(f,{icon:"ArrowForward",sx:{w:"base.icon.size.250",fill:"base.color.brand.4"}}),l.jsx(w,{sx:{flexGrow:"1"}}),l.jsx(f,{icon:I[s],sx:{w:"base.icon.size.250",fill:y[s]},variant:"bold"}),l.jsxs(w,{sx:{display:"flex",flexDirection:"column",flexGrow:"1"},children:[l.jsx(E,{size:"xxSmall",sx:{color:"base.color.translucent.standard.900"},children:A[s]}),l.jsx(v,{size:"xxSmall",sx:{color:"base.color.translucent.standard.600"},text:e.details.to_address})]})]})}function zt({label:e,details:t,transaction:s,fiatAmount:a,amount:n,icon:r,defaultTokenImage:i}){const{track:d}=S(),u=o.useMemo((()=>`${t.link}${t.hash}`),[t]);return l.jsx(w,{testId:`transaction-item-${s.blockchain_metadata.transaction_hash}`,sx:Ft,children:l.jsxs(_,{chevronSide:"right",sx:{button:{p:"base.spacing.x1"},article:{pr:"base.spacing.x10"}},onExpandChange:e=>e&&d({userJourney:k.BRIDGE,screen:"TransactionItem",control:"Accordion",controlType:"Button"}),children:[l.jsx(_.TargetLeftSlot,{sx:{pr:"base.spacing.x2"},children:l.jsxs(c,{size:"xSmall",children:[l.jsx(c.FramedImage,{imageUrl:r,circularFrame:!0,defaultImageUrl:i}),l.jsx(c.Label,{children:e}),l.jsx(c.Caption,{children:l.jsx(m,{size:"xSmall",rc:l.jsx("a",{target:"_blank",href:u,rel:"noreferrer",onClick:e=>{return s=t,e.stopPropagation(),void d({userJourney:k.BRIDGE,screen:"TransactionItem",control:"Details",controlType:"Link",extras:{linkDetail:s}});var s}}),children:t.text})}),l.jsx(c.PriceDisplay,{fiatAmount:a,price:n})]})}),l.jsxs(_.ExpandedContent,{sx:{pr:"0",pl:"0",mb:"base.spacing.x3",gap:"0"},children:[l.jsx(C,{size:"xSmall",sx:{px:"base.spacing.x2"}}),l.jsx(Kt,{transaction:s})]})]})})}const $t=e=>{let t=440;return e&&(t-=20),{backgroundColor:"base.color.neutral.800",px:"base.spacing.x4",pt:"base.spacing.x5",pb:"base.spacing.x4",borderRadius:"base.borderRadius.x6",h:`${t}px`,w:"100%",overflowY:"scroll"}},Ht={borderRadius:"base.borderRadius.x4",display:"flex",flexDirection:"column",gap:"base.spacing.x5"};function Jt({label:e,transaction:t,fiatAmount:s,amount:a,icon:n,defaultTokenImage:r}){const{viewDispatch:d}=o.useContext(R),{track:u}=S(),x=i(),p=o.useMemo((()=>(new Date).getTime()),[]),g=o.useMemo((()=>t.details.current_status.withdrawal_ready_at?new Date(t.details.current_status.withdrawal_ready_at):void 0),[t]),h=t.details.current_status.status===Tt.WITHDRAWAL_PENDING,b=new Intl.RelativeTimeFormat(x[1].language||"en",{numeric:"auto"}),m=o.useMemo((()=>{if(!h||void 0===g)return"";const e=(g.getTime()-p)/6e4;if(e<=1)return"in 1 minute";if(e<60)return b.format(Math.ceil(e),"minute");const t=e/60;if(e<1440)return b.format(Math.ceil(t),"hour");const s=t/24;return b.format(Math.ceil(s),"day")}),[p,x[1].language]),I=!!g&&g.getTime()<p,y=o.useMemo((()=>!0===I?x.t("views.TRANSACTIONS.status.withdrawalPending.withdrawalReadyText"):`${x.t("views.TRANSACTIONS.status.withdrawalPending.withdrawalDelayText")} ${m}`),[m,x[1].language]);return l.jsxs(w,{testId:`transaction-item-${t.blockchain_metadata.transaction_hash}`,sx:Ft,children:[h&&l.jsxs(l.Fragment,{children:[l.jsxs(w,{sx:Vt,children:[l.jsxs(w,{sx:Ut,children:[l.jsx(f,{icon:"Alert",variant:"bold",sx:{fill:I?"base.color.status.fatal.bright":"base.color.status.attention.bright",w:"base.icon.size.200"}}),l.jsx(E,{testId:`transaction-item-${t.blockchain_metadata.transaction_hash}-action-message`,size:"xSmall",sx:{color:"base.color.text.body.secondary"},children:y})]}),h&&I&&l.jsx(T,{testId:`transaction-item-${t.blockchain_metadata.transaction_hash}-action-button`,variant:"primary",size:"small",onClick:()=>{d({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL,transaction:t}}})},children:x.t("views.TRANSACTIONS.status.withdrawalPending.actionButtonText")})]}),l.jsx(C,{size:"small",sx:{color:"base.color.translucent.emphasis.300",opacity:.1}})]}),l.jsxs(_,{chevronSide:"right",sx:{button:{p:"base.spacing.x1"},article:{pr:"base.spacing.x10"},borderTopRightRadius:"0",borderTopLeftRadius:"0"},onExpandChange:e=>e&&u({userJourney:k.BRIDGE,screen:"TransactionItem",control:"Accordion",controlType:"Button"}),children:[l.jsx(_.TargetLeftSlot,{sx:{pr:"base.spacing.x2"},children:l.jsxs(c,{size:"xSmall",children:[l.jsx(c.FramedImage,{imageUrl:n,circularFrame:!0,defaultImageUrl:r}),l.jsx(c.Label,{children:e}),l.jsx(c.Caption,{children:x.t("views.TRANSACTIONS.status.withdrawalPending.caption")}),l.jsx(c.PriceDisplay,{fiatAmount:s,price:a})]})}),l.jsxs(_.ExpandedContent,{sx:{pr:"0",pl:"0",mb:"base.spacing.x3",gap:"0"},children:[l.jsx(C,{size:"xSmall",sx:{px:"base.spacing.x2"}}),l.jsx(Kt,{transaction:t})]})]})]})}const Zt={display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",p:"base.spacing.x2",pb:"base.spacing.x4"};function qt({onChangeWalletClick:e}){const{t:t}=i(),{bridgeState:{from:s}}=o.useContext(At),{track:a}=S(),n=s?.walletAddress||"",r=St(N(s?.web3Provider));return l.jsxs(w,{sx:Zt,children:[l.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:"base.spacing.x1"},children:[l.jsx(L,{logo:r,sx:{width:"base.icon.size.400",pr:"base.spacing.x1"}}),l.jsx(v,{leftSideLength:6,rightSideLength:4,text:n})]}),l.jsx(T,{size:"small",variant:"tertiary",onClick:()=>{a({userJourney:k.BRIDGE,screen:Ge.TRANSACTIONS,controlType:"Button",control:"Pressed"}),e()},children:t("views.TRANSACTIONS.changeWallet.buttonText")})]})}function Qt({checkout:e,transactions:t,knownTokenMap:s,isPassport:a,defaultTokenImage:r,changeWallet:c}){const{cryptoFiatState:d}=o.useContext(Fe),{t:u}=i(),[x,p]=o.useState("");o.useEffect((()=>{e&&p(D[e.config.environment])}),[e]);const g=o.useCallback(((e,t)=>e.details.current_status.status===Tt.WITHDRAWAL_PENDING&&t.details.current_status.status!==Tt.WITHDRAWAL_PENDING?-1:e.details.current_status.status===t.details.current_status.status?0:1),[]),h=o.useCallback((t=>W(t.details.from_token_address)?B(e.config.environment,function(e){switch(e){case n.ETHEREUM:case n.SEPOLIA:return"ETH";case n.IMTBL_ZKEVM_TESTNET:case n.IMTBL_ZKEVM_MAINNET:case n.IMTBL_ZKEVM_DEVNET:return"IMX";default:return""}}(t.details.from_chain)):B(e.config.environment,t.details.from_token_address)),[e]);return l.jsxs(w,{sx:$t(a),children:[l.jsx(qt,{onChangeWalletClick:c}),l.jsx(w,{testId:"move-transaction-list",sx:Ht,children:t.sort(g).map((e=>{const t=e.blockchain_metadata.transaction_hash,a=s[e.details.from_chain][e.details.from_token_address.toLowerCase()],n=M.formatUnits(e.details.amount,a.decimals),o=P(n,a.symbol,d.conversions);return e.details.current_status.status===Tt.WITHDRAWAL_PENDING?l.jsx(Jt,{label:a.name,transaction:e,fiatAmount:`${u("views.TRANSACTIONS.fiatPricePrefix")}${o}`,amount:n,icon:h(e),defaultTokenImage:r},t):l.jsx(zt,{label:a.name,details:{text:u("views.TRANSACTIONS.status.inProgress.stepInfo"),link:x,hash:t},transaction:e,fiatAmount:`${u("views.TRANSACTIONS.fiatPricePrefix")}${o}`,amount:n,icon:h(e),defaultTokenImage:r},t)}))})]})}const Yt={backgroundColor:"base.color.neutral.800",px:"base.spacing.x4",pt:"base.spacing.x5",pb:"base.spacing.x4",borderRadius:"base.borderRadius.x6",h:"100%",w:"100%",display:"flex",flexDirection:"column"},Xt={display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",padding:"base.spacing.x5",flex:1},es={mb:"base.spacing.x8",color:"base.color.text.body.secondary"},ts={color:"base.color.text.body.secondary"};function ss({checkout:e,isPassport:t,changeWallet:s}){const{page:a}=S(),{t:n}=i(),[r,c]=o.useState("");return o.useEffect((()=>{e&&c(b[e.config.environment])}),[e]),o.useEffect((()=>{a({userJourney:k.BRIDGE,screen:"NoTransactions"})}),[]),l.jsxs(w,{sx:Yt,children:[l.jsx(qt,{onChangeWalletClick:s}),l.jsxs(w,{sx:Xt,children:[l.jsx(E,{size:"small",sx:es,children:n("views.TRANSACTIONS.status.noTransactions.body")}),t&&l.jsxs(E,{size:"small",sx:ts,children:[n("views.TRANSACTIONS.status.noTransactions.passport.body")," ",l.jsx(m,{size:"small",rc:l.jsx("a",{target:"_blank",href:r,rel:"noreferrer"}),children:n("views.TRANSACTIONS.status.noTransactions.passport.link")})]})]})]})}function as({defaultTokenImage:e,onBackButtonClick:t}){const{eventTargetState:{eventTarget:s}}=o.useContext(O),{cryptoFiatDispatch:a}=o.useContext(Fe),{bridgeDispatch:n,bridgeState:{checkout:c,from:d}}=o.useContext(At),{page:u}=S(),{t:x}=i(),{track:p}=S(),[g,h]=o.useState(!0),[E,T]=o.useState(void 0),[b,m]=o.useState([]),[f,I]=o.useState(!1),y=G(d?.web3Provider),{isWalletConnectEnabled:A,openWalletConnectModal:v}=F({checkout:c}),_=o.useCallback((async()=>{if(!c)return{};const e=V(c.config);try{return((await c.getTokenAllowList({type:U.BRIDGE,chainId:e})).tokens??[]).reduce(((e,t)=>(e[t.address.toLowerCase()]=t,e)),{})}catch(e){return console.error(e),[]}}),[c]),C=o.useCallback((async()=>{if(!d?.web3Provider)return{};if(!d?.walletAddress)return{};const e=K(c.config);try{return(await c.getAllBalances({provider:d?.web3Provider,walletAddress:d?.walletAddress,chainId:e})).balances.reduce(((e,t)=>(e[t.token.address.toLowerCase()]=t.token,e)),{})}catch(e){return console.error(e),[]}}),[c,d]),R=e=>{e.getNetwork().then((t=>{e?.getSigner().getAddress().then((s=>{m([]),n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:{web3Provider:e,walletAddress:s.toLowerCase(),network:t.chainId},to:null}})}))}))},j=o.useCallback((async e=>{p({userJourney:k.BRIDGE,screen:"EmptyStateNotConnected",control:"WalletProvider",controlType:"Select",extras:{walletProviderName:e}});try{let t;"walletconnect"===e?await v({connectCallback:e=>{R(new z(e))},restoreSession:!0}):(t=await $(c,e,!0),R(t))}catch(e){console.error(e)}finally{I(!1)}}),[c,d,v]),N=async e=>{const t=mt(V(c.config)),s=mt(K(c.config)),[n,o]=await Promise.all([_(),C()]),r={};Object.entries(e).forEach((([a,i])=>{(e[a]===t&&!n[a]||e[a]===s&&!o[a])&&(r[a]=i)}));const i=new q(c.config.networkMap.get(V(c.config))?.rpcUrls[0]),l=new q(c.config.networkMap.get(K(c.config))?.rpcUrls[0]),d=[],u=[];Object.entries(r).forEach((([e,s])=>{s===t?d.push(c.getTokenInfo({provider:i,tokenAddress:e})):u.push(c.getTokenInfo({provider:l,tokenAddress:e}))}));const x=await Promise.allSettled(d),p=await Promise.allSettled(u);x.filter((e=>"fulfilled"===e.status)).forEach((e=>{const t=e;n[t.value.address.toLowerCase()]=t.value})),p.filter((e=>"fulfilled"===e.status)).forEach((e=>{const t=e;o[t.value.address.toLowerCase()]=t.value}));const g=[];return Object.values(n).forEach((e=>g.push(e.symbol.toLowerCase()))),Object.values(o).forEach((e=>g.push(e.symbol.toLowerCase()))),a({payload:{type:Ve.SET_TOKEN_SYMBOLS,tokenSymbols:g}}),{[t]:n,[s]:o}},L=o.useCallback((async(e,t)=>new wt({env:e}).getTransactions({txType:Et.BRIDGE,fromAddress:t})),[]),D=o.useCallback((async()=>{if(!d?.walletAddress)return;const e=await L(c.config.environment,d?.walletAddress),t={};return e.result.forEach((e=>{t[e.details.from_token_address]=e.details.from_chain})),{tokens:await N(t),transactions:e.result}}),[d,L]),W=o.useMemo((()=>{const e=[r.METAMASK];return c.passport&&e.push(r.PASSPORT),A&&e.push("walletconnect"),e}),[c,A]);return o.useEffect((()=>{(async()=>{h(!0);const e=await ze(D,Q);if(!e)return void h(!1);const t=e.transactions.filter((t=>{const s=e.tokens[t.details.from_chain];if(!s)return!1;return!!s[t.details.from_token_address.toLowerCase()]}));T(e.tokens),m(t),h(!1)})()}),[d,c]),o.useEffect((()=>{u({userJourney:k.BRIDGE,screen:"Transactions"})}),[]),l.jsx(H,{testId:"bridge-view",header:l.jsx(J,{showBack:!0,onBackButtonClick:()=>{d&&(n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:{web3Provider:d?.web3Provider,walletAddress:d?.walletAddress,network:d?.network},to:null}}),n({payload:{type:yt.SET_TOKEN_AND_AMOUNT,token:null,amount:""}})),t()},title:x("views.TRANSACTIONS.layoutHeading"),onCloseButtonClick:()=>jt(s)}),footer:l.jsx(Z,{}),children:l.jsxs(w,{sx:Lt,children:[l.jsxs(w,{sx:Dt,children:[!d?.web3Provider&&l.jsx(Mt,{openWalletDrawer:()=>I(!0)}),d?.web3Provider&&g&&l.jsx(Nt,{}),d?.web3Provider&&!g&&b.length>0&&E&&l.jsx(Qt,{checkout:c,transactions:b,knownTokenMap:E,isPassport:y,defaultTokenImage:e,changeWallet:()=>I(!0)}),d?.web3Provider&&!g&&0===b.length&&l.jsx(ss,{checkout:c,isPassport:y,changeWallet:()=>I(!0)})]}),d?.web3Provider&&b.length>0&&l.jsx(w,{sx:Wt,children:l.jsx(Gt,{checkout:c,isPassport:y})}),l.jsx(Ct,{testId:"select-wallet-drawer",drawerText:{heading:x("views.TRANSACTIONS.walletSelection.heading")},showWalletSelectorTarget:!1,walletOptions:W,showDrawer:f,setShowDrawer:e=>{I(e)},onWalletItemClick:j})]})})}function ns({transactionResponse:e}){const{t:t}=i(),{viewDispatch:s}=o.useContext(R),{page:a}=S();return o.useEffect((()=>{a({userJourney:k.BRIDGE,screen:"ClaimWithdrawalInProgress"})}),[]),o.useEffect((()=>{e&&(async()=>{try{const t=await e.wait();if(1===t.status)return void s({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_SUCCESS,transactionHash:t.transactionHash}}});s({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_FAILURE,transactionHash:t.transactionHash,reason:"Transaction failed"}}})}catch(e){console.error(e),s({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_FAILURE,transactionHash:"",reason:"Transaction failed"}}})}})()}),[e]),l.jsx(Y,{loadingText:t("views.CLAIM_WITHDRAWAL.IN_PROGRESS.loading.text"),showFooterLogo:!0})}function os(e){return e?e.substring(0,6).concat("...").concat(e.substring(e.length-4)):""}const rs={height:"100%",display:"flex",flexDirection:"column",paddingX:"base.spacing.x4"},is={paddingTop:"base.spacing.x10",paddingBottom:"base.spacing.x4"},ls={display:"flex",flexDirection:"column",paddingY:"base.spacing.x6"},cs={[s.IMTBL_ZKEVM_DEVNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_TESTNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_MAINNET]:"base.color.text.link.primary",[s.ETHEREUM]:"base.color.accent.5",[s.SEPOLIA]:"base.color.accent.5"},ds=e=>({backgroundColor:cs[e],"& svg":{fill:"base.color.brand.2"}});function us({testId:e,chainId:t,chainName:s,onNetworkClick:a}){return l.jsxs(c,{testId:`${e}-network-list-${t}`,size:"medium",emphasized:!0,onClick:async()=>{await a(t)},sx:{marginBottom:"base.spacing.x1"},children:[l.jsx(c.FramedIcon,{icon:I[t],circularFrame:!0,sx:ds(t)}),l.jsx(c.Label,{size:"medium",children:s})]})}const xs={[s.IMTBL_ZKEVM_DEVNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_TESTNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_MAINNET]:"base.color.text.link.primary",[s.ETHEREUM]:"base.color.accent.5",[s.SEPOLIA]:"base.color.accent.5"},ps={width:"100%",backgroundColor:"base.color.translucent.emphasis.100",borderRadius:"base.borderRadius.x4",paddingX:"base.spacing.x3",paddingY:"base.spacing.x5",display:"flex",flexDirection:"row",gap:"base.spacing.x4",alignItems:"center","&:hover":{cursor:"pointer",backgroundColor:"base.color.translucent.emphasis.200"}},gs=e=>({width:"base.icon.size.500",padding:e===r.PASSPORT?"base.spacing.x1":"",backgroundColor:"base.color.translucent.standard.200",borderRadius:"base.borderRadius.x2"}),hs={color:"base.color.text.body.secondary"},ws={paddingY:"base.spacing.x6",borderRadius:"base.borderRadius.x18"},Es=e=>({fill:"base.color.brand.2",width:"base.icon.size.300",backgroundColor:xs[e],borderRadius:"100%",padding:"base.spacing.x1"});function Ts({testId:e,walletName:t,walletAddress:s,chainId:a,disableNetworkButton:n=!1,onWalletClick:o,onNetworkClick:i}){const c=bt(a),d=function(e){switch(e){case r.METAMASK:return"MetaMask";case r.PASSPORT:return"Passport";case"WalletConnect":return"WalletConnect";default:return"Other"}}(t),u=St(t);return l.jsxs(w,{testId:`${e}-${t}-${a}-button-wrapper`,sx:ps,onClick:o,children:[l.jsx(L,{logo:u,sx:gs(t)}),l.jsxs(w,{sx:{display:"flex",flexDirection:"column",flex:1},children:[l.jsx(X,{size:"xSmall",children:d}),l.jsx(E,{size:"xSmall",sx:hs,children:s})]}),l.jsxs(T,{testId:`${e}-network-${a}-button`,size:"small",disabled:n,onClick:e=>{e.stopPropagation(),i(e)},variant:"tertiary",sx:ws,children:[l.jsx(T.Icon,{icon:I[a],sx:Es(a)}),c]})]})}const bs="wallet-network-selector";function ms(){const{t:e}=i(),{bridgeState:{checkout:t,from:s,to:a},bridgeDispatch:n}=o.useContext(At),{viewDispatch:c}=o.useContext(R),{track:u}=S(),x=V(t.config),p=bt(x),g=K(t.config),h=bt(g),E=o.useRef(),{isWalletConnectEnabled:b,openWalletConnectModal:m}=F({checkout:t}),[f,I]=o.useState(!1),[y,A]=o.useState(!1),[v,_]=o.useState(),[C,L]=o.useState(),[D,W]=o.useState(""),[B,M]=o.useState(!1),[P,O]=o.useState(),[U,H]=o.useState(),[J,Z]=o.useState(""),q=v&&C,Q=P&&U,Y=o.useMemo((()=>v?N(v):null),[v]),te=o.useMemo((()=>P?N(P):null),[P]),se=o.useMemo((()=>{const e=[r.METAMASK.toString()];return t.passport&&e.push(r.PASSPORT.toString()),b&&e.push("walletconnect"),e}),[t,b]),ae=o.useMemo((()=>{const e=[r.METAMASK.toString()];return t.passport&&C===x&&e.push(r.PASSPORT.toString()),b&&e.push("walletconnect"),e}),[t,C,Y,b]);o.useEffect((()=>{s&&a&&(D!==s?.walletAddress&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"FromWallet",controlType:"Select",extras:{walletAddress:s?.walletAddress}}),C!==s?.network&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"FromNetwork",controlType:"Select",extras:{chainId:s?.network}}),J!==a?.walletAddress&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"ToWallet",controlType:"Select",extras:{walletAddress:a?.walletAddress}}),U!==a?.network&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"ToNetwork",controlType:"Select",extras:{chainId:a?.network}}),_(s.web3Provider),W(s.walletAddress.toLowerCase()),L(s.network),O(a.web3Provider),Z(a.walletAddress.toLowerCase()),H(a.network),n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:null,to:null}}))}),[s,a]);const ne=o.useCallback((async e=>{let s;try{return s=await $(t,e),e===r.PASSPORT.toString()&&(E.current=s),s}catch(e){throw console.error(e),e}}),[t]);function oe(){O(null),H(null)}const re=async e=>{_(e);const t=await e.getSigner().getAddress();if(W(t.toLowerCase()),G(e))return L(g),void I(!1);L(null),I(!1),setTimeout((()=>A(!0)),500)},ie=o.useCallback((async e=>{let t;if(oe(),e===r.PASSPORT.toString()&&E.current)return t=E.current,void await re(t);if(!t)try{"walletconnect"===e?await m({connectCallback:e=>{re(new z(e))},restoreSession:!0}):(t=await ne(e),await re(t))}catch(e){console.error(e)}}),[Y,E.current,m]),le=o.useCallback((async e=>{if(!v)return;if(oe(),G(v))return A(!1),void L(e);const s=await(v?.getNetwork());if(s?.chainId===e)return A(!1),void L(e);let a;try{a=await t.switchNetwork({provider:v,chainId:e}),_(a.provider),A(!1),L(a.network.chainId)}catch(e){console.error(e)}}),[t,v,Y,C]),ce=o.useCallback((()=>{H(C===x?g:x),M(!1)}),[C]),de=o.useCallback((e=>{O(e),e.getSigner().getAddress().then((e=>{Z(e.toLowerCase()),ce()}))}),[ce]),ue=o.useCallback((async e=>{if(Y===e){O(v);const e=await v.getSigner().getAddress();return Z(e.toLowerCase()),void ce()}let t;try{if("walletconnect"===e)await m({connectCallback:e=>{const t=new z(e);de(t),ce()}});else{t=e===r.PASSPORT.toString()&&E.current?E.current:await ne(e),O(t);const s=await t.getSigner().getAddress();Z(s.toLowerCase()),ce()}}catch(e){console.error(e)}}),[Y,v,E.current,ce,de]),xe=o.useCallback((()=>{v&&C&&P&&U&&(n({payload:{type:yt.SET_TOKEN_BALANCES,tokenBalances:[]}}),n({payload:{type:yt.SET_ALLOWED_TOKENS,allowedTokens:[]}}),n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:{web3Provider:v,walletAddress:D.toLowerCase(),network:C},to:{web3Provider:P,walletAddress:J.toLowerCase(),network:U}}}),u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"Next",controlType:"Button",extras:{fromWalletAddress:D,fromNetwork:C,fromWallet:{address:D,isPassportWallet:G(v),isMetaMask:ee(v)},toWalletAddress:J,toNetwork:U,toWallet:{address:J,isPassportWallet:G(P),isMetaMask:ee(P)}}}),c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FORM}}}))}),[v,C,D,P,U,J]);return l.jsxs(w,{testId:bs,sx:rs,children:[l.jsx(X,{testId:`${bs}-heading`,size:"small",weight:"regular",sx:is,children:e("views.WALLET_NETWORK_SELECTION.heading")}),l.jsx(X,{size:"xSmall",sx:{paddingBottom:"base.spacing.x2"},children:e("views.WALLET_NETWORK_SELECTION.fromFormInput.heading")}),l.jsx(Ct,{testId:`${bs}-from`,drawerText:{heading:e("views.WALLET_NETWORK_SELECTION.fromFormInput.walletSelectorHeading"),defaultText:e("views.WALLET_NETWORK_SELECTION.fromFormInput.selectDefaultText")},showWalletSelectorTarget:!q,walletOptions:se,showDrawer:f,setShowDrawer:I,onWalletItemClick:ie}),q&&Y&&l.jsxs(w,{sx:{display:"flex",flexDirection:"column",gap:"base.spacing.x10"},children:[l.jsx(Ts,{testId:bs,walletName:Y,walletAddress:os(D),chainId:C,onWalletClick:()=>{I(!0)},onNetworkClick:()=>A(!0)}),l.jsxs(w,{children:[l.jsx(X,{size:"xSmall",sx:{paddingBottom:"base.spacing.x2"},children:e("views.WALLET_NETWORK_SELECTION.toFormInput.heading")}),l.jsx(Ct,{testId:`${bs}-to`,drawerText:{heading:e("views.WALLET_NETWORK_SELECTION.toFormInput.walletSelectorHeading"),defaultText:e("views.WALLET_NETWORK_SELECTION.toFormInput.selectDefaultText")},showWalletSelectorTarget:!Q,walletOptions:ae,showDrawer:B,setShowDrawer:M,onWalletItemClick:ue})]})]}),l.jsx(d,{headerBarTitle:e("views.WALLET_NETWORK_SELECTION.fromFormInput.networkSelectorHeading"),size:"full",onCloseDrawer:()=>{A(!1)},visible:y,children:l.jsxs(d.Content,{sx:{paddingX:"base.spacing.x4"},children:[l.jsx(us,{testId:bs,chainName:h,onNetworkClick:le,chainId:g},h),(Y===r.METAMASK.toString()||"walletconnect"===Y)&&l.jsx(us,{testId:bs,chainName:p,onNetworkClick:le,chainId:x},p)]})}),Q&&te&&l.jsxs(w,{sx:{flex:1,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[l.jsx(Ts,{testId:bs,walletName:te,walletAddress:os(J),chainId:U,disableNetworkButton:!0,onWalletClick:()=>{M(!0)},onNetworkClick:()=>{}}),l.jsx(w,{sx:ls,children:l.jsx(T,{testId:`${bs}-submit-button`,size:"large",onClick:xe,children:e("views.WALLET_NETWORK_SELECTION.submitButton.text")})})]})]})}function fs(){const{t:e}=i(),{viewDispatch:t}=o.useContext(R),{eventTargetState:{eventTarget:s}}=o.useContext(O),{page:a}=S();return o.useEffect((()=>{a({userJourney:k.BRIDGE,screen:"WalletNetworkSelection"})}),[]),l.jsx(H,{testId:"bridge-view",header:l.jsx(J,{title:e("views.WALLET_NETWORK_SELECTION.layoutHeading"),onCloseButtonClick:()=>jt(s),rightActions:l.jsx(te,{icon:"Minting",sx:se(),onClick:()=>{t({payload:{type:j.UPDATE_VIEW,view:{type:Ge.TRANSACTIONS}}})},testId:"move-transactions-button"})}),footer:l.jsx(Z,{}),children:l.jsx(ms,{})})}function Is(e,t){return e&&0!==parseFloat(e)?t&&Number(e)>Number(t)?"views.BRIDGE_FORM.validation.insufficientBalance":"":"views.BRIDGE_FORM.validation.noAmountInputted"}const ys={height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between",paddingTop:"base.spacing.x10"},As={paddingTop:"base.spacing.x4",display:"flex",gap:"base.spacing.x1"},vs={display:"flex",flexDirection:"column",paddingY:"base.spacing.x6",paddingX:"base.spacing.x4"},Ss={display:"flex",flexDirection:"column",alignItems:"center",paddingTop:"base.spacing.x6",paddingBottom:"base.spacing.x1",height:"100%"},_s={color:"base.color.text.body.secondary",fontFamily:"base.font.family.heading.secondary",textAlign:"center",marginTop:"15px"},ks={display:"flex",flexDirection:"column",justifyContent:"center",gap:"base.spacing.x2",height:"100%",width:"100%"},Cs={width:"100%",height:"base.spacing.x16"},Rs={display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",paddingTop:"base.spacing.x6"};function js({environment:e,onCloseDrawer:t,visible:s,showHeaderBar:a,walletAddress:n,showAdjustAmount:r,tokenSymbol:c,onAddCoinsClick:u}){const{t:x}=i(),[p,g]=o.useState(!1),h=ae(e),b=ne(e),m=c===oe?`${x("drawers.notEnoughGas.content.eth.heading")}`:`${x("drawers.notEnoughGas.content.imx.heading")}`,f=c===oe?`${x("drawers.notEnoughGas.content.eth.body")}`:`${x("drawers.notEnoughGas.content.imx.body")}`,I=o.useCallback((()=>{n&&""!==n&&navigator.clipboard.writeText(n),g(!0),setTimeout((()=>{g(!1)}),3e3)}),[n]);return l.jsx(d,{headerBarTitle:void 0,size:"full",onCloseDrawer:t,visible:s,showHeaderBar:a,children:l.jsx(d.Content,{children:l.jsxs(w,{testId:"not-enough-gas-bottom-sheet",sx:Ss,children:[l.jsx(re,{imageUrl:c===oe?h:b,sx:{w:"base.icon.size.600",h:"base.icon.size.600"}}),l.jsx(X,{size:"small",sx:_s,testId:"not-enough-gas-heading",children:m}),l.jsx(E,{sx:_s,children:f}),l.jsxs(w,{sx:ks,children:[r&&l.jsx(T,{testId:"not-enough-gas-adjust-amount-button",sx:Cs,variant:"tertiary",onClick:t,children:x("drawers.notEnoughGas.buttons.adjustAmount")}),c===oe?l.jsxs(T,{testId:"not-enough-gas-copy-address-button",sx:Cs,variant:"tertiary",onClick:I,children:[x("drawers.notEnoughGas.buttons.copyAddress"),l.jsx(T.Icon,{icon:p?"Tick":"CopyText"})]}):l.jsx(T,{testId:"not-enough-gas-add-imx-button",sx:Cs,variant:"tertiary",onClick:u,children:x("drawers.notEnoughGas.buttons.addMoreImx")}),l.jsx(T,{sx:Cs,variant:"tertiary",onClick:t,testId:"not-enough-gas-cancel-button",children:x("drawers.notEnoughGas.buttons.cancel")})]}),l.jsx(w,{sx:Rs,children:l.jsx(L,{testId:"footer-logo-image",logo:"ImmutableHorizontalLockup",sx:{width:"base.spacing.x25"}})})]})})})}function Ns({sx:e}){return l.jsxs(w,{sx:{...e,paddingTop:"0",marginTop:"base.spacing.x4"},rc:l.jsx("div",{}),children:[l.jsx(w,{sx:{display:"flex",backgroundColor:"#F3F3F30A",borderRadius:"8px"},children:l.jsx(w,{sx:{minw:"170px",height:"64px",WebkitMaskPosition:"left center",WebkitMaskRepeat:"no-repeat",WebkitMaskSize:"contain",WebkitMaskImage:'url(\'data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none"><path d="M154.75 39q1.65 0 2.85-1.15 1.15-1.15 1.15-2.85v-4q0-1.65-1.15-2.8-1.2-1.2-2.85-1.2h-93.6q-2.3 0-3.85 1.2-1.55 1.15-1.55 2.8v4q0 1.7 1.55 2.85Q58.85 39 61.15 39h93.6m-111.7-3.35q.2-1.3.2-2.65 0-1.35-.2-2.65-.75-4.9-4.5-8.65-4.7-4.7-11.3-4.7-6.65 0-11.3 4.7-4.7 4.7-4.7 11.3 0 6.65 4.7 11.3Q20.6 49 27.25 49q6.6 0 11.3-4.7 3.75-3.7 4.5-8.65Z" id="a"/></svg>\')'},rc:l.jsx("span",{}),children:l.jsx(h,{rc:l.jsx("span",{})})})}),l.jsx(w,{sx:{display:"flex",width:"100%",backgroundColor:"#F3F3F30A",borderRadius:"8px"},children:l.jsx(w,{sx:{width:"100%",height:"64px",WebkitMaskPosition:"right center",WebkitMaskRepeat:"no-repeat",WebkitMaskSize:"contain",WebkitMaskImage:'url(\'data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" width="196" height="96"><path d="M182.85 55.2Q181.65 54 180 54h-56q-1.7 0-2.85 1.2Q120 56.35 120 58v4q0 1.7 1.15 2.85Q122.3 66 124 66h56q1.65 0 2.85-1.15Q184 63.7 184 62v-4q0-1.65-1.15-2.8m0-22Q181.65 32 180 32H68q-1.7 0-2.85 1.2Q64 34.35 64 36v8q0 1.7 1.15 2.85Q66.3 48 68 48h112q1.65 0 2.85-1.15Q184 45.7 184 44v-8q0-1.65-1.15-2.8Z" id="a"/></svg>\')'},rc:l.jsx("span",{}),children:l.jsx(h,{rc:l.jsx("span",{})})})})]})}function Ls(e){const{t:t}=i(),{bridgeDispatch:s,bridgeState:{tokenBalances:a,allowedTokens:n,checkout:r,from:c,to:d,amount:u,token:x}}=o.useContext(At),{cryptoFiatState:p,cryptoFiatDispatch:g}=o.useContext(Fe),{viewDispatch:h}=o.useContext(R),{testId:E,defaultAmount:b,defaultTokenAddress:m,isTokenBalancesLoading:f,defaultTokenImage:I}=e,{track:y}=S(),[A,v]=o.useState(b||""),[_,C]=o.useState(""),[N,L]=o.useState(),[D,B]=o.useState(""),[M,O]=o.useState(""),[G,F]=o.useState(!1),U=o.useRef(!1),K=N?`${t("views.BRIDGE_FORM.content.availableBalancePrefix")} ${ie(N?.formattedBalance)}`:"",[z,$]=o.useState([]),[H,J]=o.useState(!1),[Z,q]=o.useState(""),[Q,Y]=o.useState(!1),ee=o.useCallback(((e,t)=>t?`${e.toLowerCase()}-${t.toLowerCase()}`:e.toLowerCase()),[]);o.useEffect((()=>{if(0===a.length)return;const e=a.filter((e=>e.balance.gt(0))).map((e=>({id:ee(e.token.symbol,e.token.address),name:e.token.name,symbol:e.token.symbol,icon:e.token.icon,balance:{formattedFiatAmount:0===p.conversions.size?le(""):P(e.formattedBalance,e.token.symbol,p.conversions),formattedAmount:ie(e.formattedBalance)}})));$(e),U.current||(U.current=!0,m&&L(a.find((e=>W(e.token.address)&&m?.toLocaleUpperCase()===ce||e.token.address?.toLowerCase()===m?.toLowerCase()))))}),[a,p.conversions,m,U.current,ee,le]),o.useEffect((()=>{if(u&&x){v(u);for(let e=0;e<a.length;e++){const t=a[e];if(t.token.address===x.address){L(t);break}}s({payload:{type:yt.SET_TOKEN_AND_AMOUNT,token:null,amount:""}})}}),[u,x,a]);const te=o.useMemo((()=>N&&N.token?ee(N.token.symbol,N.token.address):void 0),[N,a,p.conversions,ee]),se=o.useMemo((()=>!a.find((e=>W(e.token.address)))),[a,N,A]),ae=e=>{let t=e;if("."===t&&(t="0."),v(t),_){const e=Is(t,N?.formattedBalance);C(e)}var s;N&&(O(P(t,N.token.symbol,p.conversions)),s=!0,Number.isNaN(parseFloat(A))||parseFloat(A)<=0||!N||!c||!c.walletAddress||!d||!d.walletAddress||s&&G||!r||F(!0))};o.useEffect((()=>{g({payload:{type:Ve.SET_TOKEN_SYMBOLS,tokenSymbols:n.map((e=>e.symbol))}})}),[g,n]),o.useEffect((()=>{A&&N&&O(P(A,N.token.symbol,p.conversions))}),[A,N]),o.useEffect((()=>{(async()=>{if(!c?.web3Provider)return;const e=await c.web3Provider.getSigner().getAddress();q((t=>(""!==t&&t!==e&&L(void 0),e)))})()}),[c?.web3Provider,a]);const ne=o.useCallback((()=>{const e=N?"":"views.BRIDGE_FORM.validation.noTokenSelected";const t=Is(A,N?.formattedBalance);return e&&B(e),t&&C(t),!e&&!t}),[N,A,B,C]),re=o.useCallback((async()=>{ne()&&r&&c?.web3Provider&&N&&(se?J(!0):(y({userJourney:k.BRIDGE,screen:"TokenAmount",control:"Review",controlType:"Button",extras:{tokenAddress:N.token.address,amount:A}}),s({payload:{type:yt.SET_TOKEN_AND_AMOUNT,token:N.token,amount:A}}),h({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_REVIEW}}})))}),[r,c?.web3Provider,ne,se,N]);return l.jsxs(w,{testId:E,sx:ys,children:[l.jsxs(w,{sx:{paddingX:"base.spacing.x4"},children:[l.jsx(X,{testId:`${E}-content-heading`,size:"small",weight:"regular",sx:{paddingBottom:"base.spacing.x4"},children:t("views.BRIDGE_FORM.content.title")}),(!m||!f)&&l.jsxs(w,{sx:As,children:[l.jsx(Je,{testId:"bridge-token",options:z,optionsLoading:f,coinSelectorHeading:t("views.BRIDGE_FORM.bridgeForm.from.selectorTitle"),selectedOption:te,subtext:K,textAlign:"left",errorMessage:t(D),onSelectChange:e=>(e=>{const t=a.find((t=>e===ee(t.token.symbol,t.token.address)));t&&(L(t),B(""))})(e),defaultTokenImage:I}),l.jsx(Ze,{testId:"bridge-amount",type:"number",value:A,placeholder:t("views.BRIDGE_FORM.bridgeForm.from.inputPlaceholder"),subtext:`${t("views.BRIDGE_FORM.content.fiatPricePrefix")} $${le(M,!0)}`,validator:de,onTextInputChange:e=>ae(e),onTextInputEnter:re,textAlign:"right",errorMessage:t(_)})]}),m&&f&&l.jsx(Ns,{sx:As})]}),l.jsxs(w,{sx:vs,children:[l.jsx(T,{testId:`${E}-button`,variant:"primary",onClick:re,size:"large",children:t("views.BRIDGE_FORM.bridgeForm.buttonText")}),l.jsx(qe,{visible:Q,showHeaderBar:!1,onCloseDrawer:()=>Y(!1),onRetry:async()=>{Y(!1),await re()}}),l.jsx(js,{environment:r.config.environment,visible:H,showHeaderBar:!1,onCloseDrawer:()=>J(!1),walletAddress:Z,showAdjustAmount:W(N?.token.address),tokenSymbol:c?.network===V(r?.config)?oe:ue,onAddCoinsClick:()=>{h({payload:{type:j.UPDATE_VIEW,view:{type:xe.TOP_UP_VIEW}}})}})]})]})}const Ds=1e4;function Ws({amount:e,tokenAddress:t,defaultTokenImage:s}){const{t:a}=i(),{bridgeState:n,bridgeDispatch:r}=o.useContext(At),{checkout:c,from:d}=n,{eventTargetState:{eventTarget:u}}=o.useContext(O),[x,p]=o.useState(!1),{page:g}=S();o.useEffect((()=>{(e||t)&&g({userJourney:k.BRIDGE,screen:"TokenAmount",extras:{amount:e,tokenAddress:t}})}),[]);const h=o.useCallback((async()=>{if(c&&d?.web3Provider)try{const e=await Qe({checkout:c,provider:d.web3Provider,allowTokenListType:U.BRIDGE,retryPolicy:{retryIntervalMs:0,retries:0}});if(void 0===e)return;r({payload:{type:yt.SET_TOKEN_BALANCES,tokenBalances:e.allowedBalances}}),r({payload:{type:yt.SET_ALLOWED_TOKENS,allowedTokens:e.allowList.tokens}})}catch(e){console.debug(e)}}),[c,d?.web3Provider]);return $e(h,Ds),o.useEffect((()=>{c&&d?.web3Provider&&(p(!0),h().finally((()=>p(!1))))}),[c,d?.web3Provider]),l.jsx(H,{testId:"bridge-view",header:l.jsx(J,{showBack:!0,title:a("views.BRIDGE_FORM.header.title"),onCloseButtonClick:()=>jt(u)}),footer:l.jsx(Z,{}),children:l.jsx(Ls,{testId:"bridge-form",defaultAmount:e,defaultTokenAddress:t,isTokenBalancesLoading:x,defaultTokenImage:s})})}const Bs={borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginBottom:"2px"},Ms={borderTopLeftRadius:"0px",borderTopRightRadius:"0px",backgroundColor:"base.color.translucent.emphasis.100"},Ps={height:"100%",display:"flex",flexDirection:"column",paddingX:"base.spacing.x4"},Os={paddingTop:"base.spacing.x10",paddingBottom:"base.spacing.x4"},Gs={display:"flex",flexDirection:"column",alignItems:"center",paddingY:"base.spacing.x1"},Fs={width:"base.icon.size.300",transform:"rotate(270deg)"},Vs={width:"base.icon.size.400"},Us=(e,t,s)=>{const a=[];if(!e?.fees||!e.token)return a;let n=pe.from(0);if(e.fees.bridgeFee&&(n=n.add(e.fees.bridgeFee)),e.fees.imtblFee&&(n=n.add(e.fees.imtblFee)),n.gt(0)&&a.push({label:s("drawers.feesBreakdown.fees.serviceFee.label"),fiatAmount:`~ ${s("drawers.feesBreakdown.fees.fiatPricePrefix")}${P(ge(n,e.token.decimals),e.token.symbol,t.conversions)}`,amount:ie(ge(n,e.token.decimals))}),e.fees.sourceChainGas?.gt(0)){const n=ge(e.fees.sourceChainGas,e.token.decimals);a.push({label:s("drawers.feesBreakdown.fees.gasFeeMove.label"),fiatAmount:`~ ${s("drawers.feesBreakdown.fees.fiatPricePrefix")}${P(n,e.token.symbol,t.conversions)}`,amount:`${ie(n)}`,prefix:"~ "})}if(e.fees.approvalFee?.gt(0)){const n=ge(e.fees.approvalFee,e.token.decimals);a.push({label:s("drawers.feesBreakdown.fees.gasFeeApproval.label"),fiatAmount:`~ ${s("drawers.feesBreakdown.fees.fiatPricePrefix")}${P(n,e.token.symbol,t.conversions)}`,amount:`${ie(n)}`,prefix:"~ "})}return a},Ks="bridge-review-summary";function zs(){const{t:e}=i(),{viewDispatch:t}=o.useContext(R),{bridgeState:{checkout:s,tokenBridge:a,from:n,to:r,token:d,amount:u}}=o.useContext(At),{track:x}=S(),{cryptoFiatState:p}=o.useContext(Fe),[g,h]=o.useState(!1),[b,m]=o.useState(void 0),[y,A]=o.useState(""),[v,_]=o.useState(""),[C,L]=o.useState(void 0),[D,W]=o.useState(void 0),B=o.useMemo((()=>d?.symbol?`${d?.symbol} ${u}`:`${u}`),[d,u]),M=o.useMemo((()=>u&&d?P(u,d.symbol,p.conversions):""),[d,u]),O=o.useMemo((()=>n?n.walletAddress:"-"),[n]),F=o.useMemo((()=>N(n?.web3Provider)),[n]),V=o.useMemo((()=>n&&n.network),[n]),U=St(F),K=o.useMemo((()=>r?r.walletAddress:"-"),[r]),z=o.useMemo((()=>N(r?.web3Provider)),[r]),$=o.useMemo((()=>r?.network),[r]),H=St(z),J=o.useCallback((async()=>{if(!(a&&u&&n&&r&&d))return;const[e,t]=await Promise.all([a.getUnsignedApproveBridgeTx({senderAddress:O,token:d.address??ce.toUpperCase(),amount:he(u,d.decimals),sourceChainId:n?.network.toString(),destinationChainId:r?.network.toString()}),a.getUnsignedBridgeTx({senderAddress:O,recipientAddress:K,token:d.address??ce.toUpperCase(),amount:he(u,d.decimals),sourceChainId:n?.network.toString(),destinationChainId:r?.network.toString(),gasMultiplier:1.1})]);L(e),W(t);const o=t.feeData,{totalFees:i,approvalFee:l}=o;let c=i;e.unsignedTx||(c=i.sub(l),o.approvalFee=pe.from(0));const x={gasEstimateType:we.BRIDGE_TO_L2,fees:{...o,totalFees:c},token:s.config.networkMap.get(n.network)?.nativeCurrency};m(x);const g=ge(x?.fees.totalFees||0,Te);A(g),_(P(g,x?.token?.symbol||"",p.conversions))}),[s,a]);$e((()=>J()),Ee);const Z=o.useCallback((()=>Us(b,p,e)),[b]);o.useEffect((()=>{(async()=>{h(!0),await J(),h(!1)})()}),[]);const q=o.useCallback((async()=>{C&&D&&(x({userJourney:k.BRIDGE,screen:"Summary",control:"Submit",controlType:"Button",extras:{fromWalletAddress:O,fromNetwork:V,fromWallet:{address:O,isPassportWallet:G(n?.web3Provider),isMetaMask:ee(n?.web3Provider)},toWalletAddress:K,toNetwork:$,toWallet:{address:K,isPassportWallet:G(r?.web3Provider),isMetaMask:ee(r?.web3Provider)},amount:u,fiatAmount:M,tokenAddress:d?.address}}),t({payload:{type:j.UPDATE_VIEW,view:{type:Ge.APPROVE_TRANSACTION,approveTransaction:C,transaction:D}}}))}),[t,C,D]);return l.jsxs(w,{testId:Ks,sx:Ps,children:[l.jsx(X,{testId:`${Ks}-heading`,size:"small",weight:"regular",sx:Os,children:e("views.BRIDGE_REVIEW.heading")}),l.jsxs(c,{testId:`${Ks}-from-amount`,size:"small",emphasized:!0,sx:Bs,children:[l.jsx(c.Label,{size:"small",sx:{marginBottom:"base.spacing.x4",fontWeight:"bold"},children:e("views.BRIDGE_REVIEW.fromLabel.amountHeading")}),l.jsx(c.Caption,{}),l.jsx(c.PriceDisplay,{use:l.jsx(X,{size:"xSmall",weight:"light"}),price:B??"-",fiatAmount:`${e("views.BRIDGE_REVIEW.fiatPricePrefix")}${M}`})]}),l.jsxs(c,{testId:`${Ks}-from-address`,size:"xSmall",emphasized:!0,sx:Ms,children:[F&&l.jsx(c.FramedLogo,{logo:U,sx:{backgroundColor:"base.color.translucent.standard.200"}}),l.jsxs(c.Label,{children:[l.jsx("strong",{children:e("views.BRIDGE_REVIEW.fromLabel.heading")})," ",l.jsx(E,{size:"small",sx:{color:"base.color.text.body.secondary"},children:os(O??"")})]}),V&&l.jsx(c.IntentIcon,{icon:I[V],sx:Es(V)})]}),l.jsx(w,{sx:Gs,children:l.jsx(f,{icon:"ArrowBackward",sx:Fs})}),l.jsxs(c,{testId:`${Ks}-to-address`,size:"xSmall",emphasized:!0,sx:Bs,children:[z&&l.jsx(c.FramedLogo,{logo:H,sx:{backgroundColor:"base.color.translucent.standard.200"}}),l.jsxs(c.Label,{children:[l.jsx("strong",{children:e("views.BRIDGE_REVIEW.toLabel.heading")})," ",l.jsx(E,{size:"small",sx:{color:"base.color.text.body.secondary"},children:os(K??"")})]}),$&&l.jsx(c.IntentIcon,{icon:I[$],sx:Es($)})]}),l.jsx(Ye,{gasFeeValue:y,gasFeeFiatValue:v,gasFeeToken:b?.token,fees:Z(),onFeesClick:()=>{x({userJourney:k.BRIDGE,screen:"MoveCoins",control:"ViewFees",controlType:"Button"})},sx:{borderTopRightRadius:"0",borderTopLeftRadius:"0"},loading:g}),l.jsx(w,{sx:{flex:1,display:"flex",flexDirection:"column",justifyContent:"flex-end",paddingY:"base.spacing.x6",width:"100%"},children:l.jsx(T,{size:"large",sx:{width:"100%"},onClick:q,disabled:g,testId:`${Ks}__submit-button`,children:g?l.jsx(T.Icon,{icon:"Loading",sx:Vs}):e("views.BRIDGE_REVIEW.submitButton.buttonText")})})]})}function $s(){const{t:e}=i(),{eventTargetState:{eventTarget:t}}=o.useContext(O),{page:s}=S();return o.useEffect((()=>{s({userJourney:k.BRIDGE,screen:"Review"})}),[]),l.jsx(H,{testId:"bridge-review",header:l.jsx(J,{showBack:!0,title:e("views.BRIDGE_REVIEW.layoutHeading"),onCloseButtonClick:()=>jt(t)}),footer:l.jsx(Z,{}),children:l.jsx(zs,{})})}function Hs({environment:e}){const{RiveComponent:t}=be.useRive({src:`${me[e]}/v1/blob/img/rocket.riv`,autoplay:!0,layout:new be.Layout({fit:be.Fit.Cover}),stateMachines:"State Machine 1"});return l.jsx(w,{sx:{...fe,background:"base.color.translucent.emphasis.100"},children:l.jsx(w,{sx:Ie,rc:l.jsx(t,{})})})}function Js({transactionHash:e}){const{t:t}=i(),{eventTargetState:{eventTarget:s}}=o.useContext(O),{page:a}=S(),{cryptoFiatState:n}=o.useContext(Fe),{viewDispatch:r}=o.useContext(R),{bridgeState:{checkout:c,from:d,to:u,token:x,amount:p}}=o.useContext(At);return o.useEffect((()=>{Rt(s,e);const t=P(p,x?.symbol??"",n.conversions);a({userJourney:k.BRIDGE,screen:"InProgress",extras:{fromWalletAddress:d?.walletAddress,toWalletAddress:u?.walletAddress,amount:p,fiatAmount:t,tokenAddress:x?.address}})}),[]),l.jsx(H,{testId:"move-in-progress-view",header:l.jsx(J,{transparent:!0,onCloseButtonClick:()=>jt(s),rightActions:l.jsxs(l.Fragment,{children:[l.jsx(te,{icon:"Minting",sx:se(),onClick:()=>{r({payload:{type:j.UPDATE_VIEW,view:{type:Ge.TRANSACTIONS}}})},testId:"settings-button"}),l.jsx(ye,{isAnimated:!0,variant:"guidance",sx:{position:"absolute",right:"base.spacing.x14",top:"base.spacing.x1"}})]})}),footer:l.jsx(Z,{}),heroContent:l.jsx(Hs,{environment:c.config.environment}),floatHeader:!0,children:l.jsxs(Ae,{heading:t("views.IN_PROGRESS.heading"),children:[t("views.IN_PROGRESS.body1"),l.jsx("br",{}),l.jsx("br",{}),t("views.IN_PROGRESS.body2")]})})}function Zs({approveTransaction:e,transaction:t}){const{t:s}=i(),{bridgeState:a}=o.useContext(At),{checkout:n,from:r}=a,{viewDispatch:c}=o.useContext(R),{eventTargetState:{eventTarget:d}}=o.useContext(O),{page:u}=S();o.useEffect((()=>{u({userJourney:k.BRIDGE,screen:"ApproveTransaction"})}),[]);const[x,p]=o.useState(!1),[g,h]=o.useState(!1),[E,T]=o.useState(!1),[b,m]=o.useState(!1),f=o.useCallback((()=>{c({payload:{type:j.UPDATE_VIEW,view:{type:xe.ERROR_VIEW,error:new Error("No checkout object or no provider object found")}}})}),[c]),I=o.useCallback((()=>{c({payload:{type:j.GO_BACK}})}),[c]),y=e=>{if(e.type!==ve.UNPREDICTABLE_GAS_LIMIT){if(e.type===ve.TRANSACTION_FAILED||e.type===ve.INSUFFICIENT_FUNDS||e.receipt&&0===e.receipt.status){let t="Transaction failed";return e.type===ve.INSUFFICIENT_FUNDS&&(t="Insufficient funds"),e.receipt&&0===e.receipt.status&&(t="Transaction failed to settle on chain"),void c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:t}}})}c({payload:{type:j.UPDATE_VIEW,view:{type:xe.ERROR_VIEW,error:e}}})}else c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:"Unpredictable gas limit"}}})},A=o.useCallback((async()=>{let s=!1;if(n&&r?.web3Provider&&t){if(!x){if(p(!0),e.unsignedTx)try{h(!0);const t=await n.sendTransaction({provider:r.web3Provider,transaction:e.unsignedTx});if(1!==(await t.transactionResponse.wait()).status)return void c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:"Transaction failed to settle on chain"}}})}catch(e){h(!1),e.type===ve.USER_REJECTED_REQUEST_ERROR?(m(!0),s=!0):y(e)}finally{p(!1)}try{if(s)return;h(!0);const e=await n.sendTransaction({provider:r.web3Provider,transaction:t.unsignedTx});T(!0);const a=await e.transactionResponse.wait();if(0===a.status)return void c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:"Approval transaction failed to settle on chain"}}});c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.IN_PROGRESS,transactionHash:a.transactionHash}}})}catch(e){e.type===ve.USER_REJECTED_REQUEST_ERROR?m(!0):y(e)}finally{T(!1),h(!1),p(!1)}}}else f()}),[n,r,f,c,t,e,x]);return l.jsxs(l.Fragment,{children:[E&&l.jsx(Y,{loadingText:s("views.APPROVE_TRANSACTION.loadingView.text"),showFooterLogo:!0}),!E&&l.jsx(H,{header:l.jsx(J,{transparent:!0,showBack:!0,onCloseButtonClick:()=>jt(d),onBackButtonClick:I}),floatHeader:!0,heroContent:l.jsx(Xe,{}),footer:l.jsxs(w,{sx:{width:"100%",flexDirection:"column"},children:[l.jsx(Se,{loading:g,actionText:s("views.APPROVE_TRANSACTION."+(b?"footer.retryText":"footer.buttonText")),onActionClick:A}),l.jsx(Z,{})]}),children:l.jsx(Ae,{heading:s("views.APPROVE_TRANSACTION.content.heading"),children:l.jsx(w,{children:s("views.APPROVE_TRANSACTION.content.body")})})})]})}const qs={display:"flex",flexDirection:"column",alignItems:"center",paddingTop:"base.spacing.x6",paddingBottom:"base.spacing.x1",height:"100%"},Qs={color:"base.color.text.body.secondary",fontFamily:"base.font.family.heading.secondary",textAlign:"center",marginTop:"15px"},Ys={display:"flex",flexDirection:"column",justifyContent:"center",gap:"base.spacing.x2",height:"100%",width:"100%"},Xs={width:"100%",height:"base.spacing.x16"};function ea({visible:e,onClose:t,onChangeAccount:s}){const{t:a}=i(),{bridgeState:{checkout:n}}=o.useContext(At),r=ae(n.config.environment);return l.jsx(d,{headerBarTitle:void 0,size:"full",onCloseDrawer:t,visible:e,showHeaderBar:!1,children:l.jsx(d.Content,{children:l.jsxs(w,{testId:"not-enough-eth-drawer",sx:qs,children:[l.jsx(re,{imageUrl:r,sx:{w:"base.icon.size.600",h:"base.icon.size.600"}}),l.jsx(X,{size:"small",sx:Qs,testId:"not-enough-gas-heading",children:`${a("drawers.notEnoughEthWithdrawal.content.heading1")} ${oe} ${a("drawers.notEnoughEthWithdrawal.content.heading2")}`}),l.jsx(E,{sx:Qs,children:`${a("drawers.notEnoughEthWithdrawal.content.body1")} ${oe} ${a("drawers.notEnoughEthWithdrawal.content.body2")}`}),l.jsxs(w,{sx:Ys,children:[l.jsx(T,{testId:"not-enough-eth-drawer-retry-button",sx:Xs,variant:"tertiary",onClick:s,children:a("drawers.notEnoughEthWithdrawal.buttons.retry")}),l.jsx(T,{sx:Xs,variant:"tertiary",onClick:t,testId:"not-enough-eth-drawer-dismiss-button",children:a("drawers.notEnoughEthWithdrawal.buttons.dismiss")})]})]})})})}function ta({transaction:e}){const{t:t}=i(),{bridgeState:{checkout:s,tokenBridge:a,from:n}}=o.useContext(At),{viewDispatch:c}=o.useContext(R),{eventTargetState:{eventTarget:d}}=o.useContext(O),{page:u}=S();o.useEffect((()=>{u({userJourney:k.BRIDGE,screen:"ClaimWithdrawal"})}),[]);const[x,p]=o.useState(!1),[g,h]=o.useState(!1),[E,b]=o.useState(!1),[m,f]=o.useState(),[I,y]=o.useState(!1),A=o.useCallback((()=>{c({payload:{type:j.GO_BACK}})}),[c]);o.useEffect((()=>{(async()=>{if(a&&e&&void 0!==e.details.current_status?.index){h(!0);try{const t=await(a?.getFlowRateWithdrawTx({recipient:e.details.to_address,index:e.details.current_status.index}));f(t)}catch(e){console.log(e)}finally{h(!1)}}})()}),[a,e]);const _=o.useCallback((async({forceChangeAccount:e})=>{if(!(s&&a&&n?.web3Provider&&m))return;if(!m.pendingWithdrawal.canWithdraw||!m.unsignedTx)return void console.log(`Unable to process withdrawal transaction as it is not ready yet. Delay timeout at ${m.pendingWithdrawal.timeoutEnd} `);let t=n?.web3Provider;const o=V(s.config);if(p(!0),G(n?.web3Provider)||e)try{const e=await s.createProvider({walletProviderName:r.METAMASK});t=(await s.connect({provider:e.provider,requestWalletPermissions:!0})).provider,y(!1)}catch(e){return console.log(e),b(!0),void p(!1)}let i,l=null;try{try{i=await t.estimateGas(m.unsignedTx)}catch(e){i=pe.from(_e)}let e=null;try{e=await t.getFeeData()}catch(e){console.log(e)}let s=null;e&&e.lastBaseFeePerGas&&e.maxPriorityFeePerGas?s=e.lastBaseFeePerGas.add(e.maxPriorityFeePerGas):e&&e.gasPrice&&(s=e.gasPrice),s&&(l=i.mul(s))}catch(e){console.log(e)}try{const e=(await s.getAllBalances({provider:t,chainId:o})).balances.find((e=>W(e.token.address)));if(!e||e.balance.lt(l))return y(!0),void p(!1)}catch(e){console.log(e)}if((await t.getNetwork()).chainId!==o)try{t=(await s.switchNetwork({provider:t,chainId:o})).provider}catch(e){return b(!0),h(!1),void console.log(e)}try{const e=await s.sendTransaction({provider:t,transaction:m.unsignedTx});c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_IN_PROGRESS,transactionResponse:e.transactionResponse}}})}catch(e){console.log(e),b(!0),p(!1)}finally{p(!1)}}),[a,n,m]);return l.jsxs(H,{testId:"claim-withdrawal",header:l.jsx(J,{transparent:!0,showBack:!0,onCloseButtonClick:()=>jt(d),onBackButtonClick:A}),floatHeader:!0,heroContent:l.jsx(Xe,{}),footer:l.jsxs(w,{sx:{width:"100%",display:"flex",flexDirection:"column"},children:[l.jsx(w,{sx:{pb:"base.spacing.x5",px:"base.spacing.x6",width:"100%",display:"flex",flexDirection:"column"},children:l.jsx(T,{testId:"claim-withdrawal-continue-button",size:"large",variant:"primary",disabled:g,onClick:()=>x||g?void 0:_({forceChangeAccount:!0}),children:g||x?l.jsx(T.Icon,{icon:"Loading",sx:{width:"base.icon.size.400"}}):t("views.CLAIM_WITHDRAWAL."+(E?"footer.retryText":"footer.buttonText"))})}),l.jsx(Z,{})]}),children:[l.jsxs(Ae,{heading:`${t("views.CLAIM_WITHDRAWAL.content.heading")} ${bt(V(s.config))}`,children:[l.jsx(w,{sx:{display:"flex",flexWrap:"wrap",pb:"base.spacing.x1"},children:t("views.CLAIM_WITHDRAWAL.content.body")}),l.jsxs(w,{children:[t("views.CLAIM_WITHDRAWAL.content.body2"),l.jsx(v,{text:e.details.to_address.toLowerCase()??""})]})]}),l.jsx(ea,{visible:I,onClose:()=>y(!1),onChangeAccount:()=>_({forceChangeAccount:!0})})]})}function sa({checkout:e,web3Provider:t,config:s,amount:a,tokenAddress:n}){const{t:r}=i(),{environment:c,isOnRampEnabled:d,isSwapEnabled:u,isBridgeEnabled:g,theme:h}=s,w=ke(e.config.environment,h),{eventTargetState:{eventTarget:E}}=o.useContext(O),{page:T}=S(),[b,m]=o.useReducer(Ce,{...Re,view:{type:Ge.WALLET_NETWORK_SELECTION},history:[{type:Ge.WALLET_NETWORK_SELECTION}]}),[f,I]=o.useReducer(vt,{...It,checkout:e,web3Provider:t??null,tokenBridge:(()=>{let t=Me;e.config.isDevelopment&&(t=Pe),e.config.isProduction&&(t=Oe);const s=new q(e.config.networkMap.get(V(e.config))?.rpcUrls[0]),a=new q(e.config.networkMap.get(K(e.config))?.rpcUrls[0]),n=new je({baseConfig:new Ne({environment:e.config.environment}),bridgeInstance:t,rootProvider:s,childProvider:a});return new Le(n)})()}),y=o.useMemo((()=>({viewState:b,viewDispatch:m})),[b,m]),A=o.useMemo((()=>({bridgeState:f,bridgeDispatch:I})),[f,I]),v=o.useCallback((()=>{I({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:null,to:null}}),I({payload:{type:yt.SET_TOKEN_AND_AMOUNT,amount:"",token:null}}),m({payload:{type:j.GO_BACK_TO,view:{type:Ge.WALLET_NETWORK_SELECTION}}})}),[m]),_=o.useCallback((()=>{m({payload:{type:j.GO_BACK_TO,view:{type:Ge.WALLET_NETWORK_SELECTION}}})}),[m]),C=o.useCallback((()=>{m({payload:{type:j.UPDATE_VIEW,view:{type:Ge.TRANSACTIONS}}})}),[m]),N=o.useCallback((()=>{m({payload:{type:j.GO_BACK_TO,view:{type:Ge.BRIDGE_REVIEW}}})}),[m]);return o.useEffect((()=>{(async()=>{I({payload:{type:yt.SET_PROVIDER,web3Provider:t??null}})})()}),[t]),l.jsx(R.Provider,{value:y,children:l.jsx(At.Provider,{value:A,children:l.jsxs(Ue,{environment:c,children:[b.view.type===Ge.WALLET_NETWORK_SELECTION&&l.jsx(fs,{}),b.view.type===Ge.BRIDGE_FORM&&l.jsx(Ws,{amount:a,tokenAddress:n,defaultTokenImage:w}),b.view.type===Ge.BRIDGE_REVIEW&&l.jsx($s,{}),b.view.type===Ge.IN_PROGRESS&&l.jsx(Js,{transactionHash:b.view.transactionHash}),b.view.type===Ge.BRIDGE_FAILURE&&l.jsx(De,{testId:"bridge-fail",statusText:r("views.BRIDGE_FAILURE.bridgeFailureText.statusText"),actionText:r("views.BRIDGE_FAILURE.bridgeFailureText.actionText"),onActionClick:N,statusType:We.FAILURE,onRenderEvent:()=>{let e="";b.view.type===Ge.BRIDGE_FAILURE&&(e=b.view.reason),T({userJourney:k.BRIDGE,screen:"Failed",extras:{reason:e}}),((e,t)=>{const s=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.FAILURE,data:{reason:t,timestamp:(new Date).getTime()}}});console.log("bridge failed ",e,s),void 0!==e&&e.dispatchEvent(s)})(E,e)}}),b.view.type===Ge.APPROVE_TRANSACTION&&l.jsx(Zs,{approveTransaction:b.view.approveTransaction,transaction:b.view.transaction}),b.view.type===Ge.TRANSACTIONS&&l.jsx(as,{onBackButtonClick:_,defaultTokenImage:w}),b.view.type===Ge.CLAIM_WITHDRAWAL&&l.jsx(ta,{transaction:b.view.transaction}),b.view.type===xe.ERROR_VIEW&&l.jsx(Be,{actionText:r("views.ERROR_VIEW.actionText"),onActionClick:v,onCloseClick:()=>jt(E),errorEventAction:()=>{T({userJourney:k.BRIDGE,screen:"Error"})}}),b.view.type===xe.TOP_UP_VIEW&&l.jsx(Ke,{analytics:{userJourney:k.BRIDGE},widgetEvent:x.IMTBL_BRIDGE_WIDGET_EVENT,checkout:e,provider:t,showOnrampOption:d,showSwapOption:u,showBridgeOption:g,onCloseButtonClick:()=>jt(E)}),b.view.type===Ge.CLAIM_WITHDRAWAL_IN_PROGRESS&&l.jsx(ns,{transactionResponse:b.view.transactionResponse}),b.view.type===Ge.CLAIM_WITHDRAWAL_SUCCESS&&l.jsx(De,{statusText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.success.text"),actionText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.success.actionText"),onRenderEvent:()=>{T({userJourney:k.BRIDGE,screen:"ClaimWithdrawalSuccess"}),((e,t)=>{const s=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.CLAIM_WITHDRAWAL_SUCCESS,data:{transactionHash:t}}});console.log("bridge claim withdrawal success event:",e,s),void 0!==e&&e.dispatchEvent(s)})(E,b.view.transactionHash)},onActionClick:C,statusType:We.SUCCESS,testId:"claim-withdrawal-success-view"}),b.view.type===Ge.CLAIM_WITHDRAWAL_FAILURE&&l.jsx(De,{statusText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.failure.text"),actionText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.failure.actionText"),onRenderEvent:()=>{let e="";b.view.type===Ge.CLAIM_WITHDRAWAL_FAILURE&&(e=b.view.reason),T({userJourney:k.BRIDGE,screen:"ClaimWithdrawalFailure",extras:{reason:e}}),((e,t,s)=>{const a=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.CLAIM_WITHDRAWAL_FAILURE,data:{transactionHash:t,reason:s,timestamp:(new Date).getTime()}}});console.log("bridge claim withdrawal failed event:",e,a),void 0!==e&&e.dispatchEvent(a)})(E,b.view.transactionHash,"Transaction failed")},onActionClick:C,statusType:We.FAILURE,onCloseClick:()=>jt(E),testId:"claim-withdrawal-fail-view"})]})})})}var aa=Object.freeze({__proto__:null,default:sa});export{sa as B,aa as a,bt as g};
|
|
1
|
+
import{b5 as e,b6 as t,ar as s,b7 as a,b8 as n,r as o,b9 as r,u as i,j as l,M as c,as as d,ba as u,I as x,ao as p,bb as g,bc as h,B as w,l as E,O as T,bd as b,a4 as m,aM as f,P as I,Q as y,be as A,bf as v,a as S,bg as _,U as k,bh as C,V as R,d as j,bi as N,aL as L,bj as D,z as W,X as B,ad as M,Y as P,E as O,o as G,bk as F,q as V,T as U,p as K,bl as z,bm as $,c as H,H as J,F as Z,bn as q,bo as Q,L as Y,w as X,bp as ee,m as te,_ as se,bq as ae,aJ as ne,br as oe,aK as re,x as ie,n as le,N as ce,aP as de,aV as ue,S as xe,ac as pe,aQ as ge,aI as he,bs as we,aN as Ee,aT as Te,bt as be,bu as me,a1 as fe,a2 as Ie,bv as ye,e as Ae,D as ve,aW as Se,bw as _e,t as ke,v as Ce,i as Re,bx as je,aY as Ne,by as Le,f as De,h as We,a6 as Be,bz as Me,bA as Pe,bB as Oe}from"./index-d4117464.js";import{B as Ge,C as Fe,a as Ve,b as Ue,T as Ke}from"./TopUpView-6927b26e.js";import{r as ze,u as $e}from"./retry-0087cf02.js";import{b as He,S as Je,T as Ze,a as qe,g as Qe,F as Ye,W as Xe}from"./balance-1abfdac7.js";const{Axios:et,AxiosError:tt,CanceledError:st,isCancel:at,CancelToken:nt,VERSION:ot,all:rt,Cancel:it,isAxiosError:lt,spread:ct,toFormData:dt,AxiosHeaders:ut,HttpStatusCode:xt,formToJSON:pt,getAdapter:gt,mergeConfig:ht}=e;class wt{url;ttl;env;cacheMap;setCache(e,t){this.cacheMap[e]={data:t,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(e){const t=this.cacheMap[e];return!t||t.ttl<=(new Date).getTime()?null:t.data}constructor(e){this.env=e.env,this.url=`${t[this.env]}/checkout`,this.cacheMap={},this.ttl=void 0!==e.ttl?e.ttl:60}static isHttpError=e=>"code"in e;async getTransactions(t){const{txType:s,fromAddress:a}=t;try{const t=`${this.url}/v1/transactions?from_address=${a}&tx_type=${s}`,n=this.getCache(t);if(n)return Promise.resolve(n);const o=await e.get(t);if(o.status>=400)return Promise.reject({code:o.status,message:o.statusText});const{data:r}=o;return this.setCache(t,r),Promise.resolve(r)}catch(t){let s=xt.InternalServerError,a="InternalServerError";return e.isAxiosError(t)&&(s=t.response?.status||s,a=t.message),Promise.reject({code:s,message:a})}}}var Et;!function(e){e.BRIDGE="bridge"}(Et||(Et={}));const Tt={IN_PROGRESS:"in_progress",WITHDRAWAL_PENDING:"withdrawal_pending"};function bt(e){switch(e){case s.ETHEREUM:return a.ETHEREUM;case s.IMTBL_ZKEVM_TESTNET:return a.IMTBL_ZKEVM_TESTNET;case s.IMTBL_ZKEVM_MAINNET:return a.IMTBL_ZKEVM_MAINNET;case s.IMTBL_ZKEVM_DEVNET:return a.IMTBL_ZKEVM_DEVNET;case s.SEPOLIA:return a.SEPOLIA;default:return""}}function mt(e){switch(e){case s.ETHEREUM:return n.ETHEREUM;case s.IMTBL_ZKEVM_TESTNET:return n.IMTBL_ZKEVM_TESTNET;case s.IMTBL_ZKEVM_MAINNET:return n.IMTBL_ZKEVM_MAINNET;case s.IMTBL_ZKEVM_DEVNET:return n.IMTBL_ZKEVM_DEVNET;case s.SEPOLIA:return n.SEPOLIA;default:return""}}function ft(e){switch(e){case n.ETHEREUM:return s.ETHEREUM;case n.IMTBL_ZKEVM_TESTNET:return s.IMTBL_ZKEVM_TESTNET;case n.IMTBL_ZKEVM_MAINNET:return s.IMTBL_ZKEVM_MAINNET;case n.IMTBL_ZKEVM_DEVNET:return s.IMTBL_ZKEVM_DEVNET;case n.SEPOLIA:return s.SEPOLIA;default:return 0}}const It={web3Provider:null,walletProviderName:null,from:null,to:null,tokenBridge:null,tokenBalances:[],allowedTokens:[],token:null,amount:"0"};var yt;!function(e){e.SET_WALLETS_AND_NETWORKS="SET_WALLETS_AND_NETWORKS",e.SET_WALLET_PROVIDER_NAME="SET_WALLET_PROVIDER_NAME",e.SET_PROVIDER="SET_PROVIDER",e.SET_TOKEN_BRIDGE="SET_TOKEN_BRIDGE",e.SET_TOKEN_BALANCES="SET_TOKEN_BALANCES",e.SET_ALLOWED_TOKENS="SET_ALLOWED_TOKENS",e.SET_TOKEN_AND_AMOUNT="SET_TOKEN_AND_AMOUNT"}(yt||(yt={}));const At=o.createContext({bridgeState:{...It,checkout:{}},bridgeDispatch:()=>{}});At.displayName="BridgeContext";const vt=(e,t)=>{switch(t.payload.type){case yt.SET_WALLETS_AND_NETWORKS:return{...e,from:t.payload.from,to:t.payload.to};case yt.SET_WALLET_PROVIDER_NAME:return{...e,walletProviderName:t.payload.walletProviderName};case yt.SET_PROVIDER:return{...e,web3Provider:t.payload.web3Provider};case yt.SET_TOKEN_BRIDGE:return{...e,tokenBridge:t.payload.tokenBridge};case yt.SET_TOKEN_BALANCES:return{...e,tokenBalances:t.payload.tokenBalances};case yt.SET_ALLOWED_TOKENS:return{...e,allowedTokens:t.payload.allowedTokens};case yt.SET_TOKEN_AND_AMOUNT:return{...e,token:t.payload.token,amount:t.payload.amount};default:return e}};function St(e){switch(e){case r.METAMASK:return"MetaMaskSymbol";case r.PASSPORT:return"PassportSymbolOutlined";case"walletconnect":return"WalletConnectSymbol";default:return"MetaMaskSymbol"}}function _t({testId:e,walletProviderName:t,onWalletClick:s,loading:a}){const{t:n}=i(),[r,d]=o.useState(!1);return l.jsxs(c,{testId:`${e}-wallet-list-${t}`,size:"medium",emphasized:!0,onClick:async()=>{if(!a){d(!0);try{await s(t)}finally{d(!1)}}},children:[l.jsx(c.FramedLogo,{logo:St(t),sx:{backgroundColor:"base.color.translucent.standard.200"}}),l.jsx(c.Label,{size:"medium",children:n(`wallets.${t}.heading`)}),r&&l.jsx(c.StatefulButtCon,{state:"loading",icon:"Loading"})]})}const kt={display:"flex",flexDirection:"column",gap:"base.spacing.x1",paddingX:"base.spacing.x4"};function Ct({testId:e,drawerText:t,walletOptions:s,showWalletSelectorTarget:a,showDrawer:n,setShowDrawer:r,onWalletItemClick:i}){const[c,x]=o.useState(!1),{heading:p,defaultText:g}=t,h=async e=>{x(!0);try{await i(e)}catch(e){console.error(e)}finally{x(!1)}};return l.jsxs(d,{headerBarTitle:p,size:"full",onCloseDrawer:()=>{c||r(!1)},visible:n,children:[a&&l.jsx(d.Target,{children:l.jsx(He,{testId:`${e}-wallet-form-control`,textAlign:"left",children:l.jsx(u,{testId:`${e}-wallet-select`,defaultLabel:g??"",size:"large",targetClickOveride:()=>r(!0)})})}),l.jsx(d.Content,{sx:kt,children:s.map((t=>l.jsx(_t,{testId:e,loading:c,walletProviderName:t,onWalletClick:h},t)))})]})}const Rt=(e,t)=>{const s=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.TRANSACTION_SENT,data:{transactionHash:t}}});console.log("bridge success ",e,s),void 0!==e&&e.dispatchEvent(s)};function jt(e){const t=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.CLOSE_WIDGET,data:{}}});console.log("bridge close ",e,t),void 0!==e&&e.dispatchEvent(t)}function Nt(){return l.jsxs(g,{sx:{gap:"base.spacing.x2"},children:[l.jsx(h,{sx:{h:"base.spacing.x4",w:"base.spacing.x32",mt:"base.spacing.x2"}}),l.jsx(c,{shimmer:!0,emphasized:!0,size:"small"}),l.jsx(c,{shimmer:!0,emphasized:!0,size:"small"}),l.jsx(c,{shimmer:!0,emphasized:!0,size:"small"})]})}const Lt={px:"base.spacing.x4",display:"flex",flexDirection:"column",height:"100%"},Dt={flexGrow:"1",flexShrink:"0",flexBasis:"0"},Wt={flexGrow:"0",flexShrink:"1",mt:"base.spacing.x2"},Bt={bg:"base.color.translucent.emphasis.100",borderRadius:"base.borderRadius.x4",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",height:"100%",px:"base.spacing.x5"};function Mt({openWalletDrawer:e}){const{t:t}=i();return l.jsxs(w,{sx:Bt,children:[l.jsx(E,{sx:{mb:"base.spacing.x8"},children:t("views.TRANSACTIONS.status.emptyState.notConnected.body")}),l.jsx(T,{variant:"secondary",size:"medium",testId:"transactions-connect-wallet-button",onClick:e,children:t("views.TRANSACTIONS.status.emptyState.notConnected.buttonText")})]})}const Pt={backgroundColor:"base.color.neutral.800",px:"base.spacing.x4",p:"base.spacing.x5",borderRadius:"base.borderRadius.x6"},Ot={color:"base.color.text.body.secondary"};function Gt({checkout:e,isPassport:t}){const{t:s}=i(),[a,n]=o.useState("");return o.useEffect((()=>{e&&n(b[e.config.environment])}),[e]),l.jsx(w,{sx:Pt,children:l.jsxs(w,{sx:{display:"flex",flexDirection:"column"},children:[l.jsxs(w,{children:[l.jsx(E,{size:"small",children:s("views.TRANSACTIONS.support.body1")}),l.jsxs(E,{size:"small",sx:Ot,children:[s("views.TRANSACTIONS.support.body2"),l.jsx(m,{size:"small",rc:l.jsx("a",{target:"_blank",href:s("views.TRANSACTIONS.support.supportLink"),rel:"noreferrer"}),children:s("views.TRANSACTIONS.support.body3")})]})]}),t&&l.jsxs(E,{size:"small",sx:Ot,children:[s("views.TRANSACTIONS.support.passport.body1")," ",l.jsx(m,{size:"small",rc:l.jsx("a",{target:"_blank",href:a,rel:"noreferrer"}),children:s("views.TRANSACTIONS.support.passport.body2")})]})]})})}const Ft={display:"flex",flexDirection:"column",borderRadius:"base.borderRadius.x4",bg:"base.color.translucent.emphasis.100"},Vt={p:"base.spacing.x3",d:"flex",justifyContent:"space-between",position:"relative"},Ut={display:"flex",flexGrow:"1",alignItems:"center",gap:"base.spacing.x2"};function Kt({transaction:e}){const t=ft(e.details.from_chain),s=ft(e.details.to_chain);return l.jsxs(w,{sx:{display:"flex",px:"base.spacing.x4",gap:"base.spacing.x2"},children:[l.jsx(f,{icon:I[t],sx:{w:"base.icon.size.250",fill:y[t]},variant:"bold"}),l.jsxs(w,{sx:{display:"flex",flexDirection:"column",flexGrow:"1"},children:[l.jsx(E,{size:"xxSmall",sx:{color:"base.color.translucent.standard.900"},children:A[t]}),l.jsx(v,{size:"xxSmall",sx:{color:"base.color.translucent.standard.600"},text:e.details.from_address})]}),l.jsx(w,{sx:{flexGrow:"1"}}),l.jsx(f,{icon:"ArrowForward",sx:{w:"base.icon.size.250",fill:"base.color.brand.4"}}),l.jsx(w,{sx:{flexGrow:"1"}}),l.jsx(f,{icon:I[s],sx:{w:"base.icon.size.250",fill:y[s]},variant:"bold"}),l.jsxs(w,{sx:{display:"flex",flexDirection:"column",flexGrow:"1"},children:[l.jsx(E,{size:"xxSmall",sx:{color:"base.color.translucent.standard.900"},children:A[s]}),l.jsx(v,{size:"xxSmall",sx:{color:"base.color.translucent.standard.600"},text:e.details.to_address})]})]})}function zt({label:e,details:t,transaction:s,fiatAmount:a,amount:n,icon:r,defaultTokenImage:i}){const{track:d}=S(),u=o.useMemo((()=>`${t.link}${t.hash}`),[t]);return l.jsx(w,{testId:`transaction-item-${s.blockchain_metadata.transaction_hash}`,sx:Ft,children:l.jsxs(_,{chevronSide:"right",sx:{button:{p:"base.spacing.x1"},article:{pr:"base.spacing.x10"}},onExpandChange:e=>e&&d({userJourney:k.BRIDGE,screen:"TransactionItem",control:"Accordion",controlType:"Button"}),children:[l.jsx(_.TargetLeftSlot,{sx:{pr:"base.spacing.x2"},children:l.jsxs(c,{size:"xSmall",children:[l.jsx(c.FramedImage,{imageUrl:r,circularFrame:!0,defaultImageUrl:i}),l.jsx(c.Label,{children:e}),l.jsx(c.Caption,{children:l.jsx(m,{size:"xSmall",rc:l.jsx("a",{target:"_blank",href:u,rel:"noreferrer",onClick:e=>{return s=t,e.stopPropagation(),void d({userJourney:k.BRIDGE,screen:"TransactionItem",control:"Details",controlType:"Link",extras:{linkDetail:s}});var s}}),children:t.text})}),l.jsx(c.PriceDisplay,{fiatAmount:a,price:n})]})}),l.jsxs(_.ExpandedContent,{sx:{pr:"0",pl:"0",mb:"base.spacing.x3",gap:"0"},children:[l.jsx(C,{size:"xSmall",sx:{px:"base.spacing.x2"}}),l.jsx(Kt,{transaction:s})]})]})})}const $t=e=>{let t=440;return e&&(t-=20),{backgroundColor:"base.color.neutral.800",px:"base.spacing.x4",pt:"base.spacing.x5",pb:"base.spacing.x4",borderRadius:"base.borderRadius.x6",h:`${t}px`,w:"100%",overflowY:"scroll"}},Ht={borderRadius:"base.borderRadius.x4",display:"flex",flexDirection:"column",gap:"base.spacing.x5"};function Jt({label:e,transaction:t,fiatAmount:s,amount:a,icon:n,defaultTokenImage:r}){const{viewDispatch:d}=o.useContext(R),{track:u}=S(),x=i(),p=o.useMemo((()=>(new Date).getTime()),[]),g=o.useMemo((()=>t.details.current_status.withdrawal_ready_at?new Date(t.details.current_status.withdrawal_ready_at):void 0),[t]),h=t.details.current_status.status===Tt.WITHDRAWAL_PENDING,b=new Intl.RelativeTimeFormat(x[1].language||"en",{numeric:"auto"}),m=o.useMemo((()=>{if(!h||void 0===g)return"";const e=(g.getTime()-p)/6e4;if(e<=1)return"in 1 minute";if(e<60)return b.format(Math.ceil(e),"minute");const t=e/60;if(e<1440)return b.format(Math.ceil(t),"hour");const s=t/24;return b.format(Math.ceil(s),"day")}),[p,x[1].language]),I=!!g&&g.getTime()<p,y=o.useMemo((()=>!0===I?x.t("views.TRANSACTIONS.status.withdrawalPending.withdrawalReadyText"):`${x.t("views.TRANSACTIONS.status.withdrawalPending.withdrawalDelayText")} ${m}`),[m,x[1].language]);return l.jsxs(w,{testId:`transaction-item-${t.blockchain_metadata.transaction_hash}`,sx:Ft,children:[h&&l.jsxs(l.Fragment,{children:[l.jsxs(w,{sx:Vt,children:[l.jsxs(w,{sx:Ut,children:[l.jsx(f,{icon:"Alert",variant:"bold",sx:{fill:I?"base.color.status.fatal.bright":"base.color.status.attention.bright",w:"base.icon.size.200"}}),l.jsx(E,{testId:`transaction-item-${t.blockchain_metadata.transaction_hash}-action-message`,size:"xSmall",sx:{color:"base.color.text.body.secondary"},children:y})]}),h&&I&&l.jsx(T,{testId:`transaction-item-${t.blockchain_metadata.transaction_hash}-action-button`,variant:"primary",size:"small",onClick:()=>{d({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL,transaction:t}}})},children:x.t("views.TRANSACTIONS.status.withdrawalPending.actionButtonText")})]}),l.jsx(C,{size:"small",sx:{color:"base.color.translucent.emphasis.300",opacity:.1}})]}),l.jsxs(_,{chevronSide:"right",sx:{button:{p:"base.spacing.x1"},article:{pr:"base.spacing.x10"},borderTopRightRadius:"0",borderTopLeftRadius:"0"},onExpandChange:e=>e&&u({userJourney:k.BRIDGE,screen:"TransactionItem",control:"Accordion",controlType:"Button"}),children:[l.jsx(_.TargetLeftSlot,{sx:{pr:"base.spacing.x2"},children:l.jsxs(c,{size:"xSmall",children:[l.jsx(c.FramedImage,{imageUrl:n,circularFrame:!0,defaultImageUrl:r}),l.jsx(c.Label,{children:e}),l.jsx(c.Caption,{children:x.t("views.TRANSACTIONS.status.withdrawalPending.caption")}),l.jsx(c.PriceDisplay,{fiatAmount:s,price:a})]})}),l.jsxs(_.ExpandedContent,{sx:{pr:"0",pl:"0",mb:"base.spacing.x3",gap:"0"},children:[l.jsx(C,{size:"xSmall",sx:{px:"base.spacing.x2"}}),l.jsx(Kt,{transaction:t})]})]})]})}const Zt={display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",p:"base.spacing.x2",pb:"base.spacing.x4"};function qt({onChangeWalletClick:e}){const{t:t}=i(),{bridgeState:{from:s}}=o.useContext(At),{track:a}=S(),n=s?.walletAddress||"",r=St(N(s?.web3Provider));return l.jsxs(w,{sx:Zt,children:[l.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:"base.spacing.x1"},children:[l.jsx(L,{logo:r,sx:{width:"base.icon.size.400",pr:"base.spacing.x1"}}),l.jsx(v,{leftSideLength:6,rightSideLength:4,text:n})]}),l.jsx(T,{size:"small",variant:"tertiary",onClick:()=>{a({userJourney:k.BRIDGE,screen:Ge.TRANSACTIONS,controlType:"Button",control:"Pressed"}),e()},children:t("views.TRANSACTIONS.changeWallet.buttonText")})]})}function Qt({checkout:e,transactions:t,knownTokenMap:s,isPassport:a,defaultTokenImage:r,changeWallet:c}){const{cryptoFiatState:d}=o.useContext(Fe),{t:u}=i(),[x,p]=o.useState("");o.useEffect((()=>{e&&p(D[e.config.environment])}),[e]);const g=o.useCallback(((e,t)=>e.details.current_status.status===Tt.WITHDRAWAL_PENDING&&t.details.current_status.status!==Tt.WITHDRAWAL_PENDING?-1:e.details.current_status.status===t.details.current_status.status?0:1),[]),h=o.useCallback((t=>W(t.details.from_token_address)?B(e.config.environment,function(e){switch(e){case n.ETHEREUM:case n.SEPOLIA:return"ETH";case n.IMTBL_ZKEVM_TESTNET:case n.IMTBL_ZKEVM_MAINNET:case n.IMTBL_ZKEVM_DEVNET:return"IMX";default:return""}}(t.details.from_chain)):B(e.config.environment,t.details.from_token_address)),[e]);return l.jsxs(w,{sx:$t(a),children:[l.jsx(qt,{onChangeWalletClick:c}),l.jsx(w,{testId:"move-transaction-list",sx:Ht,children:t.sort(g).map((e=>{const t=e.blockchain_metadata.transaction_hash,a=s[e.details.from_chain][e.details.from_token_address.toLowerCase()],n=M.formatUnits(e.details.amount,a.decimals),o=P(n,a.symbol,d.conversions);return e.details.current_status.status===Tt.WITHDRAWAL_PENDING?l.jsx(Jt,{label:a.name,transaction:e,fiatAmount:`${u("views.TRANSACTIONS.fiatPricePrefix")}${o}`,amount:n,icon:h(e),defaultTokenImage:r},t):l.jsx(zt,{label:a.name,details:{text:u("views.TRANSACTIONS.status.inProgress.stepInfo"),link:x,hash:t},transaction:e,fiatAmount:`${u("views.TRANSACTIONS.fiatPricePrefix")}${o}`,amount:n,icon:h(e),defaultTokenImage:r},t)}))})]})}const Yt={backgroundColor:"base.color.neutral.800",px:"base.spacing.x4",pt:"base.spacing.x5",pb:"base.spacing.x4",borderRadius:"base.borderRadius.x6",h:"100%",w:"100%",display:"flex",flexDirection:"column"},Xt={display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",padding:"base.spacing.x5",flex:1},es={mb:"base.spacing.x8",color:"base.color.text.body.secondary"},ts={color:"base.color.text.body.secondary"};function ss({checkout:e,isPassport:t,changeWallet:s}){const{page:a}=S(),{t:n}=i(),[r,c]=o.useState("");return o.useEffect((()=>{e&&c(b[e.config.environment])}),[e]),o.useEffect((()=>{a({userJourney:k.BRIDGE,screen:"NoTransactions"})}),[]),l.jsxs(w,{sx:Yt,children:[l.jsx(qt,{onChangeWalletClick:s}),l.jsxs(w,{sx:Xt,children:[l.jsx(E,{size:"small",sx:es,children:n("views.TRANSACTIONS.status.noTransactions.body")}),t&&l.jsxs(E,{size:"small",sx:ts,children:[n("views.TRANSACTIONS.status.noTransactions.passport.body")," ",l.jsx(m,{size:"small",rc:l.jsx("a",{target:"_blank",href:r,rel:"noreferrer"}),children:n("views.TRANSACTIONS.status.noTransactions.passport.link")})]})]})]})}function as({defaultTokenImage:e,onBackButtonClick:t}){const{eventTargetState:{eventTarget:s}}=o.useContext(O),{cryptoFiatDispatch:a}=o.useContext(Fe),{bridgeDispatch:n,bridgeState:{checkout:c,from:d}}=o.useContext(At),{page:u}=S(),{t:x}=i(),{track:p}=S(),[g,h]=o.useState(!0),[E,T]=o.useState(void 0),[b,m]=o.useState([]),[f,I]=o.useState(!1),y=G(d?.web3Provider),{isWalletConnectEnabled:A,openWalletConnectModal:v}=F({checkout:c}),_=o.useCallback((async()=>{if(!c)return{};const e=V(c.config);try{return((await c.getTokenAllowList({type:U.BRIDGE,chainId:e})).tokens??[]).reduce(((e,t)=>(e[t.address.toLowerCase()]=t,e)),{})}catch(e){return console.error(e),[]}}),[c]),C=o.useCallback((async()=>{if(!d?.web3Provider)return{};if(!d?.walletAddress)return{};const e=K(c.config);try{return(await c.getAllBalances({provider:d?.web3Provider,walletAddress:d?.walletAddress,chainId:e})).balances.reduce(((e,t)=>(e[t.token.address.toLowerCase()]=t.token,e)),{})}catch(e){return console.error(e),[]}}),[c,d]),R=e=>{e.getNetwork().then((t=>{e?.getSigner().getAddress().then((s=>{m([]),n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:{web3Provider:e,walletAddress:s.toLowerCase(),network:t.chainId},to:null}})}))}))},j=o.useCallback((async e=>{p({userJourney:k.BRIDGE,screen:"EmptyStateNotConnected",control:"WalletProvider",controlType:"Select",extras:{walletProviderName:e}});try{let t;"walletconnect"===e?await v({connectCallback:e=>{R(new z(e))},restoreSession:!0}):(t=await $(c,e,!0),R(t))}catch(e){console.error(e)}finally{I(!1)}}),[c,d,v]),N=async e=>{const t=mt(V(c.config)),s=mt(K(c.config)),[n,o]=await Promise.all([_(),C()]),r={};Object.entries(e).forEach((([a,i])=>{(e[a]===t&&!n[a]||e[a]===s&&!o[a])&&(r[a]=i)}));const i=new q(c.config.networkMap.get(V(c.config))?.rpcUrls[0]),l=new q(c.config.networkMap.get(K(c.config))?.rpcUrls[0]),d=[],u=[];Object.entries(r).forEach((([e,s])=>{s===t?d.push(c.getTokenInfo({provider:i,tokenAddress:e})):u.push(c.getTokenInfo({provider:l,tokenAddress:e}))}));const x=await Promise.allSettled(d),p=await Promise.allSettled(u);x.filter((e=>"fulfilled"===e.status)).forEach((e=>{const t=e;n[t.value.address.toLowerCase()]=t.value})),p.filter((e=>"fulfilled"===e.status)).forEach((e=>{const t=e;o[t.value.address.toLowerCase()]=t.value}));const g=[];return Object.values(n).forEach((e=>g.push(e.symbol.toLowerCase()))),Object.values(o).forEach((e=>g.push(e.symbol.toLowerCase()))),a({payload:{type:Ve.SET_TOKEN_SYMBOLS,tokenSymbols:g}}),{[t]:n,[s]:o}},L=o.useCallback((async(e,t)=>new wt({env:e}).getTransactions({txType:Et.BRIDGE,fromAddress:t})),[]),D=o.useCallback((async()=>{if(!d?.walletAddress)return;const e=await L(c.config.environment,d?.walletAddress),t={};return e.result.forEach((e=>{t[e.details.from_token_address]=e.details.from_chain})),{tokens:await N(t),transactions:e.result}}),[d,L]),W=o.useMemo((()=>{const e=[r.METAMASK];return c.passport&&e.push(r.PASSPORT),A&&e.push("walletconnect"),e}),[c,A]);return o.useEffect((()=>{(async()=>{h(!0);const e=await ze(D,Q);if(!e)return void h(!1);const t=e.transactions.filter((t=>{const s=e.tokens[t.details.from_chain];if(!s)return!1;return!!s[t.details.from_token_address.toLowerCase()]}));T(e.tokens),m(t),h(!1)})()}),[d,c]),o.useEffect((()=>{u({userJourney:k.BRIDGE,screen:"Transactions"})}),[]),l.jsx(H,{testId:"bridge-view",header:l.jsx(J,{showBack:!0,onBackButtonClick:()=>{d&&(n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:{web3Provider:d?.web3Provider,walletAddress:d?.walletAddress,network:d?.network},to:null}}),n({payload:{type:yt.SET_TOKEN_AND_AMOUNT,token:null,amount:""}})),t()},title:x("views.TRANSACTIONS.layoutHeading"),onCloseButtonClick:()=>jt(s)}),footer:l.jsx(Z,{}),children:l.jsxs(w,{sx:Lt,children:[l.jsxs(w,{sx:Dt,children:[!d?.web3Provider&&l.jsx(Mt,{openWalletDrawer:()=>I(!0)}),d?.web3Provider&&g&&l.jsx(Nt,{}),d?.web3Provider&&!g&&b.length>0&&E&&l.jsx(Qt,{checkout:c,transactions:b,knownTokenMap:E,isPassport:y,defaultTokenImage:e,changeWallet:()=>I(!0)}),d?.web3Provider&&!g&&0===b.length&&l.jsx(ss,{checkout:c,isPassport:y,changeWallet:()=>I(!0)})]}),d?.web3Provider&&b.length>0&&l.jsx(w,{sx:Wt,children:l.jsx(Gt,{checkout:c,isPassport:y})}),l.jsx(Ct,{testId:"select-wallet-drawer",drawerText:{heading:x("views.TRANSACTIONS.walletSelection.heading")},showWalletSelectorTarget:!1,walletOptions:W,showDrawer:f,setShowDrawer:e=>{I(e)},onWalletItemClick:j})]})})}function ns({transactionResponse:e}){const{t:t}=i(),{viewDispatch:s}=o.useContext(R),{page:a}=S();return o.useEffect((()=>{a({userJourney:k.BRIDGE,screen:"ClaimWithdrawalInProgress"})}),[]),o.useEffect((()=>{e&&(async()=>{try{const t=await e.wait();if(1===t.status)return void s({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_SUCCESS,transactionHash:t.transactionHash}}});s({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_FAILURE,transactionHash:t.transactionHash,reason:"Transaction failed"}}})}catch(e){console.error(e),s({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_FAILURE,transactionHash:"",reason:"Transaction failed"}}})}})()}),[e]),l.jsx(Y,{loadingText:t("views.CLAIM_WITHDRAWAL.IN_PROGRESS.loading.text"),showFooterLogo:!0})}function os(e){return e?e.substring(0,6).concat("...").concat(e.substring(e.length-4)):""}const rs={height:"100%",display:"flex",flexDirection:"column",paddingX:"base.spacing.x4"},is={paddingTop:"base.spacing.x10",paddingBottom:"base.spacing.x4"},ls={display:"flex",flexDirection:"column",paddingY:"base.spacing.x6"},cs={[s.IMTBL_ZKEVM_DEVNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_TESTNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_MAINNET]:"base.color.text.link.primary",[s.ETHEREUM]:"base.color.accent.5",[s.SEPOLIA]:"base.color.accent.5"},ds=e=>({backgroundColor:cs[e],"& svg":{fill:"base.color.brand.2"}});function us({testId:e,chainId:t,chainName:s,onNetworkClick:a}){return l.jsxs(c,{testId:`${e}-network-list-${t}`,size:"medium",emphasized:!0,onClick:async()=>{await a(t)},sx:{marginBottom:"base.spacing.x1"},children:[l.jsx(c.FramedIcon,{icon:I[t],circularFrame:!0,sx:ds(t)}),l.jsx(c.Label,{size:"medium",children:s})]})}const xs={[s.IMTBL_ZKEVM_DEVNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_TESTNET]:"base.color.text.link.primary",[s.IMTBL_ZKEVM_MAINNET]:"base.color.text.link.primary",[s.ETHEREUM]:"base.color.accent.5",[s.SEPOLIA]:"base.color.accent.5"},ps={width:"100%",backgroundColor:"base.color.translucent.emphasis.100",borderRadius:"base.borderRadius.x4",paddingX:"base.spacing.x3",paddingY:"base.spacing.x5",display:"flex",flexDirection:"row",gap:"base.spacing.x4",alignItems:"center","&:hover":{cursor:"pointer",backgroundColor:"base.color.translucent.emphasis.200"}},gs=e=>({width:"base.icon.size.500",padding:e===r.PASSPORT?"base.spacing.x1":"",backgroundColor:"base.color.translucent.standard.200",borderRadius:"base.borderRadius.x2"}),hs={color:"base.color.text.body.secondary"},ws={paddingY:"base.spacing.x6",borderRadius:"base.borderRadius.x18"},Es=e=>({fill:"base.color.brand.2",width:"base.icon.size.300",backgroundColor:xs[e],borderRadius:"100%",padding:"base.spacing.x1"});function Ts({testId:e,walletName:t,walletAddress:s,chainId:a,disableNetworkButton:n=!1,onWalletClick:o,onNetworkClick:i}){const c=bt(a),d=function(e){switch(e){case r.METAMASK:return"MetaMask";case r.PASSPORT:return"Passport";case"WalletConnect":return"WalletConnect";default:return"Other"}}(t),u=St(t);return l.jsxs(w,{testId:`${e}-${t}-${a}-button-wrapper`,sx:ps,onClick:o,children:[l.jsx(L,{logo:u,sx:gs(t)}),l.jsxs(w,{sx:{display:"flex",flexDirection:"column",flex:1},children:[l.jsx(X,{size:"xSmall",children:d}),l.jsx(E,{size:"xSmall",sx:hs,children:s})]}),l.jsxs(T,{testId:`${e}-network-${a}-button`,size:"small",disabled:n,onClick:e=>{e.stopPropagation(),i(e)},variant:"tertiary",sx:ws,children:[l.jsx(T.Icon,{icon:I[a],sx:Es(a)}),c]})]})}const bs="wallet-network-selector";function ms(){const{t:e}=i(),{bridgeState:{checkout:t,from:s,to:a},bridgeDispatch:n}=o.useContext(At),{viewDispatch:c}=o.useContext(R),{track:u}=S(),x=V(t.config),p=bt(x),g=K(t.config),h=bt(g),E=o.useRef(),{isWalletConnectEnabled:b,openWalletConnectModal:m}=F({checkout:t}),[f,I]=o.useState(!1),[y,A]=o.useState(!1),[v,_]=o.useState(),[C,L]=o.useState(),[D,W]=o.useState(""),[B,M]=o.useState(!1),[P,O]=o.useState(),[U,H]=o.useState(),[J,Z]=o.useState(""),q=v&&C,Q=P&&U,Y=o.useMemo((()=>v?N(v):null),[v]),te=o.useMemo((()=>P?N(P):null),[P]),se=o.useMemo((()=>{const e=[r.METAMASK.toString()];return t.passport&&e.push(r.PASSPORT.toString()),b&&e.push("walletconnect"),e}),[t,b]),ae=o.useMemo((()=>{const e=[r.METAMASK.toString()];return t.passport&&C===x&&e.push(r.PASSPORT.toString()),b&&e.push("walletconnect"),e}),[t,C,Y,b]);o.useEffect((()=>{s&&a&&(D!==s?.walletAddress&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"FromWallet",controlType:"Select",extras:{walletAddress:s?.walletAddress}}),C!==s?.network&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"FromNetwork",controlType:"Select",extras:{chainId:s?.network}}),J!==a?.walletAddress&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"ToWallet",controlType:"Select",extras:{walletAddress:a?.walletAddress}}),U!==a?.network&&u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"ToNetwork",controlType:"Select",extras:{chainId:a?.network}}),_(s.web3Provider),W(s.walletAddress.toLowerCase()),L(s.network),O(a.web3Provider),Z(a.walletAddress.toLowerCase()),H(a.network),n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:null,to:null}}))}),[s,a]);const ne=o.useCallback((async e=>{let s;try{return s=await $(t,e),e===r.PASSPORT.toString()&&(E.current=s),s}catch(e){throw console.error(e),e}}),[t]);function oe(){O(null),H(null)}const re=async e=>{_(e);const t=await e.getSigner().getAddress();if(W(t.toLowerCase()),G(e))return L(g),void I(!1);L(null),I(!1),setTimeout((()=>A(!0)),500)},ie=o.useCallback((async e=>{let t;if(oe(),e===r.PASSPORT.toString()&&E.current)return t=E.current,void await re(t);if(!t)try{"walletconnect"===e?await m({connectCallback:e=>{re(new z(e))},restoreSession:!0}):(t=await ne(e),await re(t))}catch(e){console.error(e)}}),[Y,E.current,m]),le=o.useCallback((async e=>{if(!v)return;if(oe(),G(v))return A(!1),void L(e);const s=await(v?.getNetwork());if(s?.chainId===e)return A(!1),void L(e);let a;try{a=await t.switchNetwork({provider:v,chainId:e}),_(a.provider),A(!1),L(a.network.chainId)}catch(e){console.error(e)}}),[t,v,Y,C]),ce=o.useCallback((()=>{H(C===x?g:x),M(!1)}),[C]),de=o.useCallback((e=>{O(e),e.getSigner().getAddress().then((e=>{Z(e.toLowerCase()),ce()}))}),[ce]),ue=o.useCallback((async e=>{if(Y===e){O(v);const e=await v.getSigner().getAddress();return Z(e.toLowerCase()),void ce()}let t;try{if("walletconnect"===e)await m({connectCallback:e=>{const t=new z(e);de(t),ce()}});else{t=e===r.PASSPORT.toString()&&E.current?E.current:await ne(e),O(t);const s=await t.getSigner().getAddress();Z(s.toLowerCase()),ce()}}catch(e){console.error(e)}}),[Y,v,E.current,ce,de]),xe=o.useCallback((()=>{v&&C&&P&&U&&(n({payload:{type:yt.SET_TOKEN_BALANCES,tokenBalances:[]}}),n({payload:{type:yt.SET_ALLOWED_TOKENS,allowedTokens:[]}}),n({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:{web3Provider:v,walletAddress:D.toLowerCase(),network:C},to:{web3Provider:P,walletAddress:J.toLowerCase(),network:U}}}),u({userJourney:k.BRIDGE,screen:"WalletAndNetwork",control:"Next",controlType:"Button",extras:{fromWalletAddress:D,fromNetwork:C,fromWallet:{address:D,isPassportWallet:G(v),isMetaMask:ee(v)},toWalletAddress:J,toNetwork:U,toWallet:{address:J,isPassportWallet:G(P),isMetaMask:ee(P)}}}),c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FORM}}}))}),[v,C,D,P,U,J]);return l.jsxs(w,{testId:bs,sx:rs,children:[l.jsx(X,{testId:`${bs}-heading`,size:"small",weight:"regular",sx:is,children:e("views.WALLET_NETWORK_SELECTION.heading")}),l.jsx(X,{size:"xSmall",sx:{paddingBottom:"base.spacing.x2"},children:e("views.WALLET_NETWORK_SELECTION.fromFormInput.heading")}),l.jsx(Ct,{testId:`${bs}-from`,drawerText:{heading:e("views.WALLET_NETWORK_SELECTION.fromFormInput.walletSelectorHeading"),defaultText:e("views.WALLET_NETWORK_SELECTION.fromFormInput.selectDefaultText")},showWalletSelectorTarget:!q,walletOptions:se,showDrawer:f,setShowDrawer:I,onWalletItemClick:ie}),q&&Y&&l.jsxs(w,{sx:{display:"flex",flexDirection:"column",gap:"base.spacing.x10"},children:[l.jsx(Ts,{testId:bs,walletName:Y,walletAddress:os(D),chainId:C,onWalletClick:()=>{I(!0)},onNetworkClick:()=>A(!0)}),l.jsxs(w,{children:[l.jsx(X,{size:"xSmall",sx:{paddingBottom:"base.spacing.x2"},children:e("views.WALLET_NETWORK_SELECTION.toFormInput.heading")}),l.jsx(Ct,{testId:`${bs}-to`,drawerText:{heading:e("views.WALLET_NETWORK_SELECTION.toFormInput.walletSelectorHeading"),defaultText:e("views.WALLET_NETWORK_SELECTION.toFormInput.selectDefaultText")},showWalletSelectorTarget:!Q,walletOptions:ae,showDrawer:B,setShowDrawer:M,onWalletItemClick:ue})]})]}),l.jsx(d,{headerBarTitle:e("views.WALLET_NETWORK_SELECTION.fromFormInput.networkSelectorHeading"),size:"full",onCloseDrawer:()=>{A(!1)},visible:y,children:l.jsxs(d.Content,{sx:{paddingX:"base.spacing.x4"},children:[l.jsx(us,{testId:bs,chainName:h,onNetworkClick:le,chainId:g},h),(Y===r.METAMASK.toString()||"walletconnect"===Y)&&l.jsx(us,{testId:bs,chainName:p,onNetworkClick:le,chainId:x},p)]})}),Q&&te&&l.jsxs(w,{sx:{flex:1,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[l.jsx(Ts,{testId:bs,walletName:te,walletAddress:os(J),chainId:U,disableNetworkButton:!0,onWalletClick:()=>{M(!0)},onNetworkClick:()=>{}}),l.jsx(w,{sx:ls,children:l.jsx(T,{testId:`${bs}-submit-button`,size:"large",onClick:xe,children:e("views.WALLET_NETWORK_SELECTION.submitButton.text")})})]})]})}function fs(){const{t:e}=i(),{viewDispatch:t}=o.useContext(R),{eventTargetState:{eventTarget:s}}=o.useContext(O),{page:a}=S();return o.useEffect((()=>{a({userJourney:k.BRIDGE,screen:"WalletNetworkSelection"})}),[]),l.jsx(H,{testId:"bridge-view",header:l.jsx(J,{title:e("views.WALLET_NETWORK_SELECTION.layoutHeading"),onCloseButtonClick:()=>jt(s),rightActions:l.jsx(te,{icon:"Minting",sx:se(),onClick:()=>{t({payload:{type:j.UPDATE_VIEW,view:{type:Ge.TRANSACTIONS}}})},testId:"move-transactions-button"})}),footer:l.jsx(Z,{}),children:l.jsx(ms,{})})}function Is(e,t){return e&&0!==parseFloat(e)?t&&Number(e)>Number(t)?"views.BRIDGE_FORM.validation.insufficientBalance":"":"views.BRIDGE_FORM.validation.noAmountInputted"}const ys={height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between",paddingTop:"base.spacing.x10"},As={paddingTop:"base.spacing.x4",display:"flex",gap:"base.spacing.x1"},vs={display:"flex",flexDirection:"column",paddingY:"base.spacing.x6",paddingX:"base.spacing.x4"},Ss={display:"flex",flexDirection:"column",alignItems:"center",paddingTop:"base.spacing.x6",paddingBottom:"base.spacing.x1",height:"100%"},_s={color:"base.color.text.body.secondary",fontFamily:"base.font.family.heading.secondary",textAlign:"center",marginTop:"15px"},ks={display:"flex",flexDirection:"column",justifyContent:"center",gap:"base.spacing.x2",height:"100%",width:"100%"},Cs={width:"100%",height:"base.spacing.x16"},Rs={display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",paddingTop:"base.spacing.x6"};function js({environment:e,onCloseDrawer:t,visible:s,showHeaderBar:a,walletAddress:n,showAdjustAmount:r,tokenSymbol:c,onAddCoinsClick:u}){const{t:x}=i(),[p,g]=o.useState(!1),h=ae(e),b=ne(e),m=c===oe?`${x("drawers.notEnoughGas.content.eth.heading")}`:`${x("drawers.notEnoughGas.content.imx.heading")}`,f=c===oe?`${x("drawers.notEnoughGas.content.eth.body")}`:`${x("drawers.notEnoughGas.content.imx.body")}`,I=o.useCallback((()=>{n&&""!==n&&navigator.clipboard.writeText(n),g(!0),setTimeout((()=>{g(!1)}),3e3)}),[n]);return l.jsx(d,{headerBarTitle:void 0,size:"full",onCloseDrawer:t,visible:s,showHeaderBar:a,children:l.jsx(d.Content,{children:l.jsxs(w,{testId:"not-enough-gas-bottom-sheet",sx:Ss,children:[l.jsx(re,{imageUrl:c===oe?h:b,sx:{w:"base.icon.size.600",h:"base.icon.size.600"}}),l.jsx(X,{size:"small",sx:_s,testId:"not-enough-gas-heading",children:m}),l.jsx(E,{sx:_s,children:f}),l.jsxs(w,{sx:ks,children:[r&&l.jsx(T,{testId:"not-enough-gas-adjust-amount-button",sx:Cs,variant:"tertiary",onClick:t,children:x("drawers.notEnoughGas.buttons.adjustAmount")}),c===oe?l.jsxs(T,{testId:"not-enough-gas-copy-address-button",sx:Cs,variant:"tertiary",onClick:I,children:[x("drawers.notEnoughGas.buttons.copyAddress"),l.jsx(T.Icon,{icon:p?"Tick":"CopyText"})]}):l.jsx(T,{testId:"not-enough-gas-add-imx-button",sx:Cs,variant:"tertiary",onClick:u,children:x("drawers.notEnoughGas.buttons.addMoreImx")}),l.jsx(T,{sx:Cs,variant:"tertiary",onClick:t,testId:"not-enough-gas-cancel-button",children:x("drawers.notEnoughGas.buttons.cancel")})]}),l.jsx(w,{sx:Rs,children:l.jsx(L,{testId:"footer-logo-image",logo:"ImmutableHorizontalLockup",sx:{width:"base.spacing.x25"}})})]})})})}function Ns({sx:e}){return l.jsxs(w,{sx:{...e,paddingTop:"0",marginTop:"base.spacing.x4"},rc:l.jsx("div",{}),children:[l.jsx(w,{sx:{display:"flex",backgroundColor:"#F3F3F30A",borderRadius:"8px"},children:l.jsx(w,{sx:{minw:"170px",height:"64px",WebkitMaskPosition:"left center",WebkitMaskRepeat:"no-repeat",WebkitMaskSize:"contain",WebkitMaskImage:'url(\'data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none"><path d="M154.75 39q1.65 0 2.85-1.15 1.15-1.15 1.15-2.85v-4q0-1.65-1.15-2.8-1.2-1.2-2.85-1.2h-93.6q-2.3 0-3.85 1.2-1.55 1.15-1.55 2.8v4q0 1.7 1.55 2.85Q58.85 39 61.15 39h93.6m-111.7-3.35q.2-1.3.2-2.65 0-1.35-.2-2.65-.75-4.9-4.5-8.65-4.7-4.7-11.3-4.7-6.65 0-11.3 4.7-4.7 4.7-4.7 11.3 0 6.65 4.7 11.3Q20.6 49 27.25 49q6.6 0 11.3-4.7 3.75-3.7 4.5-8.65Z" id="a"/></svg>\')'},rc:l.jsx("span",{}),children:l.jsx(h,{rc:l.jsx("span",{})})})}),l.jsx(w,{sx:{display:"flex",width:"100%",backgroundColor:"#F3F3F30A",borderRadius:"8px"},children:l.jsx(w,{sx:{width:"100%",height:"64px",WebkitMaskPosition:"right center",WebkitMaskRepeat:"no-repeat",WebkitMaskSize:"contain",WebkitMaskImage:'url(\'data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" width="196" height="96"><path d="M182.85 55.2Q181.65 54 180 54h-56q-1.7 0-2.85 1.2Q120 56.35 120 58v4q0 1.7 1.15 2.85Q122.3 66 124 66h56q1.65 0 2.85-1.15Q184 63.7 184 62v-4q0-1.65-1.15-2.8m0-22Q181.65 32 180 32H68q-1.7 0-2.85 1.2Q64 34.35 64 36v8q0 1.7 1.15 2.85Q66.3 48 68 48h112q1.65 0 2.85-1.15Q184 45.7 184 44v-8q0-1.65-1.15-2.8Z" id="a"/></svg>\')'},rc:l.jsx("span",{}),children:l.jsx(h,{rc:l.jsx("span",{})})})})]})}function Ls(e){const{t:t}=i(),{bridgeDispatch:s,bridgeState:{tokenBalances:a,allowedTokens:n,checkout:r,from:c,to:d,amount:u,token:x}}=o.useContext(At),{cryptoFiatState:p,cryptoFiatDispatch:g}=o.useContext(Fe),{viewDispatch:h}=o.useContext(R),{testId:E,defaultAmount:b,defaultTokenAddress:m,isTokenBalancesLoading:f,defaultTokenImage:I}=e,{track:y}=S(),[A,v]=o.useState(b||""),[_,C]=o.useState(""),[N,L]=o.useState(),[D,B]=o.useState(""),[M,O]=o.useState(""),[G,F]=o.useState(!1),U=o.useRef(!1),K=N?`${t("views.BRIDGE_FORM.content.availableBalancePrefix")} ${ie(N?.formattedBalance)}`:"",[z,$]=o.useState([]),[H,J]=o.useState(!1),[Z,q]=o.useState(""),[Q,Y]=o.useState(!1),ee=o.useCallback(((e,t)=>t?`${e.toLowerCase()}-${t.toLowerCase()}`:e.toLowerCase()),[]);o.useEffect((()=>{if(0===a.length)return;const e=a.filter((e=>e.balance.gt(0))).map((e=>({id:ee(e.token.symbol,e.token.address),name:e.token.name,symbol:e.token.symbol,icon:e.token.icon,balance:{formattedFiatAmount:0===p.conversions.size?le(""):P(e.formattedBalance,e.token.symbol,p.conversions),formattedAmount:ie(e.formattedBalance)}})));$(e),U.current||(U.current=!0,m&&L(a.find((e=>W(e.token.address)&&m?.toLocaleUpperCase()===ce||e.token.address?.toLowerCase()===m?.toLowerCase()))))}),[a,p.conversions,m,U.current,ee,le]),o.useEffect((()=>{if(u&&x){v(u);for(let e=0;e<a.length;e++){const t=a[e];if(t.token.address===x.address){L(t);break}}s({payload:{type:yt.SET_TOKEN_AND_AMOUNT,token:null,amount:""}})}}),[u,x,a]);const te=o.useMemo((()=>N&&N.token?ee(N.token.symbol,N.token.address):void 0),[N,a,p.conversions,ee]),se=o.useMemo((()=>!a.find((e=>W(e.token.address)))),[a,N,A]),ae=e=>{let t=e;if("."===t&&(t="0."),v(t),_){const e=Is(t,N?.formattedBalance);C(e)}var s;N&&(O(P(t,N.token.symbol,p.conversions)),s=!0,Number.isNaN(parseFloat(A))||parseFloat(A)<=0||!N||!c||!c.walletAddress||!d||!d.walletAddress||s&&G||!r||F(!0))};o.useEffect((()=>{g({payload:{type:Ve.SET_TOKEN_SYMBOLS,tokenSymbols:n.map((e=>e.symbol))}})}),[g,n]),o.useEffect((()=>{A&&N&&O(P(A,N.token.symbol,p.conversions))}),[A,N]),o.useEffect((()=>{(async()=>{if(!c?.web3Provider)return;const e=await c.web3Provider.getSigner().getAddress();q((t=>(""!==t&&t!==e&&L(void 0),e)))})()}),[c?.web3Provider,a]);const ne=o.useCallback((()=>{const e=N?"":"views.BRIDGE_FORM.validation.noTokenSelected";const t=Is(A,N?.formattedBalance);return e&&B(e),t&&C(t),!e&&!t}),[N,A,B,C]),re=o.useCallback((async()=>{ne()&&r&&c?.web3Provider&&N&&(se?J(!0):(y({userJourney:k.BRIDGE,screen:"TokenAmount",control:"Review",controlType:"Button",extras:{tokenAddress:N.token.address,amount:A}}),s({payload:{type:yt.SET_TOKEN_AND_AMOUNT,token:N.token,amount:A}}),h({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_REVIEW}}})))}),[r,c?.web3Provider,ne,se,N]);return l.jsxs(w,{testId:E,sx:ys,children:[l.jsxs(w,{sx:{paddingX:"base.spacing.x4"},children:[l.jsx(X,{testId:`${E}-content-heading`,size:"small",weight:"regular",sx:{paddingBottom:"base.spacing.x4"},children:t("views.BRIDGE_FORM.content.title")}),(!m||!f)&&l.jsxs(w,{sx:As,children:[l.jsx(Je,{testId:"bridge-token",options:z,optionsLoading:f,coinSelectorHeading:t("views.BRIDGE_FORM.bridgeForm.from.selectorTitle"),selectedOption:te,subtext:K,textAlign:"left",errorMessage:t(D),onSelectChange:e=>(e=>{const t=a.find((t=>e===ee(t.token.symbol,t.token.address)));t&&(L(t),B(""))})(e),defaultTokenImage:I}),l.jsx(Ze,{testId:"bridge-amount",type:"number",value:A,placeholder:t("views.BRIDGE_FORM.bridgeForm.from.inputPlaceholder"),subtext:`${t("views.BRIDGE_FORM.content.fiatPricePrefix")} $${le(M,!0)}`,validator:de,onTextInputChange:e=>ae(e),onTextInputEnter:re,textAlign:"right",errorMessage:t(_)})]}),m&&f&&l.jsx(Ns,{sx:As})]}),l.jsxs(w,{sx:vs,children:[l.jsx(T,{testId:`${E}-button`,variant:"primary",onClick:re,size:"large",children:t("views.BRIDGE_FORM.bridgeForm.buttonText")}),l.jsx(qe,{visible:Q,showHeaderBar:!1,onCloseDrawer:()=>Y(!1),onRetry:async()=>{Y(!1),await re()}}),l.jsx(js,{environment:r.config.environment,visible:H,showHeaderBar:!1,onCloseDrawer:()=>J(!1),walletAddress:Z,showAdjustAmount:W(N?.token.address),tokenSymbol:c?.network===V(r?.config)?oe:ue,onAddCoinsClick:()=>{h({payload:{type:j.UPDATE_VIEW,view:{type:xe.TOP_UP_VIEW}}})}})]})]})}const Ds=1e4;function Ws({amount:e,tokenAddress:t,defaultTokenImage:s}){const{t:a}=i(),{bridgeState:n,bridgeDispatch:r}=o.useContext(At),{checkout:c,from:d}=n,{eventTargetState:{eventTarget:u}}=o.useContext(O),[x,p]=o.useState(!1),{page:g}=S();o.useEffect((()=>{(e||t)&&g({userJourney:k.BRIDGE,screen:"TokenAmount",extras:{amount:e,tokenAddress:t}})}),[]);const h=o.useCallback((async()=>{if(c&&d?.web3Provider)try{const e=await Qe({checkout:c,provider:d.web3Provider,allowTokenListType:U.BRIDGE,retryPolicy:{retryIntervalMs:0,retries:0}});if(void 0===e)return;r({payload:{type:yt.SET_TOKEN_BALANCES,tokenBalances:e.allowedBalances}}),r({payload:{type:yt.SET_ALLOWED_TOKENS,allowedTokens:e.allowList.tokens}})}catch(e){console.debug(e)}}),[c,d?.web3Provider]);return $e(h,Ds),o.useEffect((()=>{c&&d?.web3Provider&&(p(!0),h().finally((()=>p(!1))))}),[c,d?.web3Provider]),l.jsx(H,{testId:"bridge-view",header:l.jsx(J,{showBack:!0,title:a("views.BRIDGE_FORM.header.title"),onCloseButtonClick:()=>jt(u)}),footer:l.jsx(Z,{}),children:l.jsx(Ls,{testId:"bridge-form",defaultAmount:e,defaultTokenAddress:t,isTokenBalancesLoading:x,defaultTokenImage:s})})}const Bs={borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",marginBottom:"2px"},Ms={borderTopLeftRadius:"0px",borderTopRightRadius:"0px",backgroundColor:"base.color.translucent.emphasis.100"},Ps={height:"100%",display:"flex",flexDirection:"column",paddingX:"base.spacing.x4"},Os={paddingTop:"base.spacing.x10",paddingBottom:"base.spacing.x4"},Gs={display:"flex",flexDirection:"column",alignItems:"center",paddingY:"base.spacing.x1"},Fs={width:"base.icon.size.300",transform:"rotate(270deg)"},Vs={width:"base.icon.size.400"},Us=(e,t,s)=>{const a=[];if(!e?.fees||!e.token)return a;let n=pe.from(0);if(e.fees.bridgeFee&&(n=n.add(e.fees.bridgeFee)),e.fees.imtblFee&&(n=n.add(e.fees.imtblFee)),n.gt(0)&&a.push({label:s("drawers.feesBreakdown.fees.serviceFee.label"),fiatAmount:`~ ${s("drawers.feesBreakdown.fees.fiatPricePrefix")}${P(ge(n,e.token.decimals),e.token.symbol,t.conversions)}`,amount:ie(ge(n,e.token.decimals))}),e.fees.sourceChainGas?.gt(0)){const n=ge(e.fees.sourceChainGas,e.token.decimals);a.push({label:s("drawers.feesBreakdown.fees.gasFeeMove.label"),fiatAmount:`~ ${s("drawers.feesBreakdown.fees.fiatPricePrefix")}${P(n,e.token.symbol,t.conversions)}`,amount:`${ie(n)}`,prefix:"~ "})}if(e.fees.approvalFee?.gt(0)){const n=ge(e.fees.approvalFee,e.token.decimals);a.push({label:s("drawers.feesBreakdown.fees.gasFeeApproval.label"),fiatAmount:`~ ${s("drawers.feesBreakdown.fees.fiatPricePrefix")}${P(n,e.token.symbol,t.conversions)}`,amount:`${ie(n)}`,prefix:"~ "})}return a},Ks="bridge-review-summary";function zs(){const{t:e}=i(),{viewDispatch:t}=o.useContext(R),{bridgeState:{checkout:s,tokenBridge:a,from:n,to:r,token:d,amount:u}}=o.useContext(At),{track:x}=S(),{cryptoFiatState:p}=o.useContext(Fe),[g,h]=o.useState(!1),[b,m]=o.useState(void 0),[y,A]=o.useState(""),[v,_]=o.useState(""),[C,L]=o.useState(void 0),[D,W]=o.useState(void 0),B=o.useMemo((()=>d?.symbol?`${d?.symbol} ${u}`:`${u}`),[d,u]),M=o.useMemo((()=>u&&d?P(u,d.symbol,p.conversions):""),[d,u]),O=o.useMemo((()=>n?n.walletAddress:"-"),[n]),F=o.useMemo((()=>N(n?.web3Provider)),[n]),V=o.useMemo((()=>n&&n.network),[n]),U=St(F),K=o.useMemo((()=>r?r.walletAddress:"-"),[r]),z=o.useMemo((()=>N(r?.web3Provider)),[r]),$=o.useMemo((()=>r?.network),[r]),H=St(z),J=o.useCallback((async()=>{if(!(a&&u&&n&&r&&d))return;const[e,t]=await Promise.all([a.getUnsignedApproveBridgeTx({senderAddress:O,token:d.address??ce.toUpperCase(),amount:he(u,d.decimals),sourceChainId:n?.network.toString(),destinationChainId:r?.network.toString()}),a.getUnsignedBridgeTx({senderAddress:O,recipientAddress:K,token:d.address??ce.toUpperCase(),amount:he(u,d.decimals),sourceChainId:n?.network.toString(),destinationChainId:r?.network.toString(),gasMultiplier:1.1})]);L(e),W(t);const o=t.feeData,{totalFees:i,approvalFee:l}=o;let c=i;e.unsignedTx||(c=i.sub(l),o.approvalFee=pe.from(0));const x={gasEstimateType:we.BRIDGE_TO_L2,fees:{...o,totalFees:c},token:s.config.networkMap.get(n.network)?.nativeCurrency};m(x);const g=ge(x?.fees.totalFees||0,Te);A(g),_(P(g,x?.token?.symbol||"",p.conversions))}),[s,a]);$e((()=>J()),Ee);const Z=o.useCallback((()=>Us(b,p,e)),[b]);o.useEffect((()=>{(async()=>{h(!0),await J(),h(!1)})()}),[]);const q=o.useCallback((async()=>{C&&D&&(x({userJourney:k.BRIDGE,screen:"Summary",control:"Submit",controlType:"Button",extras:{fromWalletAddress:O,fromNetwork:V,fromWallet:{address:O,isPassportWallet:G(n?.web3Provider),isMetaMask:ee(n?.web3Provider)},toWalletAddress:K,toNetwork:$,toWallet:{address:K,isPassportWallet:G(r?.web3Provider),isMetaMask:ee(r?.web3Provider)},amount:u,fiatAmount:M,tokenAddress:d?.address}}),t({payload:{type:j.UPDATE_VIEW,view:{type:Ge.APPROVE_TRANSACTION,approveTransaction:C,transaction:D}}}))}),[t,C,D]);return l.jsxs(w,{testId:Ks,sx:Ps,children:[l.jsx(X,{testId:`${Ks}-heading`,size:"small",weight:"regular",sx:Os,children:e("views.BRIDGE_REVIEW.heading")}),l.jsxs(c,{testId:`${Ks}-from-amount`,size:"small",emphasized:!0,sx:Bs,children:[l.jsx(c.Label,{size:"small",sx:{marginBottom:"base.spacing.x4",fontWeight:"bold"},children:e("views.BRIDGE_REVIEW.fromLabel.amountHeading")}),l.jsx(c.Caption,{}),l.jsx(c.PriceDisplay,{use:l.jsx(X,{size:"xSmall",weight:"light"}),price:B??"-",fiatAmount:`${e("views.BRIDGE_REVIEW.fiatPricePrefix")}${M}`})]}),l.jsxs(c,{testId:`${Ks}-from-address`,size:"xSmall",emphasized:!0,sx:Ms,children:[F&&l.jsx(c.FramedLogo,{logo:U,sx:{backgroundColor:"base.color.translucent.standard.200"}}),l.jsxs(c.Label,{children:[l.jsx("strong",{children:e("views.BRIDGE_REVIEW.fromLabel.heading")})," ",l.jsx(E,{size:"small",sx:{color:"base.color.text.body.secondary"},children:os(O??"")})]}),V&&l.jsx(c.IntentIcon,{icon:I[V],sx:Es(V)})]}),l.jsx(w,{sx:Gs,children:l.jsx(f,{icon:"ArrowBackward",sx:Fs})}),l.jsxs(c,{testId:`${Ks}-to-address`,size:"xSmall",emphasized:!0,sx:Bs,children:[z&&l.jsx(c.FramedLogo,{logo:H,sx:{backgroundColor:"base.color.translucent.standard.200"}}),l.jsxs(c.Label,{children:[l.jsx("strong",{children:e("views.BRIDGE_REVIEW.toLabel.heading")})," ",l.jsx(E,{size:"small",sx:{color:"base.color.text.body.secondary"},children:os(K??"")})]}),$&&l.jsx(c.IntentIcon,{icon:I[$],sx:Es($)})]}),l.jsx(Ye,{gasFeeValue:y,gasFeeFiatValue:v,gasFeeToken:b?.token,fees:Z(),onFeesClick:()=>{x({userJourney:k.BRIDGE,screen:"MoveCoins",control:"ViewFees",controlType:"Button"})},sx:{borderTopRightRadius:"0",borderTopLeftRadius:"0"},loading:g}),l.jsx(w,{sx:{flex:1,display:"flex",flexDirection:"column",justifyContent:"flex-end",paddingY:"base.spacing.x6",width:"100%"},children:l.jsx(T,{size:"large",sx:{width:"100%"},onClick:q,disabled:g,testId:`${Ks}__submit-button`,children:g?l.jsx(T.Icon,{icon:"Loading",sx:Vs}):e("views.BRIDGE_REVIEW.submitButton.buttonText")})})]})}function $s(){const{t:e}=i(),{eventTargetState:{eventTarget:t}}=o.useContext(O),{page:s}=S();return o.useEffect((()=>{s({userJourney:k.BRIDGE,screen:"Review"})}),[]),l.jsx(H,{testId:"bridge-review",header:l.jsx(J,{showBack:!0,title:e("views.BRIDGE_REVIEW.layoutHeading"),onCloseButtonClick:()=>jt(t)}),footer:l.jsx(Z,{}),children:l.jsx(zs,{})})}function Hs({environment:e}){const{RiveComponent:t}=be.useRive({src:`${me[e]}/v1/blob/img/rocket.riv`,autoplay:!0,layout:new be.Layout({fit:be.Fit.Cover}),stateMachines:"State Machine 1"});return l.jsx(w,{sx:{...fe,background:"base.color.translucent.emphasis.100"},children:l.jsx(w,{sx:Ie,rc:l.jsx(t,{})})})}function Js({transactionHash:e}){const{t:t}=i(),{eventTargetState:{eventTarget:s}}=o.useContext(O),{page:a}=S(),{cryptoFiatState:n}=o.useContext(Fe),{viewDispatch:r}=o.useContext(R),{bridgeState:{checkout:c,from:d,to:u,token:x,amount:p}}=o.useContext(At);return o.useEffect((()=>{Rt(s,e);const t=P(p,x?.symbol??"",n.conversions);a({userJourney:k.BRIDGE,screen:"InProgress",extras:{fromWalletAddress:d?.walletAddress,toWalletAddress:u?.walletAddress,amount:p,fiatAmount:t,tokenAddress:x?.address}})}),[]),l.jsx(H,{testId:"move-in-progress-view",header:l.jsx(J,{transparent:!0,onCloseButtonClick:()=>jt(s),rightActions:l.jsxs(l.Fragment,{children:[l.jsx(te,{icon:"Minting",sx:se(),onClick:()=>{r({payload:{type:j.UPDATE_VIEW,view:{type:Ge.TRANSACTIONS}}})},testId:"settings-button"}),l.jsx(ye,{isAnimated:!0,variant:"guidance",sx:{position:"absolute",right:"base.spacing.x14",top:"base.spacing.x1"}})]})}),footer:l.jsx(Z,{}),heroContent:l.jsx(Hs,{environment:c.config.environment}),floatHeader:!0,children:l.jsxs(Ae,{heading:t("views.IN_PROGRESS.heading"),children:[t("views.IN_PROGRESS.body1"),l.jsx("br",{}),l.jsx("br",{}),t("views.IN_PROGRESS.body2")]})})}function Zs({approveTransaction:e,transaction:t}){const{t:s}=i(),{bridgeState:a}=o.useContext(At),{checkout:n,from:r}=a,{viewDispatch:c}=o.useContext(R),{eventTargetState:{eventTarget:d}}=o.useContext(O),{page:u}=S();o.useEffect((()=>{u({userJourney:k.BRIDGE,screen:"ApproveTransaction"})}),[]);const[x,p]=o.useState(!1),[g,h]=o.useState(!1),[E,T]=o.useState(!1),[b,m]=o.useState(!1),f=o.useCallback((()=>{c({payload:{type:j.UPDATE_VIEW,view:{type:xe.ERROR_VIEW,error:new Error("No checkout object or no provider object found")}}})}),[c]),I=o.useCallback((()=>{c({payload:{type:j.GO_BACK}})}),[c]),y=e=>{if(e.type!==ve.UNPREDICTABLE_GAS_LIMIT){if(e.type===ve.TRANSACTION_FAILED||e.type===ve.INSUFFICIENT_FUNDS||e.receipt&&0===e.receipt.status){let t="Transaction failed";return e.type===ve.INSUFFICIENT_FUNDS&&(t="Insufficient funds"),e.receipt&&0===e.receipt.status&&(t="Transaction failed to settle on chain"),void c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:t}}})}c({payload:{type:j.UPDATE_VIEW,view:{type:xe.ERROR_VIEW,error:e}}})}else c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:"Unpredictable gas limit"}}})},A=o.useCallback((async()=>{let s=!1;if(n&&r?.web3Provider&&t){if(!x){if(p(!0),e.unsignedTx)try{h(!0);const t=await n.sendTransaction({provider:r.web3Provider,transaction:e.unsignedTx});if(1!==(await t.transactionResponse.wait()).status)return void c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:"Transaction failed to settle on chain"}}})}catch(e){h(!1),e.type===ve.USER_REJECTED_REQUEST_ERROR?(m(!0),s=!0):y(e)}finally{p(!1)}try{if(s)return;h(!0);const e=await n.sendTransaction({provider:r.web3Provider,transaction:t.unsignedTx});T(!0);const a=await e.transactionResponse.wait();if(0===a.status)return void c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.BRIDGE_FAILURE,reason:"Approval transaction failed to settle on chain"}}});c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.IN_PROGRESS,transactionHash:a.transactionHash}}})}catch(e){e.type===ve.USER_REJECTED_REQUEST_ERROR?m(!0):y(e)}finally{T(!1),h(!1),p(!1)}}}else f()}),[n,r,f,c,t,e,x]);return l.jsxs(l.Fragment,{children:[E&&l.jsx(Y,{loadingText:s("views.APPROVE_TRANSACTION.loadingView.text"),showFooterLogo:!0}),!E&&l.jsx(H,{header:l.jsx(J,{transparent:!0,showBack:!0,onCloseButtonClick:()=>jt(d),onBackButtonClick:I}),floatHeader:!0,heroContent:l.jsx(Xe,{}),footer:l.jsxs(w,{sx:{width:"100%",flexDirection:"column"},children:[l.jsx(Se,{loading:g,actionText:s("views.APPROVE_TRANSACTION."+(b?"footer.retryText":"footer.buttonText")),onActionClick:A}),l.jsx(Z,{})]}),children:l.jsx(Ae,{heading:s("views.APPROVE_TRANSACTION.content.heading"),children:l.jsx(w,{children:s("views.APPROVE_TRANSACTION.content.body")})})})]})}const qs={display:"flex",flexDirection:"column",alignItems:"center",paddingTop:"base.spacing.x6",paddingBottom:"base.spacing.x1",height:"100%"},Qs={color:"base.color.text.body.secondary",fontFamily:"base.font.family.heading.secondary",textAlign:"center",marginTop:"15px"},Ys={display:"flex",flexDirection:"column",justifyContent:"center",gap:"base.spacing.x2",height:"100%",width:"100%"},Xs={width:"100%",height:"base.spacing.x16"};function ea({visible:e,onClose:t,onChangeAccount:s}){const{t:a}=i(),{bridgeState:{checkout:n}}=o.useContext(At),r=ae(n.config.environment);return l.jsx(d,{headerBarTitle:void 0,size:"full",onCloseDrawer:t,visible:e,showHeaderBar:!1,children:l.jsx(d.Content,{children:l.jsxs(w,{testId:"not-enough-eth-drawer",sx:qs,children:[l.jsx(re,{imageUrl:r,sx:{w:"base.icon.size.600",h:"base.icon.size.600"}}),l.jsx(X,{size:"small",sx:Qs,testId:"not-enough-gas-heading",children:`${a("drawers.notEnoughEthWithdrawal.content.heading1")} ${oe} ${a("drawers.notEnoughEthWithdrawal.content.heading2")}`}),l.jsx(E,{sx:Qs,children:`${a("drawers.notEnoughEthWithdrawal.content.body1")} ${oe} ${a("drawers.notEnoughEthWithdrawal.content.body2")}`}),l.jsxs(w,{sx:Ys,children:[l.jsx(T,{testId:"not-enough-eth-drawer-retry-button",sx:Xs,variant:"tertiary",onClick:s,children:a("drawers.notEnoughEthWithdrawal.buttons.retry")}),l.jsx(T,{sx:Xs,variant:"tertiary",onClick:t,testId:"not-enough-eth-drawer-dismiss-button",children:a("drawers.notEnoughEthWithdrawal.buttons.dismiss")})]})]})})})}function ta({transaction:e}){const{t:t}=i(),{bridgeState:{checkout:s,tokenBridge:a,from:n}}=o.useContext(At),{viewDispatch:c}=o.useContext(R),{eventTargetState:{eventTarget:d}}=o.useContext(O),{page:u}=S();o.useEffect((()=>{u({userJourney:k.BRIDGE,screen:"ClaimWithdrawal"})}),[]);const[x,p]=o.useState(!1),[g,h]=o.useState(!1),[E,b]=o.useState(!1),[m,f]=o.useState(),[I,y]=o.useState(!1),A=o.useCallback((()=>{c({payload:{type:j.GO_BACK}})}),[c]);o.useEffect((()=>{(async()=>{if(a&&e&&void 0!==e.details.current_status?.index){h(!0);try{const t=await(a?.getFlowRateWithdrawTx({recipient:e.details.to_address,index:e.details.current_status.index}));f(t)}catch(e){console.log(e)}finally{h(!1)}}})()}),[a,e]);const _=o.useCallback((async({forceChangeAccount:e})=>{if(!(s&&a&&n?.web3Provider&&m))return;if(!m.pendingWithdrawal.canWithdraw||!m.unsignedTx)return void console.log(`Unable to process withdrawal transaction as it is not ready yet. Delay timeout at ${m.pendingWithdrawal.timeoutEnd} `);let t=n?.web3Provider;const o=V(s.config);if(p(!0),G(n?.web3Provider)||e)try{const e=await s.createProvider({walletProviderName:r.METAMASK});t=(await s.connect({provider:e.provider,requestWalletPermissions:!0})).provider,y(!1)}catch(e){return console.log(e),b(!0),void p(!1)}let i,l=null;try{try{i=await t.estimateGas(m.unsignedTx)}catch(e){i=pe.from(_e)}let e=null;try{e=await t.getFeeData()}catch(e){console.log(e)}let s=null;e&&e.lastBaseFeePerGas&&e.maxPriorityFeePerGas?s=e.lastBaseFeePerGas.add(e.maxPriorityFeePerGas):e&&e.gasPrice&&(s=e.gasPrice),s&&(l=i.mul(s))}catch(e){console.log(e)}try{const e=(await s.getAllBalances({provider:t,chainId:o})).balances.find((e=>W(e.token.address)));if(!e||e.balance.lt(l))return y(!0),void p(!1)}catch(e){console.log(e)}if((await t.getNetwork()).chainId!==o)try{t=(await s.switchNetwork({provider:t,chainId:o})).provider}catch(e){return b(!0),h(!1),void console.log(e)}try{const e=await s.sendTransaction({provider:t,transaction:m.unsignedTx});c({payload:{type:j.UPDATE_VIEW,view:{type:Ge.CLAIM_WITHDRAWAL_IN_PROGRESS,transactionResponse:e.transactionResponse}}})}catch(e){console.log(e),b(!0),p(!1)}finally{p(!1)}}),[a,n,m]);return l.jsxs(H,{testId:"claim-withdrawal",header:l.jsx(J,{transparent:!0,showBack:!0,onCloseButtonClick:()=>jt(d),onBackButtonClick:A}),floatHeader:!0,heroContent:l.jsx(Xe,{}),footer:l.jsxs(w,{sx:{width:"100%",display:"flex",flexDirection:"column"},children:[l.jsx(w,{sx:{pb:"base.spacing.x5",px:"base.spacing.x6",width:"100%",display:"flex",flexDirection:"column"},children:l.jsx(T,{testId:"claim-withdrawal-continue-button",size:"large",variant:"primary",disabled:g,onClick:()=>x||g?void 0:_({forceChangeAccount:!0}),children:g||x?l.jsx(T.Icon,{icon:"Loading",sx:{width:"base.icon.size.400"}}):t("views.CLAIM_WITHDRAWAL."+(E?"footer.retryText":"footer.buttonText"))})}),l.jsx(Z,{})]}),children:[l.jsxs(Ae,{heading:`${t("views.CLAIM_WITHDRAWAL.content.heading")} ${bt(V(s.config))}`,children:[l.jsx(w,{sx:{display:"flex",flexWrap:"wrap",pb:"base.spacing.x1"},children:t("views.CLAIM_WITHDRAWAL.content.body")}),l.jsxs(w,{children:[t("views.CLAIM_WITHDRAWAL.content.body2"),l.jsx(v,{text:e.details.to_address.toLowerCase()??""})]})]}),l.jsx(ea,{visible:I,onClose:()=>y(!1),onChangeAccount:()=>_({forceChangeAccount:!0})})]})}function sa({checkout:e,web3Provider:t,config:s,amount:a,tokenAddress:n}){const{t:r}=i(),{environment:c,isOnRampEnabled:d,isSwapEnabled:u,isBridgeEnabled:g,theme:h}=s,w=ke(e.config.environment,h),{eventTargetState:{eventTarget:E}}=o.useContext(O),{page:T}=S(),[b,m]=o.useReducer(Ce,{...Re,view:{type:Ge.WALLET_NETWORK_SELECTION},history:[{type:Ge.WALLET_NETWORK_SELECTION}]}),[f,I]=o.useReducer(vt,{...It,checkout:e,web3Provider:t??null,tokenBridge:(()=>{let t=Me;e.config.isDevelopment&&(t=Pe),e.config.isProduction&&(t=Oe);const s=new q(e.config.networkMap.get(V(e.config))?.rpcUrls[0]),a=new q(e.config.networkMap.get(K(e.config))?.rpcUrls[0]),n=new je({baseConfig:new Ne({environment:e.config.environment}),bridgeInstance:t,rootProvider:s,childProvider:a});return new Le(n)})()}),y=o.useMemo((()=>({viewState:b,viewDispatch:m})),[b,m]),A=o.useMemo((()=>({bridgeState:f,bridgeDispatch:I})),[f,I]),v=o.useCallback((()=>{I({payload:{type:yt.SET_WALLETS_AND_NETWORKS,from:null,to:null}}),I({payload:{type:yt.SET_TOKEN_AND_AMOUNT,amount:"",token:null}}),m({payload:{type:j.GO_BACK_TO,view:{type:Ge.WALLET_NETWORK_SELECTION}}})}),[m]),_=o.useCallback((()=>{m({payload:{type:j.GO_BACK_TO,view:{type:Ge.WALLET_NETWORK_SELECTION}}})}),[m]),C=o.useCallback((()=>{m({payload:{type:j.UPDATE_VIEW,view:{type:Ge.TRANSACTIONS}}})}),[m]),N=o.useCallback((()=>{m({payload:{type:j.GO_BACK_TO,view:{type:Ge.BRIDGE_REVIEW}}})}),[m]);return o.useEffect((()=>{(async()=>{I({payload:{type:yt.SET_PROVIDER,web3Provider:t??null}})})()}),[t]),l.jsx(R.Provider,{value:y,children:l.jsx(At.Provider,{value:A,children:l.jsxs(Ue,{environment:c,children:[b.view.type===Ge.WALLET_NETWORK_SELECTION&&l.jsx(fs,{}),b.view.type===Ge.BRIDGE_FORM&&l.jsx(Ws,{amount:a,tokenAddress:n,defaultTokenImage:w}),b.view.type===Ge.BRIDGE_REVIEW&&l.jsx($s,{}),b.view.type===Ge.IN_PROGRESS&&l.jsx(Js,{transactionHash:b.view.transactionHash}),b.view.type===Ge.BRIDGE_FAILURE&&l.jsx(De,{testId:"bridge-fail",statusText:r("views.BRIDGE_FAILURE.bridgeFailureText.statusText"),actionText:r("views.BRIDGE_FAILURE.bridgeFailureText.actionText"),onActionClick:N,statusType:We.FAILURE,onRenderEvent:()=>{let e="";b.view.type===Ge.BRIDGE_FAILURE&&(e=b.view.reason),T({userJourney:k.BRIDGE,screen:"Failed",extras:{reason:e}}),((e,t)=>{const s=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.FAILURE,data:{reason:t,timestamp:(new Date).getTime()}}});console.log("bridge failed ",e,s),void 0!==e&&e.dispatchEvent(s)})(E,e)}}),b.view.type===Ge.APPROVE_TRANSACTION&&l.jsx(Zs,{approveTransaction:b.view.approveTransaction,transaction:b.view.transaction}),b.view.type===Ge.TRANSACTIONS&&l.jsx(as,{onBackButtonClick:_,defaultTokenImage:w}),b.view.type===Ge.CLAIM_WITHDRAWAL&&l.jsx(ta,{transaction:b.view.transaction}),b.view.type===xe.ERROR_VIEW&&l.jsx(Be,{actionText:r("views.ERROR_VIEW.actionText"),onActionClick:v,onCloseClick:()=>jt(E),errorEventAction:()=>{T({userJourney:k.BRIDGE,screen:"Error"})}}),b.view.type===xe.TOP_UP_VIEW&&l.jsx(Ke,{analytics:{userJourney:k.BRIDGE},widgetEvent:x.IMTBL_BRIDGE_WIDGET_EVENT,checkout:e,provider:t,showOnrampOption:d,showSwapOption:u,showBridgeOption:g,onCloseButtonClick:()=>jt(E)}),b.view.type===Ge.CLAIM_WITHDRAWAL_IN_PROGRESS&&l.jsx(ns,{transactionResponse:b.view.transactionResponse}),b.view.type===Ge.CLAIM_WITHDRAWAL_SUCCESS&&l.jsx(De,{statusText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.success.text"),actionText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.success.actionText"),onRenderEvent:()=>{T({userJourney:k.BRIDGE,screen:"ClaimWithdrawalSuccess"}),((e,t)=>{const s=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.CLAIM_WITHDRAWAL_SUCCESS,data:{transactionHash:t}}});console.log("bridge claim withdrawal success event:",e,s),void 0!==e&&e.dispatchEvent(s)})(E,b.view.transactionHash)},onActionClick:C,statusType:We.SUCCESS,testId:"claim-withdrawal-success-view"}),b.view.type===Ge.CLAIM_WITHDRAWAL_FAILURE&&l.jsx(De,{statusText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.failure.text"),actionText:r("views.CLAIM_WITHDRAWAL.IN_PROGRESS.failure.actionText"),onRenderEvent:()=>{let e="";b.view.type===Ge.CLAIM_WITHDRAWAL_FAILURE&&(e=b.view.reason),T({userJourney:k.BRIDGE,screen:"ClaimWithdrawalFailure",extras:{reason:e}}),((e,t,s)=>{const a=new CustomEvent(x.IMTBL_BRIDGE_WIDGET_EVENT,{detail:{type:p.CLAIM_WITHDRAWAL_FAILURE,data:{transactionHash:t,reason:s,timestamp:(new Date).getTime()}}});console.log("bridge claim withdrawal failed event:",e,a),void 0!==e&&e.dispatchEvent(a)})(E,b.view.transactionHash,"Transaction failed")},onActionClick:C,statusType:We.FAILURE,onCloseClick:()=>jt(E),testId:"claim-withdrawal-fail-view"})]})})})}var aa=Object.freeze({__proto__:null,default:sa});export{sa as B,aa as a,bt as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,C as t,E as s,u as a,V as o,S as n,a as r,b as i,j as d,B as c,c as E,H as R,s as p,U as S,d as u,F as A,e as l,v,i as T,N as w,L as O,f as _,g as y,h as N,k as P,I}from"./index-
|
|
1
|
+
import{r as e,C as t,E as s,u as a,V as o,S as n,a as r,b as i,j as d,B as c,c as E,H as R,s as p,U as S,d as u,F as A,e as l,v,i as T,N as w,L as O,f as _,g as y,h as N,k as P,I}from"./index-d4117464.js";import{O as C,T as x}from"./TopUpView-6927b26e.js";import{u as m,T as h}from"./useTransakEvents-52c867f2.js";import{S as g}from"./SpendingCapHero-11f0e68a.js";const f=e=>({position:"relative",maxWidth:"420px",height:"565px",borderRadius:"base.borderRadius.x6",overflow:"hidden",marginLeft:"base.spacing.x2",marginRight:"base.spacing.x2",marginBottom:"base.spacing.x2",display:e?"block":"none"}),D=e=>({display:e?"block":"none"});var L,k;!function(e){e.TRANSAK_WIDGET_OPEN="TRANSAK_WIDGET_OPEN",e.TRANSAK_ORDER_CREATED="TRANSAK_ORDER_CREATED",e.TRANSAK_ORDER_SUCCESSFUL="TRANSAK_ORDER_SUCCESSFUL",e.TRANSAK_ORDER_FAILED="TRANSAK_ORDER_FAILED"}(L||(L={})),function(e){e.PROCESSING="PROCESSING",e.COMPLETED="COMPLETED"}(k||(k={}));const M="transak-iframe",U=6e3;function j({passport:A,showIframe:l,tokenAmount:v,tokenAddress:T}){const{connectLoaderState:w}=e.useContext(t),{checkout:O,provider:_}=w,{eventTargetState:{eventTarget:y}}=e.useContext(s),{t:N}=a(),{viewState:P,viewDispatch:I}=e.useContext(o),[x,g]=e.useState(""),j=e.useRef(),b=!!A&&_?.provider?.isPassport,F=e.useMemo((()=>P.history.length>2&&P.history[P.history.length-2].type===n.TOP_UP_VIEW),[P.history]),{track:G}=r();return e.useEffect((()=>{if(!O||!_)return;let e,t="";(async()=>{const e={exchangeType:i.ONRAMP,web3Provider:_,tokenAddress:T,tokenAmount:v,passport:A};g(await O.createFiatRampUrl(e)),t=await _.getSigner().getAddress()})(),(async()=>{if(A){const t=await A.getUserInfo();e=t?.email}})();const s=document.getElementById(M);if(!s)return;window.addEventListener("message",(a=>{if(!s)return;const o=m.parse(a.origin)?.host?.toLowerCase();a.source===s.contentWindow&&o&&h.includes(o)&&((async(e,t,s)=>{const a={userId:t.toLowerCase(),isPassportWallet:b,email:s};switch(e.event_id){case L.TRANSAK_WIDGET_OPEN:G({userJourney:S.ON_RAMP,screen:"InputScreen",control:"TransakWidgetOpen",controlType:"IframeEvent",extras:{...a}});break;case L.TRANSAK_ORDER_CREATED:G({userJourney:S.ON_RAMP,screen:"InputScreen",control:"OrderCreated",controlType:"IframeEvent",extras:{...a}});break;case L.TRANSAK_ORDER_SUCCESSFUL:e.data.status===k.PROCESSING&&G({userJourney:S.ON_RAMP,screen:"OrderInProgress",control:"PaymentProcessing",controlType:"IframeEvent",extras:{...a}}),e.data.status===k.COMPLETED&&G({userJourney:S.ON_RAMP,screen:"Success",control:"PaymentCompleted",controlType:"IframeEvent",extras:{...a}});break;case L.TRANSAK_ORDER_FAILED:G({userJourney:S.ON_RAMP,screen:"Failure",control:"PaymentFailed",controlType:"IframeEvent",extras:{...a}})}})(a.data,t,e),(e=>{if(j.current&&clearTimeout(j.current),e.event_id!==L.TRANSAK_WIDGET_OPEN)return e.event_id===L.TRANSAK_ORDER_SUCCESSFUL&&e.data.status===k.PROCESSING?(I({payload:{type:u.UPDATE_VIEW,view:{type:C.IN_PROGRESS_LOADING}}}),void(j.current=window.setTimeout((()=>{I({payload:{type:u.UPDATE_VIEW,view:{type:C.IN_PROGRESS}}})}),U))):void(e.event_id!==L.TRANSAK_ORDER_SUCCESSFUL||e.data.status!==k.COMPLETED?e.event_id===L.TRANSAK_ORDER_FAILED&&I({payload:{type:u.UPDATE_VIEW,view:{type:C.FAIL,data:{amount:v,tokenAddress:T},reason:`Transaction failed: ${e.data.statusReason}`}}}):I({payload:{type:u.UPDATE_VIEW,view:{type:C.SUCCESS,data:{transactionHash:e.data.transactionHash}}}}));I({payload:{type:u.UPDATE_VIEW,view:{type:C.ONRAMP,data:{amount:P.view.data?.amount??v,tokenAddress:P.view.data?.tokenAddress??T}}}})})(a.data))}))}),[O,_,v,T,A]),d.jsx(c,{sx:D(l),children:d.jsx(E,{header:d.jsx(R,{showBack:F,title:N("views.ONRAMP.header.title"),onCloseButtonClick:()=>p(y)}),footerBackgroundColor:"base.color.translucent.emphasis.200",children:d.jsx(c,{sx:f(l),children:d.jsx("iframe",{title:"Transak",id:M,src:x,allow:"camera;microphone;fullscreen;payment",style:{height:"100%",width:"100%",border:"none",position:"absolute"}})})})})}function b(){const{eventTargetState:{eventTarget:t}}=e.useContext(s),{t:o}=a();return d.jsx(E,{testId:"order-in-progress-view",header:d.jsx(R,{transparent:!0,onCloseButtonClick:()=>p(t)}),footer:d.jsx(A,{}),heroContent:d.jsx(g,{}),floatHeader:!0,children:d.jsxs(l,{heading:o("views.ONRAMP.IN_PROGRESS.content.heading"),children:[o("views.ONRAMP.IN_PROGRESS.content.body1"),d.jsx("br",{}),d.jsx("br",{}),o("views.ONRAMP.IN_PROGRESS.content.body2")]})})}function F({amount:r,tokenAddress:i,config:c}){const{isOnRampEnabled:E,isSwapEnabled:R,isBridgeEnabled:A}=c,[l,m]=e.useReducer(v,{...T,history:[]}),h=e.useMemo((()=>({viewState:l,viewDispatch:m})),[l,v]),{connectLoaderState:g}=e.useContext(t),{checkout:f,provider:D}=g,[L,k]=e.useState(i),{eventTargetState:{eventTarget:M}}=e.useContext(s),{t:U}=a(),F=e.useMemo((()=>l.view.type===C.ONRAMP),[l.view.type]);return e.useEffect((()=>{f&&D&&(async()=>{if(!(await f.getNetworkInfo({provider:D})).isSupported)return;const e=L?.toLocaleLowerCase()===w?w:i;k(e)})()}),[f,D,m]),d.jsxs(o.Provider,{value:h,children:[l.view.type===n.LOADING_VIEW&&d.jsx(O,{loadingText:U("views.ONRAMP.initialLoadingText"),showFooterLogo:!0}),l.view.type===C.IN_PROGRESS_LOADING&&d.jsx(O,{loadingText:U("views.ONRAMP.IN_PROGRESS_LOADING.loading.text"),showFooterLogo:!0}),l.view.type===C.IN_PROGRESS&&d.jsx(b,{}),l.view.type===C.SUCCESS&&d.jsx(_,{statusText:U("views.ONRAMP.SUCCESS.text"),actionText:U("views.ONRAMP.SUCCESS.actionText"),onRenderEvent:()=>y(M,l.view.data.transactionHash),onActionClick:()=>p(M),statusType:N.SUCCESS,testId:"success-view"}),l.view.type===C.FAIL&&d.jsx(_,{statusText:U("views.ONRAMP.FAIL.text"),actionText:U("views.ONRAMP.FAIL.actionText"),onRenderEvent:()=>P(M,l.view.reason??"Transaction failed"),onActionClick:()=>{m({payload:{type:u.UPDATE_VIEW,view:{type:C.ONRAMP,data:l.view.data}}})},statusType:N.FAILURE,onCloseClick:()=>p(M),testId:"fail-view"}),l.view.type!==C.SUCCESS&&l.view.type!==C.FAIL&&d.jsx(j,{passport:f?.passport,showIframe:F,tokenAmount:l.view.data?.amount??r,tokenAddress:l.view.data?.tokenAddress??L}),l.view.type===n.TOP_UP_VIEW&&d.jsx(x,{analytics:{userJourney:S.ON_RAMP},widgetEvent:I.IMTBL_ONRAMP_WIDGET_EVENT,checkout:f,provider:D,showOnrampOption:E,showSwapOption:R,showBridgeOption:A,onCloseButtonClick:()=>p(M)})]})}export{F as default};
|