UNPKG

@synapsecns/widget

Version:
1 lines 179 kB
"use strict";var e=require("react/jsx-runtime"),a=require("react-redux"),n=require("react"),i=require("@synapsecns/sdk-router"),s=require("@ethersproject/providers"),t=require("ethers"),o=require("lodash"),d=require("@reduxjs/toolkit"),r=require("@ethersproject/units");!function(e,a){void 0===a&&(a={});var n=a.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===n&&i.firstChild?i.insertBefore(s,i.firstChild):i.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}("*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: \n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: \n}\n.container {\n width: 100%\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px\n }\n}\n.absolute {\n position: absolute\n}\n.relative {\n position: relative\n}\n.sticky {\n position: sticky\n}\n.-right-1 {\n right: -0.25rem\n}\n.-top-8 {\n top: -2rem\n}\n.bottom-0 {\n bottom: 0px\n}\n.right-0 {\n right: 0px\n}\n.top-0 {\n top: 0px\n}\n.z-10 {\n z-index: 10\n}\n.z-50 {\n z-index: 50\n}\n.col-span-full {\n grid-column: 1 / -1\n}\n.col-start-1 {\n grid-column-start: 1\n}\n.col-end-3 {\n grid-column-end: 3\n}\n.row-start-3 {\n grid-row-start: 3\n}\n.m-0 {\n margin: 0px\n}\n.-mb-3 {\n margin-bottom: -0.75rem\n}\n.-mt-3 {\n margin-top: -0.75rem\n}\n.mb-0 {\n margin-bottom: 0px\n}\n.mb-2 {\n margin-bottom: 0.5rem\n}\n.mr-2 {\n margin-right: 0.5rem\n}\n.mt-1 {\n margin-top: 0.25rem\n}\n.mt-2 {\n margin-top: 0.5rem\n}\n.block {\n display: block\n}\n.inline {\n display: inline\n}\n.flex {\n display: flex\n}\n.inline-flex {\n display: inline-flex\n}\n.grid {\n display: grid\n}\n.h-3 {\n height: 0.75rem\n}\n.h-4 {\n height: 1rem\n}\n.max-h-60 {\n max-height: 15rem\n}\n.max-h-80 {\n max-height: 20rem\n}\n.w-3 {\n width: 0.75rem\n}\n.w-3\\.5 {\n width: 0.875rem\n}\n.w-4 {\n width: 1rem\n}\n.w-full {\n width: 100%\n}\n.w-max {\n width: -moz-max-content;\n width: max-content\n}\n.w-min {\n width: -moz-min-content;\n width: min-content\n}\n.min-w-48 {\n min-width: 12rem\n}\n.grow {\n flex-grow: 1\n}\n.basis-full {\n flex-basis: 100%\n}\n.origin-top {\n transform-origin: top\n}\n.rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))\n}\n@keyframes slide-down {\n 0% {\n transform: translateY(-4px) scale(1, .95);\n opacity: 0.67\n }\n 100% {\n transform: translateY(0) scale(1, 1);\n opacity: 1\n }\n}\n.animate-slide-down {\n animation: slide-down .3s cubic-bezier(0, .5, .2, 1)\n}\n.cursor-default {\n cursor: default\n}\n.cursor-pointer {\n cursor: pointer\n}\n.list-none {\n list-style-type: none\n}\n.grid-cols-\\[1fr_auto\\] {\n grid-template-columns: 1fr auto\n}\n.grid-cols-\\[auto_auto\\] {\n grid-template-columns: auto auto\n}\n.flex-col {\n flex-direction: column\n}\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse\n}\n.place-items-center {\n place-items: center\n}\n.items-end {\n align-items: flex-end\n}\n.items-center {\n align-items: center\n}\n.justify-end {\n justify-content: flex-end\n}\n.justify-center {\n justify-content: center\n}\n.justify-between {\n justify-content: space-between\n}\n.gap-0\\.5 {\n gap: 0.125rem\n}\n.gap-1 {\n gap: 0.25rem\n}\n.gap-1\\.5 {\n gap: 0.375rem\n}\n.gap-2 {\n gap: 0.5rem\n}\n.gap-3 {\n gap: 0.75rem\n}\n.gap-4 {\n gap: 1rem\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)))\n}\n.justify-self-end {\n justify-self: end\n}\n.justify-self-center {\n justify-self: center\n}\n.overflow-y-auto {\n overflow-y: auto\n}\n.whitespace-nowrap {\n white-space: nowrap\n}\n.break-all {\n word-break: break-all\n}\n.rounded {\n border-radius: 0.25rem\n}\n.rounded-\\[\\.1875rem\\] {\n border-radius: .1875rem\n}\n.rounded-\\[inherit\\] {\n border-radius: inherit\n}\n.rounded-full {\n border-radius: 9999px\n}\n.rounded-lg {\n border-radius: 0.5rem\n}\n.rounded-md {\n border-radius: 0.375rem\n}\n.rounded-sm {\n border-radius: 0.125rem\n}\n.border {\n border-width: 1px\n}\n.border-2 {\n border-width: 2px\n}\n.border-solid {\n border-style: solid\n}\n.border-none {\n border-style: none\n}\n.border-\\[--synapse-border\\] {\n border-color: var(--synapse-border)\n}\n.border-\\[--synapse-button-border\\] {\n border-color: var(--synapse-button-border)\n}\n.border-\\[--synapse-focus\\] {\n border-color: var(--synapse-focus)\n}\n.border-\\[--synapse-root\\] {\n border-color: var(--synapse-root)\n}\n.border-\\[--synapse-select-border\\] {\n border-color: var(--synapse-select-border)\n}\n.border-transparent {\n border-color: transparent\n}\n.bg-\\[--synapse-surface\\] {\n background-color: var(--synapse-surface)\n}\n.bg-\\[--synapse-text\\] {\n background-color: var(--synapse-text)\n}\n.bg-transparent {\n background-color: transparent\n}\n.fill-\\[--synapse-select-text\\] {\n fill: var(--synapse-select-text)\n}\n.fill-none {\n fill: none\n}\n.stroke-\\[--synapse-secondary\\] {\n stroke: var(--synapse-secondary)\n}\n.stroke-2 {\n stroke-width: 2\n}\n.p-0 {\n padding: 0px\n}\n.p-0\\.5 {\n padding: 0.125rem\n}\n.p-1 {\n padding: 0.25rem\n}\n.p-1\\.5 {\n padding: 0.375rem\n}\n.p-2 {\n padding: 0.5rem\n}\n.p-2\\.5 {\n padding: 0.625rem\n}\n.p-3 {\n padding: 0.75rem\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem\n}\n.py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem\n}\n.pb-2\\.5 {\n padding-bottom: 0.625rem\n}\n.pl-2 {\n padding-left: 0.5rem\n}\n.pl-2\\.5 {\n padding-left: 0.625rem\n}\n.pr-1 {\n padding-right: 0.25rem\n}\n.pr-1\\.5 {\n padding-right: 0.375rem\n}\n.pr-2\\.5 {\n padding-right: 0.625rem\n}\n.pr-3 {\n padding-right: 0.75rem\n}\n.text-left {\n text-align: left\n}\n.text-center {\n text-align: center\n}\n.text-right {\n text-align: right\n}\n.font-sans {\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem\n}\n.text-\\[0px\\] {\n font-size: 0px\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem\n}\n.font-bold {\n font-weight: 700\n}\n.font-medium {\n font-weight: 500\n}\n.tracking-wide {\n letter-spacing: 0.025em\n}\n.text-\\[--synapse-button-text\\] {\n color: var(--synapse-button-text)\n}\n.text-\\[--synapse-focus\\] {\n color: var(--synapse-focus)\n}\n.text-\\[--synapse-root\\] {\n color: var(--synapse-root)\n}\n.text-\\[--synapse-secondary\\] {\n color: var(--synapse-secondary)\n}\n.text-\\[--synapse-select-text\\] {\n color: var(--synapse-select-text)\n}\n.text-\\[--synapse-text-primary\\] {\n color: var(--synapse-text-primary)\n}\n.text-\\[--synapse-text\\] {\n color: var(--synapse-text)\n}\n.underline {\n text-decoration-line: underline\n}\n.no-underline {\n text-decoration-line: none\n}\n.opacity-0 {\n opacity: 0\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)\n}\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1)\n}\n\n.synapse-widget {\n all: initial;\n\n display: inline-block;\n\n font-size: inherit;\n font-family: inherit;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n\n width: 100%;\n\n /* For future consideration, more complete set of customizable variables\n\n --synapse-radius-inner: 0.25rem;\n --synapse-radius-outer: 0.5rem;\n --synapse-radius-full: 9999px;\n\n --synapse-focus: var(--synapse-secondary);\n\n --synapse-select-bg: var(--synapse-object);\n --synapse-select-text: var(--synapse-text);\n --synapse-select-border: var(--synapse-object);\n --synapse-select-radius: var(--synapse-radius-full);\n \n --synapse-button-bg: var(--synapse-surface);\n --synapse-button-text: var(--synapse-text);\n --synapse-button-border: var(--synapse-border);\n --synapse-button-radius: var(--synapse-radius-inner);\n \n --synapse-container-bg: var(--synapse-root);\n --synapse-container-text: var(--synapse-text);\n --synapse-container-border: var(--synapse-border);\n --synapse-container-radius: var(--synapse-radius-outer);\n \n --synapse-card-bg: var(--synapse-surface);\n --synapse-card-text: var(--synapse-text);\n --synapse-card-border: var(--synapse-border);\n --synapse-card-radius: var(--synapse-radius-inner);\n\n */\n}\n\n.placeholder\\:text-\\[--synapse-secondary\\]::-moz-placeholder {\n color: var(--synapse-secondary)\n}\n\n.placeholder\\:text-\\[--synapse-secondary\\]::placeholder {\n color: var(--synapse-secondary)\n}\n\n.after\\:text-xs::after {\n content: var(--tw-content);\n font-size: 0.75rem;\n line-height: 1rem\n}\n\n.after\\:text-\\[--synapse-secondary\\]::after {\n content: var(--tw-content);\n color: var(--synapse-secondary)\n}\n\n.after\\:content-\\[\\'_\\2197\\'\\]::after {\n --tw-content: ' ↗';\n content: var(--tw-content)\n}\n\n.hover\\:rounded:hover {\n border-radius: 0.25rem\n}\n\n.hover\\:border-\\[--synapse-focus\\]:hover {\n border-color: var(--synapse-focus)\n}\n\n.hover\\:bg-\\[--synapse-select-bg\\]:hover {\n background-color: var(--synapse-select-bg)\n}\n\n.hover\\:bg-\\[--synapse-select-border\\]:hover {\n background-color: var(--synapse-select-border)\n}\n\n.hover\\:stroke-\\[--synapse-text\\]:hover {\n stroke: var(--synapse-text)\n}\n\n.hover\\:underline:hover {\n text-decoration-line: underline\n}\n\n.hover\\:no-underline:hover {\n text-decoration-line: none\n}\n\n.hover\\:opacity-70:hover {\n opacity: 0.7\n}\n\n.focus\\:border-\\[--synapse-focus\\]:focus {\n border-color: var(--synapse-focus)\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px\n}\n\n.focus\\:ring-0:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)\n}\n\n.active\\:opacity-40:active {\n opacity: 0.4\n}\n\n.active\\:opacity-70:active {\n opacity: 0.7\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed\n}\n\n.disabled\\:opacity-40:disabled {\n opacity: 0.4\n}\n\n.disabled\\:hover\\:border-\\[--synapse-button-border\\]:hover:disabled {\n border-color: var(--synapse-button-border)\n}\n\n.group[open] .group-open\\:-scale-y-100 {\n --tw-scale-y: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))\n}\n\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1\n}\n\n@media (min-width: 360px) {\n .min-\\[360px\\]\\:after\\:content-\\[\\'_\\(Discord\\)\\'\\]::after {\n --tw-content: ' (Discord)';\n content: var(--tw-content)\n }\n}\n\n@media (min-width: 768px) {\n .md\\:text-base {\n font-size: 1rem;\n line-height: 1.5rem\n }\n}");const l=n.createContext(null),c=({children:a,config:i})=>{const[s,t]=n.useState({connectedAddress:"",networkId:null,signer:null,provider:null});return n.useEffect((()=>{i&&(async()=>{try{const e=await i.getSigner(),a=await e.getAddress(),n=await i.getNetwork();t({connectedAddress:a,networkId:Number(n?.chainId),signer:e,provider:i})}catch(e){console.error("[Synapse Widget] Error setting up Provider: ",e)}})()}),[i]),e.jsx(l.Provider,{value:{web3Provider:s,setWeb3Provider:t},children:a})},p=n.createContext(null),b=n.memo((({children:a,chains:t,customRpcs:o})=>{const d=n.useMemo((()=>t.map((e=>{let a;a=o&&o[e.id]?[o[e.id],e?.rpcUrls.primary,e?.rpcUrls.fallback]:[e?.rpcUrls.primary,e?.rpcUrls.fallback];const n=a.map(((a,n)=>({provider:new s.StaticJsonRpcProvider(a,e.id),priority:n,stallTimeout:750})));return new s.FallbackProvider(n,1)}))),[t]),r=n.useMemo((()=>t.reduce(((e,a)=>(e[a.id]=d.find((e=>e.network.chainId===a.id)),e)),{})),[t,d]),l=t.map((e=>e.id)),c=n.useMemo((()=>new i.SynapseSDK(l,d)),[l,d]);return e.jsx(p.Provider,{value:{synapseSDK:c,providerMap:r,synapseProviders:d},children:a})})),m=()=>n.useContext(p),u=(e,a,n)=>{if(("bigint"==typeof e||e)&&a)try{if(0n===e)return"0.0";const i=e<0n;i&&(e=-e);let s=e.toString().padStart(a,"0");const t=s.length-a;if(s=`${s.slice(0,t)}.${s.slice(t)}`,s.startsWith(".")&&(s="0"+s),void 0!==n){const e=s.indexOf(".");s=s.slice(0,e+n+1)}return i&&(s="-"+s),s}catch(e){console.error("[Synapse Widget] Error converting bigint to string: ",e)}},E=(e,a)=>{if("string"!=typeof e&&!e)return 0n;if("number"!=typeof a)return 0n;try{let n=e.replace(/[$,]/g,"");if([".","0.","",".0"].includes(n))return 0n;n.startsWith(".")&&(n=`0${n}`);const i=BigInt(10**a),[s,t="0"]=n.split("."),o=BigInt(s)*i;return o+BigInt(t.padEnd(a,"0").slice(0,a))}catch(e){console.error("[Synapse Widget] Error converting string to bigint: ",e)}},f=()=>e.jsxs("svg",{className:"stroke-[--synapse-secondary] stroke-2 fill-none inline group-open:-scale-y-100",width:"20",height:"21",viewBox:"0 0 20 21",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M6 5.5L10 9.5L14 5.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M6 11.5L10 15.5L14 11.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),C=()=>a.useDispatch(),A=a.useSelector,g=()=>A((e=>e.bridge)),x={ETHEREUM:{id:1,name:"Ethereum",rpcUrls:{primary:"https://ethereum.blockpi.network/v1/rpc/public",fallback:"https://rpc.ankr.com/eth"},explorerUrl:"https://etherscan.com",explorerName:"Etherscan",blockTime:12e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/ethereum.4a372106.svg",networkName:"Ethereum Mainnet",networkUrl:"https://eth.llamarpc.com",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},ARBITRUM:{id:42161,name:"Arbitrum",rpcUrls:{primary:"https://arbitrum.blockpi.network/v1/rpc/public",fallback:"https://arb1.arbitrum.io/rpc"},explorerUrl:"https://arbiscan.io",explorerName:"Arbiscan",blockTime:300,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/arbitrum.8ddb1b22.svg",networkName:"Arbitrum One",networkUrl:"https://arb1.arbitrum.io/rpc",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},BNBCHAIN:{id:56,name:"BNB Chain",rpcUrls:{primary:"https://bsc-dataseed1.ninicoin.io/",fallback:"https://bsc-dataseed2.ninicoin.io"},explorerUrl:"https://bscscan.com",explorerName:"BscScan",blockTime:3e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/bnb.5948fe5e.svg",networkName:"BNB Smart Chain Mainnet",networkUrl:"https://bsc-dataseed1.bnbchain.org",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:18}},AVALANCHE:{id:43114,name:"Avalanche",rpcUrls:{primary:"https://api.avax.network/ext/bc/C/rpc",fallback:"https://1rpc.io/avax/c"},explorerUrl:"https://snowtrace.io/",explorerName:"Snowtrace",blockTime:2e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/avalanche.9d53cbf0.svg",networkName:"Avalanche C-Chain",networkUrl:"https://api.avax.network/ext/bc/C/rpc",nativeCurrency:{name:"Avax",symbol:"AVAX",decimals:18}},CANTO:{id:7700,name:"Canto",rpcUrls:{primary:"https://mainnode.plexnode.org:8545",fallback:"https://canto.slingshot.finance"},explorerUrl:"https://tuber.build/",explorerName:"Canto Explorer",blockTime:6e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/canto.cb85e14f.svg",networkName:"Canto",networkUrl:"https://canto.slingshot.finance",nativeCurrency:{name:"Canto",symbol:"CANTO",decimals:18}},OPTIMISM:{id:10,name:"Optimism",rpcUrls:{primary:"https://mainnet.optimism.io",fallback:"https://1rpc.io/op"},explorerUrl:"https://optimistic.etherscan.io",explorerName:"Optimism Explorer",blockTime:2e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/optimism.84d4f0ef.svg",networkName:"OP Mainnet",networkUrl:"https://mainnet.optimism.io",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},POLYGON:{id:137,name:"Polygon",rpcUrls:{primary:"https://polygon-bor.publicnode.com",fallback:"https://polygon.llamarpc.com"},explorerUrl:"https://polygonscan.com",explorerName:"PolygonScan",blockTime:2e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/polygon.237cd2b6.svg",networkName:"Polygon Mainnet",networkUrl:"https://polygon-rpc.com",nativeCurrency:{name:"Matic",symbol:"MATIC",decimals:18}},DFK:{id:53935,name:"DFK Chain",rpcUrls:{primary:"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc",fallback:"https://dfkchain.api.onfinality.io/public"},explorerUrl:"https://subnets.avax.network/defi-kingdoms",explorerName:"DFK Subnet Explorer",blockTime:2e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/dfk.2bd1f0e4.svg",networkName:"DFK Chain",networkUrl:"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc",nativeCurrency:{name:"Jewel",symbol:"JEWEL",decimals:18}},KLAYTN:{id:8217,name:"Klaytn",rpcUrls:{primary:"https://kaia.blockpi.network/v1/rpc/public",fallback:"https://klaytn.api.onfinality.io/public"},explorerUrl:"https://scope.klaytn.com",explorerName:"Klaytn Explorer",blockTime:1e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/klaytn.59495fbb.svg",networkName:"Klaytn Mainnet Cypress",networkUrl:"https://public-en-cypress.klaytn.net",nativeCurrency:{name:"Klaytn",symbol:"KLAY",decimals:18}},FANTOM:{id:250,name:"Fantom",rpcUrls:{primary:"https://rpc.ftm.tools",fallback:"https://fantom-rpc.gateway.pokt.network/"},explorerUrl:"https://ftmscan.com",explorerName:"FTMScan",blockTime:1e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/fantom.1e444dad.svg",networkName:"Fantom Opera",networkUrl:"https://rpc.ftm.tools",nativeCurrency:{name:"Fantom",symbol:"FTM",decimals:18}},CRONOS:{id:25,name:"Cronos",rpcUrls:{primary:"https://evm-cronos.crypto.org",fallback:"https://cronos.blockpi.network/v1/rpc/public"},explorerUrl:"https://cronoscan.com",explorerName:"CronoScan",blockTime:6e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/cronos.b06f8311.svg",networkName:"Cronos Mainnet",networkUrl:"https://evm.cronos.org",nativeCurrency:{name:"Cronos",symbol:"CRO",decimals:18}},BOBA:{id:288,name:"Boba Chain",rpcUrls:{primary:"https://mainnet.boba.network",fallback:"https://replica.boba.network"},explorerUrl:"https://bobascan.com",explorerName:"Boba Explorer",blockTime:1e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/boba.2072e50b.svg",networkName:"Boba Network",networkUrl:"https://mainnet.boba.network",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},METIS:{id:1088,name:"Metis",rpcUrls:{primary:"https://andromeda.metis.io/?owner=1088",fallback:"https://metis-mainnet.public.blastapi.io"},explorerUrl:"https://andromeda-explorer.metis.io",explorerName:"Metis Explorer",blockTime:4e3,imgUrl:"https://7bdf4de3.sanguine-fe.pages.dev/_next/static/media/metis.90b6abf0.svg",networkName:"Metis Andromeda Mainnet",networkUrl:"https://andromeda.metis.io/?owner=1088",nativeCurrency:{name:"Metis",symbol:"METIS",decimals:18}},AURORA:{id:1313161554,name:"Aurora",rpcUrls:{primary:"https://mainnet.aurora.dev",fallback:"https://1rpc.io/aurora"},explorerUrl:"https://explorer.mainnet.aurora.dev",explorerName:"Aurora Explorer",blockTime:1e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/aurora.5a46037d.svg",networkName:"Aurora Mainnet",networkUrl:"https://mainnet.aurora.dev",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},HARMONY:{id:16666e5,name:"Harmony",rpcUrls:{primary:"https://api.harmony.one",fallback:"https://api.s0.t.hmny.io"},explorerUrl:"https://explorer.harmony.one",explorerName:"Harmony Explorer",blockTime:2e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/harmony.af12f77e.svg",networkName:"Harmony Mainnet Shard 0",networkUrl:"https://api.harmony.one",nativeCurrency:{name:"Harmony One",symbol:"ONE",decimals:18}},MOONBEAM:{id:1284,name:"Moonbeam",rpcUrls:{primary:"https://rpc.api.moonbeam.network",fallback:"https://moonbeam.public.blastapi.io"},explorerUrl:"https://moonbeam.moonscan.io",explorerName:"Moonbeam Explorer",blockTime:12e3,imgUrl:"https://adf1cceb.sanguine-fe.pages.dev/_next/static/media/moonbeam.63f34507.svg",networkName:"Moonbeam",networkUrl:"https://rpc.api.moonbeam.network",nativeCurrency:{name:"Glimmer",symbol:"GLMR",decimals:18}},MOONRIVER:{id:1285,name:"Moonriver",rpcUrls:{primary:"https://rpc.api.moonriver.moonbeam.network",fallback:"https://moonriver.public.blastapi.io"},explorerUrl:"https://moonriver.moonscan.io",explorerName:"Moonriver Explorer",blockTime:12e3,imgUrl:"https://adf1cceb.sanguine-fe.pages.dev/_next/static/media/moonriver.275d190a.svg",networkName:"Moonriver",networkUrl:"https://rpc.api.moonriver.moonbeam.network",nativeCurrency:{name:"Moonriver",symbol:"MOVR",decimals:18}},DOGE:{id:2e3,name:"Dogechain",rpcUrls:{primary:"https://rpc.dogechain.dog",fallback:"https://rpc01-sg.dogechain.dog"},explorerUrl:"https://explorer.dogechain.dog",explorerName:"Dogechain Explorer",blockTime:2e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/dogechain.36935650.svg",networkName:"Dogechain Mainnet",networkUrl:"https://rpc.dogechain.dog",nativeCurrency:{name:"DOGE",symbol:"DOGE",decimals:18}},BASE:{id:8453,name:"Base",rpcUrls:{primary:"https://base.blockpi.network/v1/rpc/public",fallback:"https://developer-access-mainnet.base.org"},explorerUrl:"https://basescan.org",explorerName:"BaseScan",blockTime:3e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/base.d919fbef.svg",networkName:"Base",networkUrl:"https://mainnet.base.org",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},BLAST:{id:81457,name:"Blast",rpcUrls:{primary:"https://lingering-indulgent-replica.blast-mainnet.quiknode.pro/6667a8f4be701cb6549b415d567bc706fb2f13a8/",fallback:"https://blast.blockpi.network/v1/rpc/publicChain"},explorerUrl:"https://blastscan.io",explorerName:"Blastscan",blockTime:3e3,imgUrl:"https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/blast.e39807f8.svg",networkName:"Blast",networkUrl:"https://rpc.blast.io",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},SCROLL:{id:534352,name:"Scroll",rpcUrls:{primary:"https://rpc.scroll.io/",fallback:"https://scroll.blockpi.network/v1/rpc/public"},explorerUrl:"https://scrollscan.com",explorerName:"Scrollscan",blockTime:3e3,imgUrl:"https://fe-adds-scroll.sanguine-fe.pages.dev/_next/static/media/scroll.a805c122.svg",networkName:"Scroll",networkUrl:"https://rpc.scroll.io",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},LINEA:{id:59144,name:"Linea",rpcUrls:{primary:"https://rpc.linea.build",fallback:"https://linea.blockpi.network/v1/rpc/public"},explorerUrl:"https://lineascan.build",explorerName:"LineaScan",blockTime:3e3,imgUrl:"https://master.sanguine-fe.pages.dev/_next/static/media/linea.e476f2ad.svg",networkName:"Linea",networkUrl:"https://rpc.linea.build",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},WORLDCHAIN:{id:480,name:"World Chain",rpcUrls:{primary:"https://worldchain-mainnet.g.alchemy.com/public",fallback:"https://worldchain-mainnet.g.alchemy.com/public"},explorerUrl:"https://worldchain-mainnet.explorer.alchemy.com",explorerName:"World Chain Explorer",blockTime:3e3,imgUrl:"https://synapse-interface-worldchain.sanguine-fe.pages.dev/_next/static/media/worldchain.62d1dfd2.svg",networkName:"World Chain",networkUrl:"https://worldchain-mainnet.g.alchemy.com/public",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}},BERACHAIN:{id:80094,name:"Berachain",rpcUrls:{primary:"https://rpc.berachain.com",fallback:"https://berachain-rpc.publicnode.com"},explorerUrl:"https://berascan.com",explorerName:"BeraScan",blockTime:2e3,imgUrl:"https://ft-uniberainterfaces.sanguine-fe.pages.dev/_next/static/media/berachain.57304c86.svg",networkName:"Berachain",networkUrl:"https://rpc.berachain.com",nativeCurrency:{name:"Bera",symbol:"BERA",decimals:18}},UNICHAIN:{id:130,name:"Unichain",rpcUrls:{primary:"https://mainnet.unichain.org",fallback:"https://unichain-rpc.publicnode.com"},explorerUrl:"https://uniscan.xyz",explorerName:"UniScan",imgUrl:"https://ft-uniberainterfaces.sanguine-fe.pages.dev/_next/static/media/unichain.02b81e3e.svg",blockTime:1e3,networkName:"Unichain",networkUrl:"https://mainnet.unichain.org",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18}}},y=Object.values(x),D=o.keyBy(x,"id"),h=({quote:a,loading:i,send:s,receive:t})=>{const{originChainId:o,destinationChainId:d}=g(),r=n.useMemo((()=>a.estimatedTime?a?.estimatedTime>60?Math.ceil(a?.estimatedTime/60)+" minutes":a?.estimatedTime+" seconds":null),[a]),l=Boolean(a.outputAmount);return e.jsxs("details",{className:"text-sm text-right group",children:[e.jsx("summary",{className:"hover:bg-[--synapse-select-border] pl-2 pr-1 py-1 gap-1 rounded active:opacity-40 cursor-pointer list-none inline-flex items-center",children:i?e.jsxs(e.Fragment,{children:["fetching... ",e.jsx(f,{})]}):l?e.jsxs(e.Fragment,{children:[" ",r," via ",a?.bridgeModuleName," ",e.jsx(f,{})," "]}):e.jsxs("div",{className:"text-sm text-right text-[--synapse-secondary]",children:["Powered by ",e.jsx("a",{href:"https://synapseprotocol.com",target:"_blank",className:"text-[--synapse-text] no-underline hover:underline active:opacity-40",children:"Synapse"})]})}),e.jsxs("dl",{className:"receipt mt-1 mb-0 p-2 text-sm rounded border border-solid border-[--synapse-select-border] grid grid-cols-[auto_auto] gap-1",children:[e.jsx("dt",{className:"text-left",children:"Router"}),e.jsx("dd",{className:"m-0 text-right justify-self-end",children:i?"...":l?a?.bridgeModuleName:"-"}),e.jsx("dt",{className:"text-left",children:"Origin"}),e.jsx("dd",{className:"m-0 text-right justify-self-end",children:o?D[o]?.name:"-"}),e.jsx("dt",{className:"text-left",children:"Destination"}),e.jsx("dd",{className:"m-0 text-right justify-self-end",children:d?D[d]?.name:"-"}),e.jsx("dt",{className:"text-left",children:"Send"}),e.jsx("dd",{className:"m-0 text-right justify-self-end",children:s||"-"}),e.jsx("dt",{className:"text-left",children:"Receive"}),e.jsx("dd",{className:"m-0 text-right justify-self-end",children:i?"...":l?t:"-"})]})]})},F=()=>{const[e,a]=n.useState(!1),i=n.useRef(null);n.useEffect((()=>{const e=e=>{i.current&&!i.current.contains(e.target)&&a(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}}),[e]);return{popoverRef:i,isOpen:e,togglePopover:()=>{a(!e)},closePopover:()=>{a(!1)}}},T=({...a})=>e.jsx("svg",{className:"fill-[--synapse-select-text]",width:"10",height:"9",viewBox:"0 0 10 9",xmlns:"http://www.w3.org/2000/svg",...a,children:e.jsx("path",{d:"M0.497159 0.727273H9.58807L5.04261 8.45455L0.497159 0.727273Z"})}),B=({inputValue:a,setInputValue:i,placeholder:s,isActive:t})=>{const o=n.useRef(null);n.useEffect((()=>{t&&o.current&&o.current.focus()}),[t]);return e.jsx("div",{"data-test-id":"search-input",children:e.jsx("input",{type:"text",ref:o,placeholder:s,value:a,onChange:e=>{i(e.target.value)},style:{background:"var(--synapse-select-bg)"},className:"\n text-[--synapse-text] placeholder:text-[--synapse-secondary]\n w-full border border-solid border-[--synapse-focus] shadow-none text-sm\n focus:ring-0 focus:border-[--synapse-focus] focus:outline-none\n px-2 py-1.5 rounded\n "})})},S=({selectedTab:a,onTabSelect:n})=>{const{protocolName:i}=g(),s="basis-full rounded p-1.5",t=`${s} cursor-pointer hover:opacity-70`,o={background:"var(--synapse-button-bg)",color:"var(--synapse-button-text)"};return e.jsxs("div",{className:"flex text-sm text-center cursor-default rounded border border-solid border-[--synapse-border]",style:{background:"var(--synapse-root)"},role:"group",children:[e.jsx("div",{className:"All"===a?s:t,style:"All"===a?o:{},onClick:()=>n("All"),children:"All"}),e.jsx("div",{className:"Target"===a?s:t,style:"Target"===a?o:{},onClick:()=>n("Target"),children:i??"Target"})]})},w=()=>e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("circle",{cx:"8",cy:"8",r:"4",fill:"var(--synapse-progress-success)",stroke:"var(--synapse-progress-success)",strokeOpacity:"0.125",strokeWidth:"8"})}),v=({option:a,isSelected:i,onSelect:s,isOrigin:t})=>{const o=n.useContext(l),{web3Provider:d}=o||{},r=d?.networkId,c=d?.connectedAddress;return e.jsxs("li",{className:`\n pl-2.5 pr-2.5 py-2.5 rounded-[.1875rem] border border-solid\n hover:border-[--synapse-focus] active:opacity-40\n cursor-pointer whitespace-nowrap group flex justify-between items-center\n ${i?"border-[--synapse-focus] hover:opacity-70":"border-transparent"}\n `,onClick:()=>s(a),children:[e.jsxs("div",{className:"flex items-center",children:[a?.imgUrl&&e.jsx("img",{src:a?.imgUrl,alt:`${a?.name} chain icon`,className:"inline w-4 h-4 mr-2"}),a?.name]}),t&&(a.id===r?e.jsx(w,{}):c?e.jsx("span",{className:"opacity-0 text-sm text-[--synapse-secondary] group-hover:opacity-100",children:"Switch"}):null)]},a.id)},U=({options:a,remaining:i,targets:s,onSelect:t,selected:d,label:r,isOrigin:l})=>{const{popoverRef:c,isOpen:p,togglePopover:b,closePopover:m}=F(),[u,E]=n.useState(l?"All":"Target");n.useEffect((()=>{!s||o.isEmpty(s)||l?E("All"):l||E("Target")}),[s,l]);const f=e=>{t(e),m()},{filterValue:C,setFilterValue:A,filteredOptions:g,filteredRemaining:x,filteredTargets:y,hasFilteredRemaining:D,hasFilteredResults:h,hasFilteredTargets:w}=((e,a,i,s)=>{const[t,d]=n.useState("");n.useEffect((()=>{s||d("")}),[s]);const r=(e,a)=>{const n=a.toLowerCase();return o.filter(e,(e=>e.name.toLowerCase().includes(n)))},l=r(e,t),c=r(a,t),p=r(i,t),b=!o.isEmpty(l),m=!o.isEmpty(c),u=b||m,E=!o.isEmpty(p);return{filterValue:t,setFilterValue:d,filteredOptions:l,filteredRemaining:c,filteredTargets:p,hasFilteredOptions:b,hasFilteredRemaining:m,hasFilteredResults:u,hasFilteredTargets:E}})(a,i,s,p);return e.jsxs("div",{"data-test-id":"chain-popover-select",className:"relative w-min col-span-full",ref:c,children:[e.jsxs("div",{id:(l?"origin":"destination")+"-chain-select",onClick:()=>b(),style:{background:"var(--synapse-select-bg)"},className:"\n flex px-2.5 py-1.5 gap-2 items-center rounded\n text-[--synapse-select-text] whitespace-nowrap\n border border-solid border-[--synapse-select-border]\n cursor-pointer hover:border-[--synapse-focus]\n ",children:[d?.imgUrl&&e.jsx("img",{src:d?.imgUrl,alt:`${d?.name} chain icon`,className:"inline w-4 h-4"}),d?.name||"Network",e.jsx(T,{})]}),p&&e.jsxs("div",{style:{background:"var(--synapse-select-bg)"},className:"\n absolute z-50 mt-1 max-h-60 min-w-48 rounded\n shadow popover text-left list-none overflow-y-auto\n border border-solid border-[--synapse-select-border]\n animate-slide-down origin-top\n ",children:[e.jsxs("div",{className:"grid gap-1 p-1",children:[e.jsx(B,{inputValue:C,setInputValue:A,placeholder:"Search Chains",isActive:p}),s&&s.length>0&&e.jsx(S,{selectedTab:u,onTabSelect:e=>{E(e)}})]}),"All"===u?h?e.jsxs("ul",{className:"p-0 m-0",children:[g.map(((a,n)=>e.jsx(v,{option:a,isSelected:a?.name===d?.name,onSelect:()=>f(a),isOrigin:l},n))),D&&e.jsx("div",{className:"\n sticky top-0 px-2.5 py-2 mt-2 text-sm\n text-[--synapse-secondary] bg-[--synapse-surface]\n ",children:"Other chains"}),x.map(((a,n)=>e.jsx(v,{option:a,isSelected:a?.name===d?.name,onSelect:()=>f(a),isOrigin:l},n)))]}):e.jsxs("div",{className:"p-2 text-sm break-all",children:["No chains found",e.jsx("br",{}),"matching '",C,"'."]}):null,"Target"===u?w?e.jsx("ul",{className:"p-0 m-0",children:y.map(((a,n)=>e.jsx(v,{option:a,isSelected:a?.name===d?.name,onSelect:()=>f(a),isOrigin:l},n)))}):e.jsxs("div",{className:"p-2 text-sm break-all",children:["No chains found",e.jsx("br",{}),"matching '",C,"'."]}):null]})]})},k=({label:a,isOrigin:n,chain:i,onChange:s})=>{const{originChainIds:t,destinationChainIds:d,targetChainIds:r}=g(),l=y.map((e=>e.id)),c=r?.map((e=>D[e])).filter(Boolean);let p,b;return n?(p=t.map((e=>D[e])),b=o.difference(l,t).map((e=>D[e]))):(p=d.map((e=>D[e])),b=o.difference(l,d).map((e=>D[e]))),e.jsx(U,{options:p,remaining:b,targets:c,onSelect:e=>{s(e)},selected:i,label:a,isOrigin:n})},I=({option:a,onSelect:n,selected:i,parsedBalance:s,isOrigin:t})=>e.jsxs("li",{"data-test-id":"token-option",className:`\n flex gap-4 items-center justify-between\n cursor-pointer rounded border border-solid\n hover:border-[--synapse-focus] active:opacity-40 group\n ${a?.symbol===i?.symbol?"border-[--synapse-focus] hover:opacity-70":"border-transparent"}\n `,onClick:()=>n(a),children:[e.jsxs("abbr",{title:a?.name,className:"p-2.5 no-underline flex items-center",children:[a?.imgUrl&&e.jsx("img",{src:a?.imgUrl,alt:`${a?.symbol} token icon`,className:"inline w-4 h-4 mr-2"}),a?.symbol]}),e.jsx("data",{value:s,className:`\n text-sm p-2.5\n ${s?"text-[--synapse-secondary]":"text-[--synapse-focus]"}\n `,children:s?"0.0"===s?"−":s:e.jsx("span",{className:"opacity-0 text-sm text-[--synapse-secondary] group-hover:opacity-100",children:t?null:"Receive"})})]}),N=({options:a,remaining:n,balances:i,onSelect:s,selected:t,isOrigin:d})=>{const{popoverRef:r,isOpen:l,togglePopover:c,closePopover:p}=F(),b=e=>{s(e),p()},m=R(a,i),u=R(n,i),E=o.orderBy(m,["parsedBalance","token.priorityRank"],["desc","asc"]),f=o.orderBy(u,["parsedBalance","token.priorityRank"],["desc","asc"]),{filterValue:C,setFilterValue:A,filteredOptions:g,filteredRemaining:x,hasFilteredRemaining:y,hasFilteredResults:D}=M(E,f,l);return e.jsxs("div",{"data-test-id":"token-popover-select",className:"relative w-min justify-self-end align-self-center",ref:r,children:[e.jsxs("div",{id:(d?"origin":"destination")+"-token-select",onClick:()=>c(),style:{background:"var(--synapse-select-bg)"},className:"\n flex px-2.5 py-1.5 gap-2 items-center rounded\n text-[--synapse-select-text] whitespace-nowrap\n border border-solid border-[--synapse-select-border]\n cursor-pointer hover:border-[--synapse-focus]\n ",children:[t?.imgUrl&&e.jsx("img",{src:t?.imgUrl,alt:`${t.symbol} token icon`,className:"inline w-4 h-4"}),t?.symbol||"Token",e.jsx(T,{})]}),l&&e.jsxs("div",{style:{background:"var(--synapse-select-bg)"},className:"\n absolute right-0 z-50 mt-1 max-h-80 min-w-48 rounded\n shadow popover text-left list-none overflow-y-auto\n border border-solid border-[--synapse-select-border]\n animate-slide-down origin-top\n ",children:[e.jsx("div",{className:"p-1",children:e.jsx(B,{inputValue:C,setInputValue:A,placeholder:"Search Tokens",isActive:l})}),D?e.jsxs("ul",{className:"p-0 m-0",children:[g?.map(((a,n)=>e.jsx(I,{option:a?.token,onSelect:b,selected:t,parsedBalance:a?.parsedBalance,isOrigin:d},n))),y&&e.jsx("div",{className:"\n sticky top-0 px-2.5 py-2 mt-2 text-sm\n text-[--synapse-secondary] bg-[--synapse-surface]\n ",children:"Other tokens"}),x?.map(((a,n)=>e.jsx(I,{option:a?.token,onSelect:b,selected:t,parsedBalance:a?.parsedBalance,isOrigin:d},n)))]}):e.jsxs("div",{className:"p-2 text-sm break-all",children:["No tokens found",e.jsx("br",{}),"matching '",C,"'."]})]})]})},M=(e,a,i)=>{const[s,t]=n.useState("");n.useEffect((()=>{i||t("")}),[i]);const d=(e,a)=>{const n=a.toLowerCase();return o.filter(e,(e=>{const a=e.token.symbol.toLowerCase();return a.includes(n)||a===n}))},r=d(e,s),l=d(a,s),c=!o.isEmpty(r),p=!o.isEmpty(l);return{filterValue:s,setFilterValue:t,filteredOptions:r,filteredRemaining:l,hasFilteredOptions:c,hasFilteredRemaining:p,hasFilteredResults:c||p}},R=(e,a)=>e?.map((e=>{if(o.isArray(a)&&o.isEmpty(a))return{token:e,balance:null,parsedBalance:null};{const n=a?.find((a=>a.token===e));return{token:e,balance:n?.balance,parsedBalance:n?.parsedBalance}}}));var O=[{constant:!0,inputs:[],name:"getCurrentBlockTimestamp",outputs:[{name:"timestamp",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{components:[{name:"target",type:"address"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{name:"blockNumber",type:"uint256"},{name:"returnData",type:"bytes[]"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"getLastBlockHash",outputs:[{name:"blockHash",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"addr",type:"address"}],name:"getEthBalance",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"getCurrentBlockDifficulty",outputs:[{name:"difficulty",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"getCurrentBlockGasLimit",outputs:[{name:"gaslimit",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"getCurrentBlockCoinbase",outputs:[{name:"coinbase",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{name:"blockHash",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"}],H=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];const L="0xcA11bde05977b3631167028862bE2a173976CA11",P=async({address:e,chainId:a,tokens:n,signerOrProvider:i})=>{const s=(e=>new t.Contract(L,O,e))(i);if(!i)return void console.error("[Synapse Widget] Error fetching token balances: Require valid Signer or Provider");if(Number(i?._network.chainId.toString())!==a)return void console.error("[Synapse Widget] Error fetching token balances: Signer or Provider does not match selected chainId");const o=n.filter((e=>{const n=e&&e.addresses[a];return e&&void 0!==n})),d=o.map((n=>{const s=n.addresses[a];if(s===t.ZeroAddress){const a=new t.ethers.Contract(s,O,i);return{target:L,callData:a.interface.encodeFunctionData("getEthBalance",[e])}}return{target:s,callData:new t.ethers.Contract(s,H,i).interface.encodeFunctionData("balanceOf",[e])}}));try{const[,e]=await s.aggregate(d),n=t.AbiCoder.defaultAbiCoder();return e.map(((e,i)=>{const s=n.decode(["uint256"],e)[0],t=o[i].decimals[a];return{token:o[i],balance:String(s),parsedBalance:u(s,t,4)}}))}catch(e){return console.error("[Synapse Widget] Error fetching token balances: ",e),e}},j=()=>A((e=>e.wallet)),W=d.createAsyncThunk("wallet/fetchAndStoreTokenBalances",(async({address:e,chainId:a,tokens:n,signerOrProvider:i},{rejectWithValue:s})=>{try{const s=await P({address:e,chainId:a,tokens:n,signerOrProvider:i});if(!Array.isArray(s))throw new Error(s);return s}catch(e){return s(e?.message)}})),Y=d.createAsyncThunk("wallet/fetchAndStoreAllowance",(async({spenderAddress:e,ownerAddress:a,provider:n,token:i,chainId:s})=>{const o=i?.addresses[s],d=await(async({spenderAddress:e,tokenAddress:a,ownerAddress:n,provider:i})=>{try{if(!e)throw new Error("Require Spender Address");if(!a)throw new Error("Require Token Address");if(!n)throw new Error("Require Token Owner Address");if(!i)throw new Error("Require Provider");if(a===t.ZeroAddress)return;const s=new t.ethers.Contract(a,H,i),o=await s.allowance(n,e);return BigInt(o.toString())}catch(e){return console.error("fetchErc20TokenAllowance: ",e),e}})({spenderAddress:e,tokenAddress:o,ownerAddress:a,provider:n});return u(d,i.decimals[s])})),V={1:["WETH"]},$=()=>{const e=[];for(const a in V)V.hasOwnProperty(a)&&V[a].forEach((n=>{e.push(`${n}-${a}`)}));return e},_=((e,a)=>{const n={};for(const i in e)for(const s in e[i]){const t=`${e[i][s].symbol}-${i}`;if(!a.includes(t))for(const o in e)if(i!==o)for(const d in e[o]){const r=`${e[o][d].symbol}-${o}`;if(!a.includes(r))for(const a of e[i][s].origin)e[i][s].origin.includes(a)&&e[o][d].destination.includes(a)&&(n[t]?n[t].push(r):n[t]=[r])}}return n})({1:{"0x0642026E7f0B6cCaC5925b4E7Fa61384250e1701":{decimals:18,symbol:"H2O",origin:["H2O"],destination:["H2O"],swappable:[]},"0x0ab87046fBb341D058F17CBC4c1133F25a20a52f":{decimals:18,symbol:"gOHM",origin:["gOHM"],destination:["gOHM"],swappable:[]},"0x0f2D719407FdBeFF09D87557AbB7232601FD9F29":{decimals:18,symbol:"SYN",origin:["SYN"],destination:["SYN"],swappable:[]},"0x12f79f8c1A6e47a9b5F0796FDb008Bdc182fa19e":{decimals:18,symbol:"JEWEL",origin:["JEWEL"],destination:["JEWEL"],swappable:[]},"0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F":{decimals:18,symbol:"nUSD",origin:["CCTP.USDC","DAI","RFQ.USDC","USDC","USDT","nUSD","synFRAX"],destination:["CCTP.USDC","nUSD"],swappable:["0x5f98805A4E8be255a32880FDeC7F6728C6568bA0","0x6B175474E89094C44Da98b954EedeAC495271d0F","0x6c3ea9036406852006290770BEdFcAbA0e23A0e8","0x853d955aCEf822Db058eb8505911ED77F175b99e","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","0xdAC17F958D2ee523a2206206994597C13D831ec7","0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E"]},"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599":{decimals:8,symbol:"WBTC",origin:["WBTC"],destination:["WBTC"],swappable:[]},"0x514910771AF9Ca656af840dff83E8264EcF986CA":{decimals:18,symbol:"LINK",origin:["LINK"],destination:["LINK"],swappable:[]},"0x5f98805A4E8be255a32880FDeC7F6728C6568bA0":{decimals:18,symbol:"LUSD",origin:["CCTP.USDC","DAI","RFQ.USDC","USDC","USDT","nUSD","synFRAX"],destination:["CCTP.USDC"],swappable:["0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F","0x6B175474E89094C44Da98b954EedeAC495271d0F","0x6c3ea9036406852006290770BEdFcAbA0e23A0e8","0x853d955aCEf822Db058eb8505911ED77F175b99e","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","0xdAC17F958D2ee523a2206206994597C13D831ec7","0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E"]},"0x6982508145454Ce325dDbE47a25d4ec3d2311933":{decimals:18,symbol:"PEPE",origin:["PEPE"],destination:["PEPE"],swappable:[]},"0x6B175474E89094C44Da98b954EedeAC495271d0F":{decimals:18,symbol:"DAI",origin:["CCTP.USDC","DAI","RFQ.USDC","USDC","USDT","nUSD","synFRAX"],destination:["CCTP.USDC","DAI","nUSD"],swappable:["0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F","0x5f98805A4E8be255a32880FDeC7F6728C6568bA0","0x6c3ea9036406852006290770BEdFcAbA0e23A0e8","0x853d955aCEf822Db058eb8505911ED77F175b99e","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","0xdAC17F958D2ee523a2206206994597C13D831ec7","0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E"]},"0x6c3ea9036406852006290770BEdFcAbA0e23A0e8":{decimals:6,symbol:"PYUSD",origin:["CCTP.USDC","DAI","RFQ.USDC","USDC","USDT","nUSD","synFRAX"],destination:["CCTP.USDC"],swappable:["0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F","0x5f98805A4E8be255a32880FDeC7F6728C6568bA0","0x6B175474E89094C44Da98b954EedeAC495271d0F","0x853d955aCEf822Db058eb8505911ED77F175b99e","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","0xdAC17F958D2ee523a2206206994597C13D831ec7","0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E"]},"0x71Ab77b7dbB4fa7e017BC15090b2163221420282":{decimals:18,symbol:"HIGH",origin:["HIGH"],destinatio