keyring-chatbot-agent-sdk-test 0.1.1 → 0.1.2

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.
@@ -1,5 +1,5 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".chat-button{cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;transition:all .3s ease;border-radius:16px}.chat-button:hover{transform:scale(1.1);box-shadow:0 6px 16px #0003}.chat-button:active{transform:scale(.95)}.chat-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;display:flex;align-items:flex-end;justify-content:flex-end;z-index:9999;pointer-events:all;animation:fadeIn .2s ease}#chat-modal-title{color:#0b3988;font-weight:900;font-style:Regular;font-size:18px}.chat-modal-overlay.chat-modal-overlay--left{justify-content:flex-start}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-modal{width:90%;max-width:480px;height:700px;max-height:calc(100dvh - 64px);background:#f5f5f7;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d;margin:20px;pointer-events:all;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.chat-modal-header{background:#fff;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e5e7}.chat-modal-header-left{display:flex;align-items:center;gap:12px}.keyring-logo{width:32px;height:32px}.chat-modal-header h3{margin:0;font-size:18px;font-weight:700;color:#1a1a1d}.close-button{background:transparent;border:none;cursor:pointer;padding:8px;border-radius:8px;color:#666;transition:all .2s}.close-button:hover{background:#f5f5f7;color:#000}.chat-user-info{background:#fff;padding:12px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #e5e5e7}.user-avatar{width:20px;height:20px;border-radius:50%}.user-avatar img{border-radius:50%}.user-wallet,.user-wallet a{font-size:14px;font-weight:500;color:#0b3988}.copy-address-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:3px;color:#999;border-radius:4px;transition:color .15s,background .15s;line-height:0}@media(min-width:640px){.copy-address-btn:hover{color:#1a1a1d;background:#f0f0f0}}.chat-modal-messages-wrapper{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column}.chat-modal-messages{flex:1;padding:20px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px}.date-separator{text-align:center;font-size:12px;font-weight:600;color:#666;background:#e5e5e7;padding:6px 16px;border-radius:12px;align-self:center;width:fit-content;margin:8px auto}.message{display:flex;animation:messageSlide .3s ease;position:relative}@media(min-width:640px){.message:hover .message-reply-button{opacity:1}}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-reply-button{position:absolute;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #e5e5e7;border-radius:8px;padding:6px;cursor:pointer;opacity:0;transition:all .2s;box-shadow:0 2px 8px #0000001a;z-index:10}.message-bot .message-reply-button{right:20px}.message-user .message-reply-button{left:20px}.message-reply-button:hover{background:#f5f5f7;transform:translateY(-50%) scale(1.1)}.message-reply-button svg{display:block;width:16px;height:16px;color:#666}.message-bot{justify-content:flex-start}.message-user{justify-content:flex-end}.message-bubble{max-width:85%;padding:14px 16px;border-radius:20px}.message-bot .message-bubble{background:#fff;box-shadow:0 2px 8px #0000000f;border-bottom-left-radius:4px}.message-user .message-bubble{background:#5b7fff;color:#fff;border-bottom-right-radius:4px}.message-user .message-bubble a{color:#fff}.message-reply-to{background:#0000000d;padding:8px 12px;border-radius:6px;margin-bottom:8px;border-left:3px solid #5b7fff}.message-bot .message-reply-to{background:#f5f5f7}.message-user .message-reply-to{background:#ffffff26;border-left-color:#ffffff80}.message-reply-to-label{font-size:11px;font-weight:600;margin-bottom:4px}.message-bot .message-reply-to-label{color:#5b7fff}.message-user .message-reply-to-label{color:#ffffffe6}.message-reply-to-text{font-size:12px;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-text{font-size:14px;line-height:1.5;margin-bottom:6px;word-wrap:break-word;white-space:pre-line}.message-bot .message-text{color:#1a1a1d}.message-user .message-text{color:#fff}.message-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;margin-bottom:8px}.message-button{flex:1 1 calc(50% - 4px);min-width:100px;padding:10px 16px;background:#fffffff2;border:1px solid #e0e0e0;border-radius:12px;font-size:13px;font-weight:500;color:#1a1a1d;cursor:pointer;transition:all .2s ease;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-button.full-width{flex:1 1 100%;text-align:center;white-space:normal;padding:12px 16px;font-size:14px}@media(min-width:640px){.message-button:hover{background:#fff;border-color:#007aff;color:#007aff;transform:translateY(-1px);box-shadow:0 2px 8px #007aff26}.message-button:active{transform:translateY(0);box-shadow:0 1px 4px #007aff1a}}.message-user .message-button{background:#fff3;border-color:#ffffff4d;color:#fff}.message-user .message-button:hover{background:#ffffff4d;border-color:#ffffff80}.message-timestamp{font-size:11px;color:#999;display:flex;align-items:center;gap:4px;justify-content:flex-end}.message-user .message-timestamp{color:#ffffffb3}.check-icon{width:14px;height:14px}.typing-indicator .message-bubble{padding:12px 18px;display:flex;gap:6px;min-width:60px}.typing-dot{width:8px;height:8px;border-radius:50%;background:#999;animation:typingDot 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-8px);opacity:1}}.suggestions-container{display:flex;flex-direction:column;gap:10px;margin-top:8px}.suggestion-button{background:#d4d8f0;border:none;padding:12px 16px;border-radius:16px;display:flex;gap:12px;cursor:pointer;transition:all .2s;font-size:14px;font-weight:500;color:#1a1a1d;width:100%;text-align:center;align-items:center;justify-content:center}.suggestion-button:hover{background:#c5caeb;transform:translateY(-1px)}.suggestion-icon{font-size:18px}.chat-modal-input{padding:16px 20px;background:#fff;border-top:1px solid #e5e5e7;display:flex;flex-direction:column;gap:12px;box-shadow:0 -5px 8px 4px #0000000d}.reply-preview{background:#f5f5f7;padding:10px 14px;border-radius:6px;border-left:3px solid #5b7fff;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.reply-preview-content{flex:1;min-width:0}.reply-preview-label{font-size:11px;color:#5b7fff;font-weight:600;margin-bottom:4px}.reply-preview-text{font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-preview-close{background:transparent;border:none;cursor:pointer;padding:2px;color:#999;transition:color .2s;flex-shrink:0}.reply-preview-close:hover{color:#666}.chat-modal-input-row{display:flex;gap:12px;align-items:center}.chat-modal-input input{flex:1;padding:14px 18px;border:1px solid #e5e5e7;border-radius:24px;outline:none;font-size:16px;color:#1a1a1d;transition:all .2s}.chat-modal-input input::placeholder{color:#999}.chat-modal-input input:focus{border-color:#5b7fff;box-shadow:0 0 0 3px #5b7fff1a}.chat-modal-input input:disabled{opacity:.6;cursor:not-allowed;background:#f5f5f7}.send-button{width:44px;height:44px;border-radius:50%;background:#5b7fff;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.send-button:hover:not(:disabled){background:#4a6fee;transform:scale(1.05)}.send-button:disabled{opacity:.4;cursor:not-allowed}.chat-modal-messages::-webkit-scrollbar{width:6px}.chat-modal-messages::-webkit-scrollbar-thumb{background:#d1d1d6;border-radius:3px}@media(max-width:640px){.chat-modal{width:100%;height:100dvh;max-height:100dvh;border-radius:0;margin:0}}.action-status{margin-top:8px;padding:6px 10px;border-radius:6px;font-size:.8em;font-weight:500}.action-status-submitted{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.action-status-success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.action-status-fail{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.message-content{display:block;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;overflow:hidden;font-size:inherit;line-height:1.5}.mc-line{min-height:1.2em;word-break:break-word}.mc-empty-line{height:.5em}.mc-heading{font-weight:600;margin:.3em 0;word-break:break-word}.mc-h1{font-size:1.4em}.mc-h2{font-size:1.2em}.mc-h3{font-size:1.05em}.mc-inline-code{background:#afb8c133;padding:1px 5px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:.88em}.mc-codeblock{background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;margin:6px 0;overflow:hidden;max-width:100%}.mc-codeblock-lang{background:#e8ecf0;padding:3px 10px;font-size:.75em;font-weight:600;color:#57606a;text-transform:uppercase;font-family:Monaco,Menlo,monospace;border-bottom:1px solid #d0d7de}.mc-codeblock pre{margin:0;padding:10px;overflow-x:auto}.mc-codeblock code{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:.85em;line-height:1.5;color:#24292f;white-space:pre}.mc-link{color:#0969da;text-decoration:none;word-break:break-word}.mc-link:hover{text-decoration:underline}.mc-image{max-width:150px;width:150px;height:150px;object-fit:contain;border-radius:8px;margin:8px 0;display:block}.mc-image-inline{width:20px;height:20px;border-radius:50%;margin:0 4px;display:inline-block;vertical-align:middle;object-fit:cover}.mc-blockquote{margin:4px 0;padding:2px 0 2px 12px;color:#57606a;border-left:3px solid #d0d7de}.mc-hr{height:1px;border:0;background:#d0d7de;margin:.4em 0}.message-content strong{font-weight:600}.message-content del{text-decoration:line-through}.action-form{background:#f8f9fb;border:1px solid #e2e6ea;border-radius:10px;padding:12px;margin-top:8px;margin-bottom:8px}.action-form-title{font-weight:600;font-size:.9em;margin-bottom:10px;color:#1a1a2e;display:flex;align-items:center;gap:6px}.action-form-general-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;margin-bottom:10px;font-size:.8em;color:#dc2626;font-weight:500;display:flex;align-items:center;gap:6px}.action-form-fields{display:flex;flex-direction:column;gap:8px}.action-form-field{display:flex;flex-direction:column;gap:3px}.action-form-field label{font-size:.75em;font-weight:500;color:#6b7280}.action-form-field input,.action-form-field textarea{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:16px;background:#fff;color:#1a1a2e;outline:none;transition:border-color .2s;font-family:inherit}.action-form-field textarea{resize:none;word-break:break-all}.action-form-field input:focus,.action-form-field textarea:focus{border-color:#0b3988;box-shadow:0 0 0 2px #6c5ce726}.action-form-field input.error,.action-form-field textarea.error{border-color:#ef4444}.action-form-field input.readonly,.action-form-field textarea.readonly{background:#f3f4f6;color:#6b7280;cursor:not-allowed;border-color:#e5e7eb}.action-form-field .field-error{font-size:.7em;color:#ef4444;margin-top:1px}.action-form-actions{display:flex;gap:8px;margin-top:10px}.action-form-submit{flex:1;padding:8px 14px;background:#0b3988;color:#fff;border:none;border-radius:6px;font-size:.85em;font-weight:500;cursor:pointer;transition:background .2s}.action-form-submit:hover:not(:disabled){background:#5a4bd1}.action-form-submit:disabled{background:#a5b4fc;cursor:not-allowed}.action-form-cancel{padding:8px 14px;background:transparent;color:#6b7280;border:1px solid #d1d5db;border-radius:6px;font-size:.85em;font-weight:500;cursor:pointer;transition:all .2s}.action-form-cancel:hover{background:#f3f4f6;color:#374151}.action-form-token-info{background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;padding:8px 10px;margin-bottom:10px}.token-info-row{display:flex;align-items:center;gap:8px}.token-info-logo{border-radius:50%;flex-shrink:0}.token-info-details{display:flex;flex-direction:column;gap:2px;min-width:0}.token-info-name{font-size:.8em;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.token-info-balance{font-size:.75em;color:#4b5563}.token-info-usd{color:#0b3988;font-weight:500}.action-form-field-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.action-form-field-header .action-form-field-label{margin-bottom:0;font-size:12px}.action-form-pct-btns{display:inline-flex;gap:4px}.action-form-pct-btn{padding:1px 6px;font-size:.7em;font-weight:600;color:#0b3988;background:#eef2ff;border:1px solid #c7d2fe;border-radius:4px;cursor:pointer;transition:all .15s}@media(min-width:640px){.action-form-pct-btn:hover:not(:disabled){background:#0b3988;color:#fff}}.action-form-pct-btn:disabled{opacity:.5;cursor:not-allowed}.action-form-max-btn{font-weight:700}.action-form-nft-info{margin-bottom:10px;text-align:center;display:flex;align-items:center;justify-content:center}.nft-info-image{width:80px;height:80px;border-radius:8px;object-fit:contain;background:#e5e7eb;padding:4px}.scroll-to-bottom-btn{position:absolute;bottom:16px;right:20px;background:#1a1a1dd6;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:50%;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000040;z-index:20;transition:background .15s,transform .15s,box-shadow .15s;animation:fadeInUp .18s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:640px){.scroll-to-bottom-btn:hover{background:#2d2d35;box-shadow:0 6px 16px #0000004d;transform:scale(1.08)}}.scroll-to-bottom-btn:active{transform:scale(.96)}")),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
- (function(bt,P){typeof exports=="object"&&typeof module<"u"?P(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],P):(bt=typeof globalThis<"u"?globalThis:bt||self,P(bt.ChatWidgetSDK={},bt.jsxRuntime,bt.React))})(this,(function(bt,P,te){"use strict";const zs="data:image/png;base64,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",go={en:{chatTitle:"Keyring Agent",closeChat:"Close chat",messagePlaceholder:"Message ....",sendMessage:"Send message",botIsTyping:"Bot is typing",canIHelpYou:"Can I help you with anything?",replyToMessage:"Reply to message",replyingTo:"Replying to",replyingToYou:"You",replyingToAgent:"Keyring Agent",cancelReply:"Cancel reply",suggestionAskText:"Ask a question",suggestionAskUserMessage:"I have a question",suggestionAskBotReply:"Ask me anything",suggestionBuyText:"Buy trending token",walletConnectedChainUnsupported:"Your wallet is connected but the chain is not supported for trading. Please switch to a supported chain to see trending tokens.",walletNotConnected:"Please connect your wallet to see trending tokens.",actionProcessing:"⏳ Processing transaction...",actionSuccess:"✅ Transaction completed",actionFail:"❌ Action cancelled or failed",txSubmitted:"⏳ Transaction submitted. Waiting for confirmation...",txConfirmed:"✅ Transaction confirmed!",txReverted:"❌ Transaction reverted on-chain.",txTimeout:"⚠️ Transaction submitted but confirmation timed out. Please check manually.",txSuccessful:"✅ Transaction successful!",txFailed:"❌ Transaction failed. Please try again.",txNoHandler:"⚠️ No transaction handler configured.",txInsufficientGas:"⚠️ **Insufficient {symbol} for gas!** You have {balance} {symbol} but need ~{fee} {symbol} for the transaction fee. Please top up your wallet and try again.",txError:"❌ Error: {message}",swapConfirmButton:"Confirm",swapConfirmValue:"Confirm swap",swapReadyToProceed:"Ready to proceed with the swap?",swapEstimationError:"⚠️ Unable to get swap estimation. Error: {error}",formCancel:"Cancel",formExecute:"Execute",formProcessing:"⏳ Processing...",formBalance:"Balance:",formTokenNotFound:"Token not found in your wallet.",formNoBalance:"You have no {symbol} balance in your wallet.",formInsufficientBalance:"Insufficient balance. Spendable: {balance} {symbol}",formFieldRequired:"{field} is required",formInvalidAddress:"Invalid address (0x + 40 hex chars)",formMustBePositive:"Must be a positive number",formMustBeValidNumber:"Must be a valid number",openChat:"Open chat",openChatTitle:"Open chat support",walletBalanceSpendable:"This is the spendable balance of your wallet on {chain} chain. Please choose the coins you want to use for this trade.",walletNoTokensFound:"Sorry, I couldn't find any tokens in your wallet on {chain} chain. Please make sure you have some tokens to trade.",walletFetchFailed:"Sorry, I could not fetch your wallet balance. Please try again.",walletFetchError:"Sorry, I encountered an error fetching your wallet balance.",insufficientFeeToken:"Insufficient fee. Please ensure you have enough {symbol} to cover the transaction fees, or select a different token.",selectAmountOf:`Select the amount of {symbol} to use:
2
+ (function(wt,P){typeof exports=="object"&&typeof module<"u"?P(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],P):(wt=typeof globalThis<"u"?globalThis:wt||self,P(wt.ChatWidgetSDK={},wt.jsxRuntime,wt.React))})(this,(function(wt,P,te){"use strict";const Vs="data:image/png;base64,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",mo={en:{chatTitle:"Keyring Agent",closeChat:"Close chat",messagePlaceholder:"Message ....",sendMessage:"Send message",botIsTyping:"Bot is typing",canIHelpYou:"Can I help you with anything?",replyToMessage:"Reply to message",replyingTo:"Replying to",replyingToYou:"You",replyingToAgent:"Keyring Agent",cancelReply:"Cancel reply",suggestionAskText:"Ask a question",suggestionAskUserMessage:"I have a question",suggestionAskBotReply:"Ask me anything",suggestionBuyText:"Buy trending token",walletConnectedChainUnsupported:"Your wallet is connected but the chain is not supported for trading. Please switch to a supported chain to see trending tokens.",walletNotConnected:"Please connect your wallet to see trending tokens.",actionProcessing:"⏳ Processing transaction...",actionSuccess:"✅ Transaction completed",actionFail:"❌ Action cancelled or failed",txSubmitted:"⏳ Transaction submitted. Waiting for confirmation...",txConfirmed:"✅ Transaction confirmed!",txReverted:"❌ Transaction reverted on-chain.",txTimeout:"⚠️ Transaction submitted but confirmation timed out. Please check manually.",txSuccessful:"✅ Transaction successful!",txFailed:"❌ Transaction failed. Please try again.",txNoHandler:"⚠️ No transaction handler configured.",txInsufficientGas:"⚠️ **Insufficient {symbol} for gas!** You have {balance} {symbol} but need ~{fee} {symbol} for the transaction fee. Please top up your wallet and try again.",txError:"❌ Error: {message}",swapConfirmButton:"Confirm",swapConfirmValue:"Confirm swap",swapReadyToProceed:"Ready to proceed with the swap?",swapEstimationError:"⚠️ Unable to get swap estimation. Error: {error}",formCancel:"Cancel",formExecute:"Execute",formProcessing:"⏳ Processing...",formBalance:"Balance:",formTokenNotFound:"Token not found in your wallet.",formNoBalance:"You have no {symbol} balance in your wallet.",formInsufficientBalance:"Insufficient balance. Spendable: {balance} {symbol}",formFieldRequired:"{field} is required",formInvalidAddress:"Invalid address (0x + 40 hex chars)",formMustBePositive:"Must be a positive number",formMustBeValidNumber:"Must be a valid number",openChat:"Open chat",openChatTitle:"Open chat support",walletBalanceSpendable:"This is the spendable balance of your wallet on {chain} chain. Please choose the coins you want to use for this trade.",walletNoTokensFound:"Sorry, I couldn't find any tokens in your wallet on {chain} chain. Please make sure you have some tokens to trade.",walletFetchFailed:"Sorry, I could not fetch your wallet balance. Please try again.",walletFetchError:"Sorry, I encountered an error fetching your wallet balance.",insufficientFeeToken:"Insufficient fee. Please ensure you have enough {symbol} to cover the transaction fees, or select a different token.",selectAmountOf:`Select the amount of {symbol} to use:
3
3
 
4
4
  Spendable: {balance} {symbol}`,swapFeeWarning:`
5
5
  ⚠️ **Insufficient {symbol} for fees!**
@@ -74,35 +74,35 @@ Select a token to interact with:`,viewBalancesEmpty:"You don't have any tokens i
74
74
 
75
75
  {list}
76
76
 
77
- 选择要操作的代币:`,viewBalancesEmpty:"您的钱包在此链上没有任何代币。",viewBalancesFetchError:"获取余额时遇到错误,请重试。",buttonSendToken:"发送{symbol}",buttonSwapToken:"兑换{symbol}",buttonBuyMoreToken:"购买更多{symbol}",actionSendNativeLabel:"发送原生代币",actionSendNativeDesc:"发送原生代币(ETH、BNB、MATIC 等)到某个地址",actionSendTokenLabel:"发送代币(ERC20)",actionSendTokenDesc:"将 ERC20 代币发送到某个地址",actionSwapTokenLabel:"兑换代币",actionSwapTokenDesc:"将一种代币兑换为另一种代币",actionApproveTokenLabel:"授权代币",actionApproveTokenDesc:"授权某地址使用您的代币",actionWrapNativeLabel:"包装原生代币",actionWrapNativeDesc:"包装原生代币(ETH → WETH)",actionUnwrapNativeLabel:"解包原生代币",actionUnwrapNativeDesc:"解包原生代币(WETH → ETH)",actionSendNftLabel:"发送 NFT",actionSendNftDesc:"将 ERC721 或 ERC1155 NFT 转移到另一个地址",fieldToAddress:"收款地址",fieldAmount:"数量",fieldTokenContract:"代币合约",fieldTokenSymbol:"代币符号",fieldDecimals:"小数位数",fieldTokenIn:"源代币",fieldTokenInSymbol:"源代币符号",fieldTokenOut:"目标代币",fieldTokenOutSymbol:"目标代币符号",fieldTokenInDecimals:"源代币小数位",fieldTokenOutDecimals:"目标代币小数位",fieldSpenderAddress:"授权地址",fieldAmountUnlimited:"数量(留空 = 无限授权)",fieldNftContract:"NFT 合约",fieldTokenId:"Token ID",fieldTokenStandard:"代币标准",fieldNftName:"NFT 名称",formMustBePositiveInteger:"必须是正整数",formAmountExceedsNft:"数量不能超过可用余额 {max}",receivedButtonValue:"已收到:{value}",actionExecutedFor:'操作 "{action}" 已为 {value} 执行',buyTokenHelp:"我来帮您购买 {symbol}。让我展示您可用于交易的代币。",tokenNotFoundOnChain:'在此链上找不到代币 "{symbol}"。以下是您可以购买的热门代币:',swapPreparing:"正在准备您的兑换...",swapConfirmYes:"是",swapChooseFrom:"请选择您要兑换的源代币:",swapChooseTo:"您要兑换 {symbol}。请选择您想要接收的代币:",swapNeedDetails:'我需要更多兑换详情。请指定您要兑换的代币(例如:"兑换 1 ETH 到 USDC")。',viewNftsLoading:"让我展示您的 NFT 收藏!",sendTokenChoose:"您想发送哪种代币?",sendNftChoose:"您想发送哪个 NFT?",swapChooseToken:"您想兑换哪种代币?以下是您当前的余额:",spendable:"可用"}};function wo(e,t){return go[t]?.[e]??go.en[e]??e}function Js(e,t){return e.replace(/\{(\w+)\}/g,(n,o)=>t[o]??`{${o}}`)}const bo=te.createContext(void 0),js=({children:e,initialLanguage:t="en"})=>{const[n,o]=te.useState(t);te.useEffect(()=>{t&&o(t)},[t]);const s=te.useCallback(r=>wo(r,n),[n]),a=te.useCallback((r,i)=>Js(wo(r,n),i),[n]);return P.jsx(bo.Provider,{value:{language:n,setLanguage:o,t:s,ti:a},children:e})},Nn=()=>{const e=te.useContext(bo);if(!e)throw new Error("useLanguage must be used within a LanguageProvider");return e},qs=te.memo(({onClick:e,buttonSize:t=56})=>{const{t:n}=Nn(),o=s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),e())};return P.jsx("button",{className:"chat-button",onClick:e,onKeyDown:o,"aria-label":n("openChat"),title:n("openChatTitle"),type:"button",children:P.jsx("img",{src:zs,width:t,height:t,alt:"Ask AI"})})});function ut(e){const t={formatters:void 0,fees:void 0,serializers:void 0,...e};function n(o){return s=>{const a=typeof s=="function"?s(o):s,r={...o,...a};return Object.assign(r,{extend:n(r)})}}return Object.assign(t,{extend:n(t)})}const yo="2.45.1";let Bn={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,version:`viem@${yo}`};class me extends Error{constructor(t,n={}){const o=n.cause instanceof me?n.cause.details:n.cause?.message?n.cause.message:n.details,s=n.cause instanceof me&&n.cause.docsPath||n.docsPath,a=Bn.getDocsUrl?.({...n,docsPath:s}),r=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...a?[`Docs: ${a}`]:[],...o?[`Details: ${o}`]:[],...Bn.version?[`Version: ${Bn.version}`]:[]].join(`
78
- `);super(r,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=o,this.docsPath=s,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=yo}walk(t){return Ao(this,t)}}function Ao(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Ao(e.cause,t):t?null:e}class Fn extends me{constructor({max:t,min:n,signed:o,size:s,value:a}){super(`Number "${a}" is not in safe ${s?`${s*8}-bit ${o?"signed":"unsigned"} `:""}integer range ${t?`(${n} to ${t})`:`(above ${n})`}`,{name:"IntegerOutOfRangeError"})}}class Qs extends me{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function Lt(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function je(e){return Lt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function dn(e,{dir:t="left"}={}){let n=typeof e=="string"?e.replace("0x",""):e,o=0;for(let s=0;s<n.length-1&&n[t==="left"?s:n.length-s-1].toString()==="0";s++)o++;return n=t==="left"?n.slice(o):n.slice(0,n.length-o),typeof e=="string"?(n.length===1&&t==="right"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}class ko extends me{constructor({offset:t,position:n,size:o}){super(`Slice ${n==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${o}).`,{name:"SliceOffsetOutOfBoundsError"})}}class vo extends me{constructor({size:t,targetSize:n,type:o}){super(`${o.charAt(0).toUpperCase()}${o.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`,{name:"SizeExceedsPaddingSizeError"})}}function Ut(e,{dir:t,size:n=32}={}){return typeof e=="string"?yt(e,{dir:t,size:n}):Xs(e,{dir:t,size:n})}function yt(e,{dir:t,size:n=32}={}){if(n===null)return e;const o=e.replace("0x","");if(o.length>n*2)throw new vo({size:Math.ceil(o.length/2),targetSize:n,type:"hex"});return`0x${o[t==="right"?"padEnd":"padStart"](n*2,"0")}`}function Xs(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new vo({size:e.length,targetSize:n,type:"bytes"});const o=new Uint8Array(n);for(let s=0;s<n;s++){const a=t==="right";o[a?s:n-s-1]=e[a?s:e.length-s-1]}return o}const Ks=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Rt(e,t={}){return typeof e=="number"||typeof e=="bigint"?de(e,t):typeof e=="string"?Co(e,t):typeof e=="boolean"?To(e,t):ft(e,t)}function To(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(Mt(n,{size:t.size}),Ut(n,{size:t.size})):n}function ft(e,t={}){let n="";for(let s=0;s<e.length;s++)n+=Ks[e[s]];const o=`0x${n}`;return typeof t.size=="number"?(Mt(o,{size:t.size}),Ut(o,{dir:"right",size:t.size})):o}function de(e,t={}){const{signed:n,size:o}=t,s=BigInt(e);let a;o?n?a=(1n<<BigInt(o)*8n-1n)-1n:a=2n**(BigInt(o)*8n)-1n:typeof e=="number"&&(a=BigInt(Number.MAX_SAFE_INTEGER));const r=typeof a=="bigint"&&n?-a-1n:0;if(a&&s>a||s<r){const l=typeof e=="bigint"?"n":"";throw new Fn({max:a?`${a}${l}`:void 0,min:`${r}${l}`,signed:n,size:o,value:`${e}${l}`})}const i=`0x${(n&&s<0?(1n<<BigInt(o*8))+BigInt(s):s).toString(16)}`;return o?Ut(i,{size:o}):i}const Zs=new TextEncoder;function Co(e,t={}){const n=Zs.encode(e);return ft(n,t)}const _s=new TextEncoder;function Pn(e,t={}){return typeof e=="number"||typeof e=="bigint"?ea(e,t):typeof e=="boolean"?$s(e,t):Lt(e)?Et(e,t):So(e,t)}function $s(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),typeof t.size=="number"?(Mt(n,{size:t.size}),Ut(n,{size:t.size})):n}const pt={zero:48,nine:57,A:65,F:70,a:97,f:102};function Eo(e){if(e>=pt.zero&&e<=pt.nine)return e-pt.zero;if(e>=pt.A&&e<=pt.F)return e-(pt.A-10);if(e>=pt.a&&e<=pt.f)return e-(pt.a-10)}function Et(e,t={}){let n=e;t.size&&(Mt(n,{size:t.size}),n=Ut(n,{dir:"right",size:t.size}));let o=n.slice(2);o.length%2&&(o=`0${o}`);const s=o.length/2,a=new Uint8Array(s);for(let r=0,i=0;r<s;r++){const l=Eo(o.charCodeAt(i++)),k=Eo(o.charCodeAt(i++));if(l===void 0||k===void 0)throw new me(`Invalid byte sequence ("${o[i-2]}${o[i-1]}" in "${o}").`);a[r]=l*16+k}return a}function ea(e,t){const n=de(e,t);return Et(n)}function So(e,t={}){const n=_s.encode(e);return typeof t.size=="number"?(Mt(n,{size:t.size}),Ut(n,{dir:"right",size:t.size})):n}function Mt(e,{size:t}){if(je(e)>t)throw new Qs({givenSize:je(e),maxSize:t})}function Ht(e,t={}){const{signed:n}=t;t.size&&Mt(e,{size:t.size});const o=BigInt(e);if(!n)return o;const s=(e.length-2)/2,a=(1n<<BigInt(s)*8n-1n)-1n;return o<=a?o:o-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function un(e,t={}){const n=Ht(e,t),o=Number(n);if(!Number.isSafeInteger(o))throw new Fn({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:t.signed,size:t.size,value:`${n}n`});return o}function Dn(e,t){return({exclude:n,format:o})=>({exclude:n,format:(s,a)=>{const r=t(s,a);if(n)for(const i of n)delete r[i];return{...r,...o(s,a)}},type:e})}const xo={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function On(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?un(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?un(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?xo[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=na(e.authorizationList)),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof n.v=="bigint"){if(n.v===0n||n.v===27n)return 0;if(n.v===1n||n.v===28n)return 1;if(n.v>=35n)return n.v%2n===0n?1:0}})(),n.type==="legacy"&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),n.type==="eip2930"&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),n.type==="eip1559"&&delete n.maxFeePerBlobGas,n}const ta=Dn("transaction",On);function na(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function oa(e,t){const n=(e.transactions??[]).map(o=>typeof o=="string"?o:On(o));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const sa=Dn("block",oa);function aa(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):e.blockTimestamp===null?null:void 0,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}const ra={"0x0":"reverted","0x1":"success"};function ia(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(o=>aa(o)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?un(e.transactionIndex):null,status:e.status?ra[e.status]:null,type:e.type?xo[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const ca=Dn("transactionReceipt",ia),la={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function da(e,t){const n={};return typeof e.authorizationList<"u"&&(n.authorizationList=ua(e.authorizationList)),typeof e.accessList<"u"&&(n.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(n.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?n.blobs=e.blobs.map(o=>ft(o)):n.blobs=e.blobs),typeof e.data<"u"&&(n.data=e.data),e.account&&(n.from=e.account.address),typeof e.from<"u"&&(n.from=e.from),typeof e.gas<"u"&&(n.gas=de(e.gas)),typeof e.gasPrice<"u"&&(n.gasPrice=de(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(n.maxFeePerBlobGas=de(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(n.maxFeePerGas=de(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(n.maxPriorityFeePerGas=de(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(n.nonce=de(e.nonce)),typeof e.to<"u"&&(n.to=e.to),typeof e.type<"u"&&(n.type=la[e.type]),typeof e.value<"u"&&(n.value=de(e.value)),n}function ua(e){return e.map(t=>({address:t.address,r:t.r?de(BigInt(t.r)):t.r,s:t.s?de(BigInt(t.s)):t.s,chainId:de(t.chainId),nonce:de(t.nonce),...typeof t.yParity<"u"?{yParity:de(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:de(t.v)}:{}}))}const Wt=2n**256n-1n;function Vt(e){return typeof e[0]=="string"?St(e):fa(e)}function fa(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let o=0;for(const s of e)n.set(s,o),o+=s.length;return n}function St(e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}class Io extends me{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class pa extends me{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class ma extends me{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const ha={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ma({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new pa({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Io({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Io({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function No(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(ha);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function xt(e,t="hex"){const n=Bo(e),o=No(new Uint8Array(n.length));return n.encode(o),t==="hex"?ft(o.bytes):o.bytes}function Bo(e){return Array.isArray(e)?ga(e.map(t=>Bo(t))):wa(e)}function ga(e){const t=e.reduce((s,a)=>s+a.length,0),n=Fo(t);return{length:t<=55?1+t:1+n+t,encode(s){t<=55?s.pushByte(192+t):(s.pushByte(247+n),n===1?s.pushUint8(t):n===2?s.pushUint16(t):n===3?s.pushUint24(t):s.pushUint32(t));for(const{encode:a}of e)a(s)}}}function wa(e){const t=typeof e=="string"?Et(e):e,n=Fo(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(s){t.length===1&&t[0]<128?s.pushBytes(t):t.length<=55?(s.pushByte(128+t.length),s.pushBytes(t)):(s.pushByte(183+n),n===1?s.pushUint8(t.length):n===2?s.pushUint16(t.length):n===3?s.pushUint24(t.length):s.pushUint32(t.length),s.pushBytes(t))}}}function Fo(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new me("Length is too large.")}const ba={gwei:9,wei:18},ya={ether:-9,wei:9};function Le(e,t){let n=e.toString();const o=n.startsWith("-");o&&(n=n.slice(1)),n=n.padStart(t,"0");let[s,a]=[n.slice(0,n.length-t),n.slice(n.length-t)];return a=a.replace(/(0+)$/,""),`${o?"-":""}${s||"0"}${a?`.${a}`:""}`}function Aa(e,t="wei"){return Le(e,ba[t])}function It(e,t="wei"){return Le(e,ya[t])}function Po(e){const t=Object.entries(e).map(([o,s])=>s===void 0||s===!1?null:[o,s]).filter(Boolean),n=t.reduce((o,[s])=>Math.max(o,s.length),0);return t.map(([o,s])=>` ${`${o}:`.padEnd(n+1)} ${s}`).join(`
79
- `)}class ka extends me{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class va extends me{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Po(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class Ta extends me{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function Ca(e){if(!e||e.length===0)return[];const t=[];for(const n of e){const{chainId:o,nonce:s,...a}=n,r=n.address;t.push([o?Rt(o):"0x",r,s?Rt(s):"0x",...Zt({},a)])}return t}function Do(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),o=typeof e.blobs[0]=="string"?e.blobs.map(a=>Et(a)):e.blobs,s=[];for(const a of o)s.push(Uint8Array.from(t.blobToKzgCommitment(a)));return n==="bytes"?s:s.map(a=>ft(a))}function Oo(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),o=typeof e.blobs[0]=="string"?e.blobs.map(r=>Et(r)):e.blobs,s=typeof e.commitments[0]=="string"?e.commitments.map(r=>Et(r)):e.commitments,a=[];for(let r=0;r<o.length;r++){const i=o[r],l=s[r];a.push(Uint8Array.from(t.computeBlobKzgProof(i,l)))}return n==="bytes"?a:a.map(r=>ft(r))}function Ea(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Lo(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function qt(e,...t){if(!Ea(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function fn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Uo(e,t){qt(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Sa(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Qt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Ln(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function rt(e,t){return e<<32-t|e>>>t}const xa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Ia(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Na(e){for(let t=0;t<e.length;t++)e[t]=Ia(e[t]);return e}const Ro=xa?e=>e:Na;function Ba(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Un(e){return typeof e=="string"&&(e=Ba(e)),qt(e),e}class Mo{}function Ho(e){const t=o=>e().update(Un(o)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Fa(e,t,n,o){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,o);const s=BigInt(32),a=BigInt(4294967295),r=Number(n>>s&a),i=Number(n&a),l=o?4:0,k=o?0:4;e.setUint32(t+l,r,o),e.setUint32(t+k,i,o)}function Pa(e,t,n){return e&t^~e&n}function Da(e,t,n){return e&t^e&n^t&n}class Oa extends Mo{constructor(t,n,o,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=o,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Ln(this.buffer)}update(t){fn(this),t=Un(t),qt(t);const{view:n,buffer:o,blockLen:s}=this,a=t.length;for(let r=0;r<a;){const i=Math.min(s-this.pos,a-r);if(i===s){const l=Ln(t);for(;s<=a-r;r+=s)this.process(l,r);continue}o.set(t.subarray(r,r+i),this.pos),this.pos+=i,r+=i,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){fn(this),Uo(t,this),this.finished=!0;const{buffer:n,view:o,blockLen:s,isLE:a}=this;let{pos:r}=this;n[r++]=128,Qt(this.buffer.subarray(r)),this.padOffset>s-r&&(this.process(o,0),r=0);for(let Y=r;Y<s;Y++)n[Y]=0;Fa(o,s-8,BigInt(this.length*8),a),this.process(o,0);const i=Ln(t),l=this.outputLen;if(l%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const k=l/4,D=this.get();if(k>D.length)throw new Error("_sha2: outputLen bigger than state");for(let Y=0;Y<k;Y++)i.setUint32(4*Y,D[Y],a)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const o=t.slice(0,n);return this.destroy(),o}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:n,buffer:o,length:s,finished:a,destroyed:r,pos:i}=this;return t.destroyed=r,t.finished=a,t.length=s,t.pos=i,s%n&&t.buffer.set(o),t}clone(){return this._cloneInto()}}const At=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),pn=BigInt(2**32-1),Wo=BigInt(32);function La(e,t=!1){return t?{h:Number(e&pn),l:Number(e>>Wo&pn)}:{h:Number(e>>Wo&pn)|0,l:Number(e&pn)|0}}function Ua(e,t=!1){const n=e.length;let o=new Uint32Array(n),s=new Uint32Array(n);for(let a=0;a<n;a++){const{h:r,l:i}=La(e[a],t);[o[a],s[a]]=[r,i]}return[o,s]}const Ra=(e,t,n)=>e<<n|t>>>32-n,Ma=(e,t,n)=>t<<n|e>>>32-n,Ha=(e,t,n)=>t<<n-32|e>>>64-n,Wa=(e,t,n)=>e<<n-32|t>>>64-n,Va=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),kt=new Uint32Array(64);class Ga extends Oa{constructor(t=32){super(64,t,8,!1),this.A=At[0]|0,this.B=At[1]|0,this.C=At[2]|0,this.D=At[3]|0,this.E=At[4]|0,this.F=At[5]|0,this.G=At[6]|0,this.H=At[7]|0}get(){const{A:t,B:n,C:o,D:s,E:a,F:r,G:i,H:l}=this;return[t,n,o,s,a,r,i,l]}set(t,n,o,s,a,r,i,l){this.A=t|0,this.B=n|0,this.C=o|0,this.D=s|0,this.E=a|0,this.F=r|0,this.G=i|0,this.H=l|0}process(t,n){for(let Y=0;Y<16;Y++,n+=4)kt[Y]=t.getUint32(n,!1);for(let Y=16;Y<64;Y++){const g=kt[Y-15],A=kt[Y-2],y=rt(g,7)^rt(g,18)^g>>>3,T=rt(A,17)^rt(A,19)^A>>>10;kt[Y]=T+kt[Y-7]+y+kt[Y-16]|0}let{A:o,B:s,C:a,D:r,E:i,F:l,G:k,H:D}=this;for(let Y=0;Y<64;Y++){const g=rt(i,6)^rt(i,11)^rt(i,25),A=D+g+Pa(i,l,k)+Va[Y]+kt[Y]|0,T=(rt(o,2)^rt(o,13)^rt(o,22))+Da(o,s,a)|0;D=k,k=l,l=i,i=r+A|0,r=a,a=s,s=o,o=A+T|0}o=o+this.A|0,s=s+this.B|0,a=a+this.C|0,r=r+this.D|0,i=i+this.E|0,l=l+this.F|0,k=k+this.G|0,D=D+this.H|0,this.set(o,s,a,r,i,l,k,D)}roundClean(){Qt(kt)}destroy(){this.set(0,0,0,0,0,0,0,0),Qt(this.buffer)}}const Ya=Ho(()=>new Ga);function za(e,t){return Ya(Lt(e,{strict:!1})?Pn(e):e)}function Ja(e){const{commitment:t,version:n=1}=e,o=e.to??(typeof t=="string"?"hex":"bytes"),s=za(t);return s.set([n],0),o==="bytes"?s:ft(s)}function ja(e){const{commitments:t,version:n}=e,o=e.to??(typeof t[0]=="string"?"hex":"bytes"),s=[];for(const a of t)s.push(Ja({commitment:a,to:o,version:n}));return s}const Vo=6,Go=32,Rn=4096,Yo=Go*Rn,zo=Yo*Vo-1-1*Rn*Vo,Jo=1;class qa extends me{constructor({maxSize:t,size:n}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${n} bytes`],name:"BlobSizeTooLargeError"})}}class jo extends me{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class Qa extends me{constructor({hash:t,size:n}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${n}`],name:"InvalidVersionedHashSizeError"})}}class Xa extends me{constructor({hash:t,version:n}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${Jo}`,`Received: ${n}`],name:"InvalidVersionedHashVersionError"})}}function Ka(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),n=typeof e.data=="string"?Et(e.data):e.data,o=je(n);if(!o)throw new jo;if(o>zo)throw new qa({maxSize:zo,size:o});const s=[];let a=!0,r=0;for(;a;){const i=No(new Uint8Array(Yo));let l=0;for(;l<Rn;){const k=n.slice(r,r+(Go-1));if(i.pushByte(0),i.pushBytes(k),k.length<31){i.pushByte(128),a=!1;break}l++,r+=31}s.push(i)}return t==="bytes"?s.map(i=>i.bytes):s.map(i=>ft(i.bytes))}function Za(e){const{data:t,kzg:n,to:o}=e,s=e.blobs??Ka({data:t,to:o}),a=e.commitments??Do({blobs:s,kzg:n,to:o}),r=e.proofs??Oo({blobs:s,commitments:a,kzg:n,to:o}),i=[];for(let l=0;l<s.length;l++)i.push({blob:s[l],commitment:a[l],proof:r[l]});return i}class it extends me{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class mn extends me{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Gt extends me{constructor({cause:t,message:n}={}){const o=n?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${o?`with reason: ${o}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}}Object.defineProperty(Gt,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(Gt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class Nt extends me{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${It(n)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(Nt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class Mn extends me{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${It(n)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}}Object.defineProperty(Mn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class Hn extends me{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}}Object.defineProperty(Hn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class Wn extends me{constructor({cause:t,nonce:n}={}){super([`Nonce provided for the transaction ${n?`(${n}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
80
- `),{cause:t,name:"NonceTooLowError"})}}Object.defineProperty(Wn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class Vn extends me{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}}Object.defineProperty(Vn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class Gn extends me{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
81
- `),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(Gn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class Yn extends me{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(Yn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class zn extends me{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(zn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class Jn extends me{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(Jn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class Xt extends me{constructor({cause:t,maxPriorityFeePerGas:n,maxFeePerGas:o}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${n?` = ${It(n)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${o?` = ${It(o)} gwei`:""}).`].join(`
82
- `),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(Xt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class qo extends me{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}class Qo extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const n=super.get(t);return super.has(t)&&n!==void 0&&(this.delete(t),super.set(t,n)),n}set(t,n){if(super.set(t,n),this.maxSize&&this.size>this.maxSize){const o=this.keys().next().value;o&&this.delete(o)}return this}}const _a=BigInt(0),Kt=BigInt(1),$a=BigInt(2),er=BigInt(7),tr=BigInt(256),nr=BigInt(113),Xo=[],Ko=[],Zo=[];for(let e=0,t=Kt,n=1,o=0;e<24;e++){[n,o]=[o,(2*n+3*o)%5],Xo.push(2*(5*o+n)),Ko.push((e+1)*(e+2)/2%64);let s=_a;for(let a=0;a<7;a++)t=(t<<Kt^(t>>er)*nr)%tr,t&$a&&(s^=Kt<<(Kt<<BigInt(a))-Kt);Zo.push(s)}const _o=Ua(Zo,!0),or=_o[0],sr=_o[1],$o=(e,t,n)=>n>32?Ha(e,t,n):Ra(e,t,n),es=(e,t,n)=>n>32?Wa(e,t,n):Ma(e,t,n);function ar(e,t=24){const n=new Uint32Array(10);for(let o=24-t;o<24;o++){for(let r=0;r<10;r++)n[r]=e[r]^e[r+10]^e[r+20]^e[r+30]^e[r+40];for(let r=0;r<10;r+=2){const i=(r+8)%10,l=(r+2)%10,k=n[l],D=n[l+1],Y=$o(k,D,1)^n[i],g=es(k,D,1)^n[i+1];for(let A=0;A<50;A+=10)e[r+A]^=Y,e[r+A+1]^=g}let s=e[2],a=e[3];for(let r=0;r<24;r++){const i=Ko[r],l=$o(s,a,i),k=es(s,a,i),D=Xo[r];s=e[D],a=e[D+1],e[D]=l,e[D+1]=k}for(let r=0;r<50;r+=10){for(let i=0;i<10;i++)n[i]=e[r+i];for(let i=0;i<10;i++)e[r+i]^=~n[(i+2)%10]&n[(i+4)%10]}e[0]^=or[o],e[1]^=sr[o]}Qt(n)}class jn extends Mo{constructor(t,n,o,s=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=o,this.enableXOF=s,this.rounds=a,Lo(o),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Sa(this.state)}clone(){return this._cloneInto()}keccak(){Ro(this.state32),ar(this.state32,this.rounds),Ro(this.state32),this.posOut=0,this.pos=0}update(t){fn(this),t=Un(t),qt(t);const{blockLen:n,state:o}=this,s=t.length;for(let a=0;a<s;){const r=Math.min(n-this.pos,s-a);for(let i=0;i<r;i++)o[this.pos++]^=t[a++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:o,blockLen:s}=this;t[o]^=n,(n&128)!==0&&o===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){fn(this,!1),qt(t),this.finish();const n=this.state,{blockLen:o}=this;for(let s=0,a=t.length;s<a;){this.posOut>=o&&this.keccak();const r=Math.min(o-this.posOut,a-s);t.set(n.subarray(this.posOut,this.posOut+r),s),this.posOut+=r,s+=r}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Lo(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Uo(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Qt(this.state)}_cloneInto(t){const{blockLen:n,suffix:o,outputLen:s,rounds:a,enableXOF:r}=this;return t||(t=new jn(n,o,s,r,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=o,t.outputLen=s,t.enableXOF=r,t.destroyed=this.destroyed,t}}const rr=(e,t,n)=>Ho(()=>new jn(t,e,n)),ir=rr(1,136,256/8);function ts(e,t){const n=t||"hex",o=ir(Lt(e,{strict:!1})?Pn(e):e);return n==="bytes"?o:Rt(o)}const qn=new Qo(8192);function cr(e,t){if(qn.has(`${e}.${t}`))return qn.get(`${e}.${t}`);const n=e.substring(2).toLowerCase(),o=ts(So(n),"bytes"),s=n.split("");for(let r=0;r<40;r+=2)o[r>>1]>>4>=8&&s[r]&&(s[r]=s[r].toUpperCase()),(o[r>>1]&15)>=8&&s[r+1]&&(s[r+1]=s[r+1].toUpperCase());const a=`0x${s.join("")}`;return qn.set(`${e}.${t}`,a),a}const lr=/^0x[a-fA-F0-9]{40}$/,Qn=new Qo(8192);function Me(e,t){const{strict:n=!0}=t??{},o=`${e}.${n}`;if(Qn.has(o))return Qn.get(o);const s=lr.test(e)?e.toLowerCase()===e?!0:n?cr(e)===e:!0:!1;return Qn.set(o,s),s}function Xn(e,t,n,{strict:o}={}){return Lt(e,{strict:!1})?ur(e,t,n,{strict:o}):dr(e,t,n,{strict:o})}function ns(e,t){if(typeof t=="number"&&t>0&&t>je(e)-1)throw new ko({offset:t,position:"start",size:je(e)})}function os(e,t,n){if(typeof t=="number"&&typeof n=="number"&&je(e)!==n-t)throw new ko({offset:n,position:"end",size:je(e)})}function dr(e,t,n,{strict:o}={}){ns(e,t);const s=e.slice(t,n);return o&&os(s,t,n),s}function ur(e,t,n,{strict:o}={}){ns(e,t);const s=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return o&&os(s,t,n),s}function fr(e){const{authorizationList:t}=e;if(t)for(const n of t){const{chainId:o}=n,s=n.address;if(!Me(s))throw new it({address:s});if(o<0)throw new mn({chainId:o})}Kn(e)}function pr(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new jo;for(const n of t){const o=je(n),s=un(Xn(n,0,1));if(o!==32)throw new Qa({hash:n,size:o});if(s!==Jo)throw new Xa({hash:n,version:s})}}Kn(e)}function Kn(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new mn({chainId:t});if(s&&!Me(s))throw new it({address:s});if(o&&o>Wt)throw new Nt({maxFeePerGas:o});if(n&&o&&n>o)throw new Xt({maxFeePerGas:o,maxPriorityFeePerGas:n})}function mr(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:o,maxFeePerGas:s,to:a}=e;if(t<=0)throw new mn({chainId:t});if(a&&!Me(a))throw new it({address:a});if(n||s)throw new me("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(o&&o>Wt)throw new Nt({maxFeePerGas:o})}function hr(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:o,maxFeePerGas:s,to:a}=e;if(a&&!Me(a))throw new it({address:a});if(typeof t<"u"&&t<=0)throw new mn({chainId:t});if(n||s)throw new me("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(o&&o>Wt)throw new Nt({maxFeePerGas:o})}function gr(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new va({transaction:e})}function hn(e){if(!e||e.length===0)return[];const t=[];for(let n=0;n<e.length;n++){const{address:o,storageKeys:s}=e[n];for(let a=0;a<s.length;a++)if(s[a].length-2!==64)throw new Ta({storageKey:s[a]});if(!Me(o,{strict:!1}))throw new it({address:o});t.push([o,s])}return t}function wr(e,t){const n=gr(e);return n==="eip1559"?Ar(e,t):n==="eip2930"?kr(e,t):n==="eip4844"?yr(e,t):n==="eip7702"?br(e,t):vr(e,t)}function br(e,t){const{authorizationList:n,chainId:o,gas:s,nonce:a,to:r,value:i,maxFeePerGas:l,maxPriorityFeePerGas:k,accessList:D,data:Y}=e;fr(e);const g=hn(D),A=Ca(n);return St(["0x04",xt([de(o),a?de(a):"0x",k?de(k):"0x",l?de(l):"0x",s?de(s):"0x",r??"0x",i?de(i):"0x",Y??"0x",g,A,...Zt(e,t)])])}function yr(e,t){const{chainId:n,gas:o,nonce:s,to:a,value:r,maxFeePerBlobGas:i,maxFeePerGas:l,maxPriorityFeePerGas:k,accessList:D,data:Y}=e;pr(e);let g=e.blobVersionedHashes,A=e.sidecars;if(e.blobs&&(typeof g>"u"||typeof A>"u")){const W=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(ge=>ft(ge)),J=e.kzg,he=Do({blobs:W,kzg:J});if(typeof g>"u"&&(g=ja({commitments:he})),typeof A>"u"){const ge=Oo({blobs:W,commitments:he,kzg:J});A=Za({blobs:W,commitments:he,proofs:ge})}}const y=hn(D),T=[de(n),s?de(s):"0x",k?de(k):"0x",l?de(l):"0x",o?de(o):"0x",a??"0x",r?de(r):"0x",Y??"0x",y,i?de(i):"0x",g??[],...Zt(e,t)],B=[],ve=[],N=[];if(A)for(let W=0;W<A.length;W++){const{blob:J,commitment:he,proof:ge}=A[W];B.push(J),ve.push(he),N.push(ge)}return St(["0x03",xt(A?[T,B,ve,N]:T)])}function Ar(e,t){const{chainId:n,gas:o,nonce:s,to:a,value:r,maxFeePerGas:i,maxPriorityFeePerGas:l,accessList:k,data:D}=e;Kn(e);const Y=hn(k),g=[de(n),s?de(s):"0x",l?de(l):"0x",i?de(i):"0x",o?de(o):"0x",a??"0x",r?de(r):"0x",D??"0x",Y,...Zt(e,t)];return St(["0x02",xt(g)])}function kr(e,t){const{chainId:n,gas:o,data:s,nonce:a,to:r,value:i,accessList:l,gasPrice:k}=e;mr(e);const D=hn(l),Y=[de(n),a?de(a):"0x",k?de(k):"0x",o?de(o):"0x",r??"0x",i?de(i):"0x",s??"0x",D,...Zt(e,t)];return St(["0x01",xt(Y)])}function vr(e,t){const{chainId:n=0,gas:o,data:s,nonce:a,to:r,value:i,gasPrice:l}=e;hr(e);let k=[a?de(a):"0x",l?de(l):"0x",o?de(o):"0x",r??"0x",i?de(i):"0x",s??"0x"];if(t){const D=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+t.v-27n);const A=27n+(t.v===27n?0n:1n);if(t.v!==A)throw new ka({v:t.v});return A})(),Y=dn(t.r),g=dn(t.s);k=[...k,de(D),Y==="0x00"?"0x":Y,g==="0x00"?"0x":g]}else n>0&&(k=[...k,de(n),"0x","0x"]);return xt(k)}function Zt(e,t){const n=t??e,{v:o,yParity:s}=n;if(typeof n.r>"u")return[];if(typeof n.s>"u")return[];if(typeof o>"u"&&typeof s>"u")return[];const a=dn(n.r),r=dn(n.s);return[typeof s=="number"?s?de(1):"0x":o===0n?"0x":o===1n?de(1):o===27n?"0x":de(1),a==="0x00"?"0x":a,r==="0x00"?"0x":r]}const Tr={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},Cr={block:sa({format(e){return{transactions:e.transactions?.map(n=>{if(typeof n=="string")return n;const o=On(n);return o.typeHex==="0x7e"&&(o.isSystemTx=n.isSystemTx,o.mint=n.mint?Ht(n.mint):void 0,o.sourceHash=n.sourceHash,o.type="deposit"),o}),stateRoot:e.stateRoot}}}),transaction:ta({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Ht(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:ca({format(e){return{l1GasPrice:e.l1GasPrice?Ht(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Ht(e.l1GasUsed):null,l1Fee:e.l1Fee?Ht(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function Er(e,t){return Ir(e)?xr(e):wr(e,t)}const Sr={transaction:Er};function xr(e){Nr(e);const{sourceHash:t,data:n,from:o,gas:s,isSystemTx:a,mint:r,to:i,value:l}=e,k=[t,o,i??"0x",r?Rt(r):"0x",l?Rt(l):"0x",s?Rt(s):"0x",a?"0x1":"0x",n??"0x"];return St(["0x7e",xt(k)])}function Ir(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function Nr(e){const{from:t,to:n}=e;if(t&&!Me(t))throw new it({address:t});if(n&&!Me(n))throw new it({address:n})}const gn={blockTime:2e3,contracts:Tr,formatters:Cr,serializers:Sr},Br=ut({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:250,rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),Fr=ut({id:43114,name:"Avalanche",blockTime:1700,nativeCurrency:{decimals:18,name:"Avalanche",symbol:"AVAX"},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},blockExplorers:{default:{name:"SnowTrace",url:"https://snowtrace.io",apiUrl:"https://api.snowtrace.io"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}}}),_t=1,ss=ut({...gn,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...gn.contracts,disputeGameFactory:{[_t]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[_t]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[_t]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[_t]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:_t});({...ss});const Pr=ut({id:56,name:"BNB Smart Chain",blockTime:750,nativeCurrency:{decimals:18,name:"BNB",symbol:"BNB"},rpcUrls:{default:{http:["https://56.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com",apiUrl:"https://api.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}}});function Zn(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}class Dr extends me{constructor({docsPath:t}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
83
- `),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}}function _n(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new Vr(e.type);return`${e.name}(${as(e.inputs,{includeName:t})})`}function as(e,{includeName:t=!1}={}){return e?e.map(n=>Or(n,{includeName:t})).join(t?", ":","):""}function Or(e,{includeName:t}){return e.type.startsWith("tuple")?`(${as(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}class Lr extends me{constructor({expectedLength:t,givenLength:n,type:o}){super([`ABI encoding array length mismatch for type ${o}.`,`Expected length: ${t}`,`Given length: ${n}`].join(`
84
- `),{name:"AbiEncodingArrayLengthMismatchError"})}}class Ur extends me{constructor({expectedSize:t,value:n}){super(`Size of bytes "${n}" (bytes${je(n)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class Rr extends me{constructor({expectedLength:t,givenLength:n}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${n}`].join(`
85
- `),{name:"AbiEncodingLengthMismatchError"})}}class rs extends me{constructor(t,{docsPath:n}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
86
- `),{docsPath:n,name:"AbiFunctionNotFoundError"})}}class Mr extends me{constructor(t,n){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${_n(t.abiItem)}\`, and`,`\`${n.type}\` in \`${_n(n.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}class Hr extends me{constructor(t,{docsPath:n}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
87
- `),{docsPath:n,name:"InvalidAbiEncodingType"})}}class Wr extends me{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
88
- `),{name:"InvalidArrayError"})}}class Vr extends me{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
89
- `),{name:"InvalidDefinitionTypeError"})}}const Gr=e=>ts(Pn(e));function Yr(e){return Gr(e)}function zr(e,t){return e.exec(t)?.groups}const is=/^tuple(?<array>(\[(\d*)\])*)$/;function $n(e){let t=e.type;if(is.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let s=0;s<n;s++){const a=e.components[s];t+=$n(a),s<n-1&&(t+=", ")}const o=zr(is,e.type);return t+=`)${o?.array||""}`,$n({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function $t(e){let t="";const n=e.length;for(let o=0;o<n;o++){const s=e[o];t+=$n(s),o!==n-1&&(t+=", ")}return t}function Jr(e){return e.type==="function"?`function ${e.name}(${$t(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${$t(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${$t(e.inputs)})`:e.type==="error"?`error ${e.name}(${$t(e.inputs)})`:e.type==="constructor"?`constructor(${$t(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}function jr(e){let t=!0,n="",o=0,s="",a=!1;for(let r=0;r<e.length;r++){const i=e[r];if(["(",")",","].includes(i)&&(t=!0),i==="("&&o++,i===")"&&o--,!!t){if(o===0){if(i===" "&&["event","function",""].includes(s))s="";else if(s+=i,i===")"){a=!0;break}continue}if(i===" "){e[r-1]!==","&&n!==","&&n!==",("&&(n="",t=!1);continue}s+=i,n+=i}}if(!a)throw new me("Unable to normalize signature.");return s}const qr=e=>{const t=typeof e=="string"?e:Jr(e);return jr(t)};function cs(e){return Yr(qr(e))}const ls=e=>Xn(cs(e),0,4),Qr=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function Xr(e,t){if(e.length!==t.length)throw new Rr({expectedLength:e.length,givenLength:t.length});const n=Kr({params:e,values:t}),o=to(n);return o.length===0?"0x":o}function Kr({params:e,values:t}){const n=[];for(let o=0;o<e.length;o++)n.push(eo({param:e[o],value:t[o]}));return n}function eo({param:e,value:t}){const n=si(e.type);if(n){const[o,s]=n;return _r(t,{length:o,param:{...e,type:s}})}if(e.type==="tuple")return oi(t,{param:e});if(e.type==="address")return Zr(t);if(e.type==="bool")return ei(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const o=e.type.startsWith("int"),[,,s="256"]=Qr.exec(e.type)??[];return ti(t,{signed:o,size:Number(s)})}if(e.type.startsWith("bytes"))return $r(t,{param:e});if(e.type==="string")return ni(t);throw new Hr(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function to(e){let t=0;for(let a=0;a<e.length;a++){const{dynamic:r,encoded:i}=e[a];r?t+=32:t+=je(i)}const n=[],o=[];let s=0;for(let a=0;a<e.length;a++){const{dynamic:r,encoded:i}=e[a];r?(n.push(de(t+s,{size:32})),o.push(i),s+=je(i)):n.push(i)}return Vt([...n,...o])}function Zr(e){if(!Me(e))throw new it({address:e});return{dynamic:!1,encoded:yt(e.toLowerCase())}}function _r(e,{length:t,param:n}){const o=t===null;if(!Array.isArray(e))throw new Wr(e);if(!o&&e.length!==t)throw new Lr({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let s=!1;const a=[];for(let r=0;r<e.length;r++){const i=eo({param:n,value:e[r]});i.dynamic&&(s=!0),a.push(i)}if(o||s){const r=to(a);if(o){const i=de(a.length,{size:32});return{dynamic:!0,encoded:a.length>0?Vt([i,r]):i}}if(s)return{dynamic:!0,encoded:r}}return{dynamic:!1,encoded:Vt(a.map(({encoded:r})=>r))}}function $r(e,{param:t}){const[,n]=t.type.split("bytes"),o=je(e);if(!n){let s=e;return o%32!==0&&(s=yt(s,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Vt([yt(de(o,{size:32})),s])}}if(o!==Number.parseInt(n,10))throw new Ur({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:yt(e,{dir:"right"})}}function ei(e){if(typeof e!="boolean")throw new me(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:yt(To(e))}}function ti(e,{signed:t,size:n=256}){if(typeof n=="number"){const o=2n**(BigInt(n)-(t?1n:0n))-1n,s=t?-o-1n:0n;if(e>o||e<s)throw new Fn({max:o.toString(),min:s.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:de(e,{size:32,signed:t})}}function ni(e){const t=Co(e),n=Math.ceil(je(t)/32),o=[];for(let s=0;s<n;s++)o.push(yt(Xn(t,s*32,(s+1)*32),{dir:"right"}));return{dynamic:!0,encoded:Vt([yt(de(je(t),{size:32})),...o])}}function oi(e,{param:t}){let n=!1;const o=[];for(let s=0;s<t.components.length;s++){const a=t.components[s],r=Array.isArray(e)?s:a.name,i=eo({param:a,value:e[r]});o.push(i),i.dynamic&&(n=!0)}return{dynamic:n,encoded:n?to(o):Vt(o.map(({encoded:s})=>s))}}function si(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}const ai=cs;function ri(e){const{abi:t,args:n=[],name:o}=e,s=Lt(o,{strict:!1}),a=t.filter(i=>s?i.type==="function"?ls(i)===o:i.type==="event"?ai(i)===o:!1:"name"in i&&i.name===o);if(a.length===0)return;if(a.length===1)return a[0];let r;for(const i of a){if(!("inputs"in i))continue;if(!n||n.length===0){if(!i.inputs||i.inputs.length===0)return i;continue}if(!i.inputs||i.inputs.length===0||i.inputs.length!==n.length)continue;if(n.every((k,D)=>{const Y="inputs"in i&&i.inputs[D];return Y?no(k,Y):!1})){if(r&&"inputs"in r&&r.inputs){const k=ds(i.inputs,r.inputs,n);if(k)throw new Mr({abiItem:i,type:k[0]},{abiItem:r,type:k[1]})}r=i}}return r||a[0]}function no(e,t){const n=typeof e,o=t.type;switch(o){case"address":return Me(e,{strict:!1});case"bool":return n==="boolean";case"function":return n==="string";case"string":return n==="string";default:return o==="tuple"&&"components"in t?Object.values(t.components).every((s,a)=>n==="object"&&no(Object.values(e)[a],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(o)?n==="number"||n==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(o)?n==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(o)?Array.isArray(e)&&e.every(s=>no(s,{...t,type:o.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function ds(e,t,n){for(const o in e){const s=e[o],a=t[o];if(s.type==="tuple"&&a.type==="tuple"&&"components"in s&&"components"in a)return ds(s.components,a.components,n[o]);const r=[s.type,a.type];if(r.includes("address")&&r.includes("bytes20")?!0:r.includes("address")&&r.includes("string")?Me(n[o],{strict:!1}):r.includes("address")&&r.includes("bytes")?Me(n[o],{strict:!1}):!1)return r}}function us(e){return e.reduce((t,{slot:n,value:o})=>`${t} ${n}: ${o}
90
- `,"")}function ii(e){return e.reduce((t,{address:n,...o})=>{let s=`${t} ${n}:
91
- `;return o.nonce&&(s+=` nonce: ${o.nonce}
92
- `),o.balance&&(s+=` balance: ${o.balance}
93
- `),o.code&&(s+=` code: ${o.code}
94
- `),o.state&&(s+=` state:
95
- `,s+=us(o.state)),o.stateDiff&&(s+=` stateDiff:
96
- `,s+=us(o.stateDiff)),s},` State Override:
97
- `).slice(0,-1)}class ci extends me{constructor(t,{account:n,docsPath:o,chain:s,data:a,gas:r,gasPrice:i,maxFeePerGas:l,maxPriorityFeePerGas:k,nonce:D,to:Y,value:g,stateOverride:A}){const y=n?Zn(n):void 0;let T=Po({from:y?.address,to:Y,value:typeof g<"u"&&`${Aa(g)} ${s?.nativeCurrency?.symbol||"ETH"}`,data:a,gas:r,gasPrice:typeof i<"u"&&`${It(i)} gwei`,maxFeePerGas:typeof l<"u"&&`${It(l)} gwei`,maxPriorityFeePerGas:typeof k<"u"&&`${It(k)} gwei`,nonce:D});A&&(T+=`
98
- ${ii(A)}`),super(t.shortMessage,{cause:t,docsPath:o,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",T].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}function li(e,t){const n=(e.details||"").toLowerCase(),o=e instanceof me?e.walk(s=>s?.code===Gt.code):e;return o instanceof me?new Gt({cause:e,message:o.details}):Gt.nodeMessage.test(n)?new Gt({cause:e,message:e.details}):Nt.nodeMessage.test(n)?new Nt({cause:e,maxFeePerGas:t?.maxFeePerGas}):Mn.nodeMessage.test(n)?new Mn({cause:e,maxFeePerGas:t?.maxFeePerGas}):Hn.nodeMessage.test(n)?new Hn({cause:e,nonce:t?.nonce}):Wn.nodeMessage.test(n)?new Wn({cause:e,nonce:t?.nonce}):Vn.nodeMessage.test(n)?new Vn({cause:e,nonce:t?.nonce}):Gn.nodeMessage.test(n)?new Gn({cause:e}):Yn.nodeMessage.test(n)?new Yn({cause:e,gas:t?.gas}):zn.nodeMessage.test(n)?new zn({cause:e,gas:t?.gas}):Jn.nodeMessage.test(n)?new Jn({cause:e}):Xt.nodeMessage.test(n)?new Xt({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new qo({cause:e})}function di(e,{docsPath:t,...n}){const o=(()=>{const s=li(e,n);return s instanceof qo?e:s})();return new ci(o,{docsPath:t,...n})}function ui(e,{format:t}){if(!t)return{};const n={};function o(a){const r=Object.keys(a);for(const i of r)i in e&&(n[i]=e[i]),a[i]&&typeof a[i]=="object"&&!Array.isArray(a[i])&&o(a[i])}const s=t(e||{});return o(s),n}function fi(e){const{account:t,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,a=t?Zn(t):void 0;if(a&&!Me(a.address))throw new it({address:a.address});if(s&&!Me(s))throw new it({address:s});if(n&&n>Wt)throw new Nt({maxFeePerGas:n});if(o&&n&&o>n)throw new Xt({maxFeePerGas:n,maxPriorityFeePerGas:o})}async function pi(e,t){const{account:n=e.account}=t;if(!n)throw new Dr;const o=Zn(n);try{const{accessList:s,blockNumber:a,blockTag:r,data:i,gas:l,gasPrice:k,maxFeePerGas:D,maxPriorityFeePerGas:Y,nonce:g,to:A,value:y,...T}=t,ve=(typeof a=="bigint"?de(a):void 0)||r;fi(t);const N=e.chain?.formatters?.transactionRequest?.format,J=(N||da)({...ui(T,{format:N}),account:o,accessList:s,data:i,gas:l,gasPrice:k,maxFeePerGas:D,maxPriorityFeePerGas:Y,nonce:g,to:A,value:y},"estimateGas"),{baseFeePerGas:he,gasLimit:ge,priorityFeePerGas:xe}=await e.request({method:"linea_estimateGas",params:ve?[J,ve]:[J]});return{baseFeePerGas:BigInt(he),gasLimit:BigInt(ge),priorityFeePerGas:BigInt(xe)}}catch(s){throw di(s,{...t,account:o,chain:e.chain})}}const mi={fees:{estimateFeesPerGas:fs,async maxPriorityFeePerGas({block:e,client:t,request:n}){const o=await fs({block:e,client:t,multiply:s=>s,request:n,type:"eip1559"});return o?.maxPriorityFeePerGas?o.maxPriorityFeePerGas:null}}};async function fs({client:e,multiply:t,request:n,type:o}){try{const s=await pi(e,{...n,account:n?.account}),{priorityFeePerGas:a}=s,i=t(BigInt(s.baseFeePerGas))+a;return o==="legacy"?{gasPrice:i}:{maxFeePerGas:i,maxPriorityFeePerGas:a}}catch{return null}}const hi=ut({...mi,id:59144,name:"Linea Mainnet",blockTime:2e3,nativeCurrency:{name:"Linea Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.linea.build"],webSocket:["wss://rpc.linea.build"]}},blockExplorers:{default:{name:"Etherscan",url:"https://lineascan.build",apiUrl:"https://api.lineascan.build/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:42},ensRegistry:{address:"0x50130b669B28C339991d8676FA73CF122a121267",blockCreated:6682888},ensUniversalResolver:{address:"0x4D41762915F83c76EcaF6776d9b08076aA32b492",blockCreated:22222151}},ensTlds:[".linea.eth"],testnet:!1}),gi=ut({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),en=1,wi=ut({...gn,id:10,name:"OP Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},blockExplorers:{default:{name:"Optimism Explorer",url:"https://optimistic.etherscan.io",apiUrl:"https://api-optimistic.etherscan.io/api"}},contracts:{...gn.contracts,disputeGameFactory:{[en]:{address:"0xe5965Ab5962eDc7477C8520243A95517CD252fA9"}},l2OutputOracle:{[en]:{address:"0xdfe97868233d1aa22e815a266982f2cf17685a27"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263},portal:{[en]:{address:"0xbEb5Fc579115071764c7423A4f12eDde41f106Ed"}},l1StandardBridge:{[en]:{address:"0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1"}}},sourceId:en}),bi=ut({id:137,name:"Polygon",blockTime:2e3,nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://polygonscan.com",apiUrl:"https://api.etherscan.io/v2/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}}}),ps="/docs/contract/encodeFunctionData";function yi(e){const{abi:t,args:n,functionName:o}=e;let s=t[0];if(o){const a=ri({abi:t,args:n,name:o});if(!a)throw new rs(o,{docsPath:ps});s=a}if(s.type!=="function")throw new rs(void 0,{docsPath:ps});return{abi:[s],functionName:ls(_n(s))}}function vt(e){const{args:t}=e,{abi:n,functionName:o}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:yi(e),s=n[0],a=o,r="inputs"in s&&s.inputs?Xr(s.inputs,t??[]):void 0;return St([a,r??"0x"])}const ct={1:{...gi,logo:"data:image/png;base64,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",chainId:1,chainType:"ether",chainTypeMoralis:"eth",tokenTrendingDefault:["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"]},10:{...wi,logo:"data:image/png;base64,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",chainId:10,chainType:"optimism",chainTypeMoralis:"optimism",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0x68f180fcce6836688e9084f035309e29bf0a2095","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},56:{...Pr,logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAOdEVYdFNvZnR3YXJlAEZpZ21hnrGWYwAACcRJREFUeAHlnU2IHMcVgF9V9+iPWTMbSJyIEGmTgwOJtR3QIZegWYgVmUBWOoQEQmIZcsjNziEHX6KNIaccvL75EIh0yCEnaQOJ7ZVhxxfjg8GzBoNtsLW66GBjdrVrS5Zmusr1eqbGPbszPdX1273+YFczy/z09KdXr+p1TRWBirN9PWnBCWjHETsFfVgASk6JP5/mAC1CoAVc/OQhsMM57BCArew+45sQw60+p5vwGXTnL3V3oMIQqBjbLyen4wZbJowkDKAtDvA0WARFCZldQvmNHqOb8+e7XagQlRCyfTNpxym7yClZti1gFsNI6vQIuTb/RLcDgQkmBJuiuMmeAU4uirsJVIBMDuUrvR59ff7J7hYEwLuQ7fUkiRm7DBF56kD7XyHEibnaS8nffIvxJiTLDRH/l7jZhhrhW4xzIdg0RU12hXDyLNQYX2KcCtl77QzmiJUqN01lkDmm+fN3roEjnAipa/NUgk4/JU+7iBYKlsGoiGP+NhxeGYgYqPK3775yxnozbC1CDkuuKAshfLX5xDt/BktYEYJNVCPi13lFxhO+wdwiEv6SjSbMWMhQxgb3PMLOc+QHf8r+ffjhSxAKW1KMhGSDPMI3QvaiUMaR7w+FfPRSUCkCUdQkS02D+pi2kKrJkNRdipaQqsqQ1FlKaSHZGAO7tRWVIamCFDFW+UnZnFJqHCITeNVlZI8Tj5HJPhAtPFd4zso8qZSQKvSmVGSMHh9YCp4rMYC8nl31VERZyO7NMy/UScboeeEjJWmIAbPqg5WEYDkk5AhcV8bo+aEjRZw71TLLzKQeOombysgTONErJfmZEZJVbQ+BjOz1wkZKa1gBL6RQyO7645chUNXWtozR64aV0p7VdE1tskLWqFzJyBOw+drpf04Wps0PmxohEWUrh1VG9j7hIqVV1OuaGCHDK363wDO+ZOQJFSkiwS9MSvATIwSjAzwTQkb2voEiZVqCPxAhIaIjlIw8ISKlD6IbvK8AeSBCfEeHDRm9O//NfoyOI0CkUJwwuI+xCPEdHbZkPHj3r9ntoz96HhonfwUmeI6UAz2usQiJorQNnrAtA8HbNYuUFj3BxsYldPwOVS6CmeBChqRuUiJClvP3R0JEc9X2Me5wKUNSJyk4U2fvZtKW90dCRDK/DI7xIUNSJyksZRfl7ZEQSsg5cAg5dhIa3/sdmKAqQ2JDCh4ziefAJRH9qtnKhGz/L0lcN1f8iztw/60/Au/vgQ5lZUhMpOCxmhyz8vuIcy8v9WZCokbqZcYh23tf6wPqypDoSJEy8Jh9QMmg2cqEEE6XwRNlpZjKkJSR4lsGIpqtRfx3IIT4nZOrKsWWDImKlBAyhrTxF9neSFpxj29DAOjcY3D87D8nJk3bMvJMG9EHlJEhRu3zFL6wGx3xt5aUHzstUsrKQLH4o8qkSNGRUeazqnCkCecojZk1IdhnP7b4QvY/UJX9UnRkYJThj64UHRlHf/x89lltjlP6KVuInvv9o78lQH4KhuQHfZE4MeT4SUg/2VB6Ln/4KaSfvgGQPoQH7/0dVMk3eYQehfjbF7LXwddTAY8Pn/vgg3+UltH4zqDJi+bPZiXadPstMIVzeJ/srS/iWWuDAdNG4C7zwLT84zoP5GXksVEl5pyvGX/HsKgcgomzTPOlSlFnAP9WtvlSZZoMxEaZhRByipqM0FVqU7alFMmQuJBSJENiKoVgOT5b4kiDMoVCW1JUZEhsSlGRITGRgktOUZ1ZiTpVW1MpZWRIbEgpI0NiIKVVOoeYlNB1pejIkJhI0ZEh0ZVSPqlz+Ppg+lk1nl9aiEn3TrcbrFslRky6wSalezxHeK7KQnGNQiiJjhTTMYmOFBtjEh0pujIEOxQXjAQNykixNUAsI8XmALGMFAMZ2O3dofgLNFGRYnu0riLFxWhdRYqJDESknC3s9m6BAUVSXJVOiqS4LJ0USTGVIaGM8NtgyCQpOlXbo4/9Rfnxk6RoVW3Fe5qW7m3JYIxvRs/94dEfimrvBTBEVjujb5zVLqFj5VSnSoxVXmAPtUroje/+Wq9KLI4Tq9q2ZCAin/+H7L76+EVC6HWwRPzNJegrnlBk0qBPRyiiW0JHdC9Q9T9W/6wzIWTp63kJd8oIvBKXcOeXujsczBK7DrPKIa5K90XlEJel+1mI5moLZ8HTwR3+OnhEtTZlW4pKbSqcFL6JvwelEwreFqQvWyi0JaVMoTCEFAqDPJ4JYX16AzygW7U1laJTtfUtpUcgi5DRN6h21xdvudyZAD/giZ/932jisk6iNymhI5jo7735G+D374ArMH888ovNBbw9qvZy4GvgEPxgvdv/BhPKRoqpDASP2aUMRNSvOqPboxup+2bLxswMVSk2ZNgc9BXBCRktXT72pc+99UVckdr5PF8bMzSKmq9aycg1V8jYBSrG3TZbEpeRUicZiLggtTJ+Pwc7Qld1Lljp4EJK3WQgPQZjY8ADKzncXT+zKqw9A56w1XzhJ6mbDNyTpHl+8+l9fxsHv94WN7LdDbxRgXURvctAJi1Ac2CSw/wvs7U3OuCR0GvshpCB0aG8GhBuVgKeCSUlhAwEt0+a9PeJQgbm+IvgGd9SQsmYFh3I1HlZ/QZd8dXjyuNLSigZOO6YFh3IVCF4nYQVPNElrqWEkoHguKNoqdiZ6/ba+EKPLi56XyFlCDpz5zcLv5g4cyppluADNF2I7UgJKYMPFlKe2VmaKQTDK1TThdiSEjgycL6V0qaUyvuH7IkRPHgcwe/HpPkKLQMYeXHuQldp7Xfl2e9Zrwv8Xerdj26khJaBvSpVGYiyEOx1iTbwEuf+Z6hIykqpgoyUkVKrC9RzyyOF5iu4DJHEU9dbHiH4BoQL64F6XsisSKmEDNDb01Brlzbks/Uk4aF3apsQKZWR4XPbPEnVpNRdBmIkBMGcElG+QUjA/alyO32GQibwoFuvSqogJSgcun1GLlVic+I8oQePQRCDvv59WJm2QUtZrApB7r6SPEsjfiVkXvEB5gsshzQvdFfBItaFIMNF/XF/jDYcTjpYKLTRRO3HiRDJ7npyWWS7K4clt7iKijzG62UV8cj57lXseXDOr0HdEbki/ZwsuJSBOI2QPIOeGFshhDwF9cJZ8zQJb0IkdRCDTRNh/Bqh9GrTYJCng3chkkxMJJJ+tXJMFzhZ69+DVVvd2LIEE5JnD/cuybbLIOd8y8EvvIpoWANOb8w92e1AYCohJA/WxxhAQoAvi3JEYlvQYD0R6HAg3TiFteOecoMqlROyH9wcPj4GCUSwCIwtwHDR+uHinS1cODL/eD5YTGdnuKjOFjB+Gyi9JeTeTu9BJ1RTpMqXLiNpVjp6y9MAAAAASUVORK5CYII=",chainId:56,chainType:"bsc",chainTypeMoralis:"bsc",tokenTrendingDefault:["0x2170ed0880ac9a755fd29b2688956bd959f933f8","0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c"]},137:{...bi,rpcUrls:{default:{http:["https://polygon-bor-rpc.publicnode.com"]}},logo:"data:image/png;base64,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",chainId:137,chainType:"matic",chainTypeMoralis:"polygon",tokenTrendingDefault:["0x7ceb23fd6bc0add59e62ac25578270cff1b9f619","0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6"]},8453:{...ss,logo:"data:image/png;base64,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",chainId:8453,chainType:"base",chainTypeMoralis:"base",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},42161:{...Br,logo:"data:image/png;base64,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",chainId:42161,chainType:"arbitrum",chainTypeMoralis:"arbitrum",tokenTrendingDefault:["0x82af49447d8a07e3bd95bd0d56f35241523fbab1","0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"]},43114:{...Fr,logo:"data:image/png;base64,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",chainId:43114,chainType:"avax",chainTypeMoralis:"avalanche",tokenTrendingDefault:["0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB","0x0555E30da8f98308EdB960aa94C0Db47230d2B9c"]},59144:{...hi,logo:"data:image/png;base64,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",chainId:59144,chainType:"linea",chainTypeMoralis:"linea",tokenTrendingDefault:["0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f","0x3aab2285ddcddad8edf438c1bab47e1a9d05a9b4"]}},ms=e=>Object.values(ct).find(n=>n.chainTypeMoralis===e)?.chainType||null,Ai=e=>{const t=new Date,n=new Date(t);n.setDate(n.getDate()-1);const o=new Date(e);return o.setHours(0,0,0,0),t.setHours(0,0,0,0),n.setHours(0,0,0,0),o.getTime()===t.getTime()?"Today":o.getTime()===n.getTime()?"Yesterday":o.toLocaleDateString("en-US",{month:"short",day:"numeric",year:o.getFullYear()!==t.getFullYear()?"numeric":void 0})},_e=e=>new Promise(t=>setTimeout(t,e||0)),ki=(e,t=5,n=5)=>(e=e||"",e?.length<=t+n?e:`${e.substr(0,t)}...${e.substr(e.length-n,n)}`),vi=e=>{if(!e)return"";const t=ct[e];return t?t.chainTypeMoralis:""},Ti=e=>{if(!e)return"";const t=ct[e];return t?t.chainType:""},Bt={getItem(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}},setItem(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,t)}catch{}},removeItem(e){if(!(typeof window>"u"))try{window.localStorage.removeItem(e)}catch{}},get length(){if(typeof window>"u")return 0;try{return window.localStorage.length}catch{return 0}},key(e){if(typeof window>"u")return null;try{return window.localStorage.key(e)}catch{return null}}};class Ci extends me{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function mt(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new Ci({value:e});let[n,o="0"]=e.split(".");const s=n.startsWith("-");if(s&&(n=n.slice(1)),o=o.replace(/(0+)$/,""),t===0)Math.round(+`.${o}`)===1&&(n=`${BigInt(n)+1n}`),o="";else if(o.length>t){const[a,r,i]=[o.slice(0,t-1),o.slice(t-1,t),o.slice(t)],l=Math.round(+`${r}.${i}`);l>9?o=`${BigInt(a)+BigInt(1)}0`.padStart(a.length+1,"0"):o=`${a}${l}`,o.length>t&&(o=o.slice(1),n=`${BigInt(n)+1n}`),o=o.slice(0,t)}else o=o.padEnd(t,"0");return BigInt(`${s?"-":""}${n}${o}`)}const Ei="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Ve="0x0000000000000000000000000000000000000000",hs=te.createContext(void 0),oo=()=>{const e=te.useContext(hs);if(!e)throw new Error("useConnect must be used within ConnectProvider");return{...e,chainData:ct[e.account?.chainId]||void 0,chainId:e.account?.chainId||void 0,chainType:Ti(e.account?.chainId||void 0),chainTypeMoralis:vi(e.account?.chainId||void 0),isChainSupported:!!ct[e.account?.chainId]}},Si=({children:e,initialAccount:t})=>P.jsx(hs.Provider,{value:{account:t||null},children:e}),xi=({address:e,chainId:t})=>{const[n,o]=te.useState(!1),{isChainSupported:s}=oo(),a=te.useCallback(()=>{if(!e)return;const r=e,i=()=>{o(!0),setTimeout(()=>o(!1),2e3)};try{navigator.clipboard.writeText(r).then(i).catch(()=>{const l=document.createElement("input");l.value=r,document.body.appendChild(l),l.select(),document.execCommand("copy"),l.remove(),i()})}catch{const l=document.createElement("input");l.value=r,document.body.appendChild(l),l.select(),document.execCommand("copy"),l.remove(),i()}},[e]);return P.jsx(P.Fragment,{children:Me(e||"")&&P.jsxs("div",{className:"chat-user-info",children:[t&&ct[t]?.logo&&P.jsx("div",{className:"user-avatar",children:P.jsx("img",{src:ct[t].logo||"",alt:"Chain",width:20,height:20})}),P.jsx("span",{className:"user-wallet",children:P.jsx("a",{style:{pointerEvents:s?"auto":"none"},href:ct[t]?.blockExplorers?.default?.url+"/address/"+e,target:"_blank",rel:"noopener noreferrer",children:ki(e)||"Not connected"})}),P.jsx("button",{className:"copy-address-btn",onClick:a,"aria-label":"Copy wallet address",type:"button",title:n?"Copied!":"Copy address",children:n?P.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:P.jsx("path",{d:"M13.3333 4L6 11.3333L2.66667 8",stroke:"#0B3988",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):P.jsx("svg",{width:"14",height:"14",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:P.jsx("path",{d:"M8.1 15.75H13.23C12.9638 16.4152 12.5041 16.9852 11.9105 17.3863C11.3168 17.7874 10.6165 18.0012 9.9 18H3.6C2.64522 18 1.72955 17.6207 1.05442 16.9456C0.379285 16.2704 0 15.3548 0 14.4V7.2C0.00104929 6.32332 0.321408 5.47704 0.901163 4.81944C1.48092 4.16183 2.28037 3.73792 3.15 3.627V10.8C3.15238 12.1121 3.67466 13.3698 4.60245 14.2975C5.53024 15.2253 6.78791 15.7476 8.1 15.75ZM15.75 3.825H17.658C17.6027 3.74389 17.5393 3.66852 17.469 3.6L14.4 0.531C14.3337 0.460854 14.258 0.400274 14.175 0.351V2.25C14.1769 2.66713 14.3434 3.06664 14.6384 3.3616C14.9334 3.65656 15.3329 3.8231 15.75 3.825ZM15.75 5.175C14.9747 5.17357 14.2315 4.86494 13.6833 4.31671C13.1351 3.76847 12.8264 3.02532 12.825 2.25V0H8.1C7.14522 0 6.22955 0.379285 5.55442 1.05442C4.87928 1.72955 4.5 2.64522 4.5 3.6V10.8C4.5 11.7548 4.87928 12.6704 5.55442 13.3456C6.22955 14.0207 7.14522 14.4 8.1 14.4H14.4C15.3548 14.4 16.2705 14.0207 16.9456 13.3456C17.6207 12.6704 18 11.7548 18 10.8V5.175H15.75Z",fill:"#0B3988"})})})]})})},Ge=[];for(let e=0;e<256;++e)Ge.push((e+256).toString(16).slice(1));function Ii(e,t=0){return(Ge[e[t+0]]+Ge[e[t+1]]+Ge[e[t+2]]+Ge[e[t+3]]+"-"+Ge[e[t+4]]+Ge[e[t+5]]+"-"+Ge[e[t+6]]+Ge[e[t+7]]+"-"+Ge[e[t+8]]+Ge[e[t+9]]+"-"+Ge[e[t+10]]+Ge[e[t+11]]+Ge[e[t+12]]+Ge[e[t+13]]+Ge[e[t+14]]+Ge[e[t+15]]).toLowerCase()}let so;const Ni=new Uint8Array(16);function Bi(){if(!so){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");so=crypto.getRandomValues.bind(crypto)}return so(Ni)}const gs={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Fi(e,t,n){e=e||{};const o=e.random??e.rng?.()??Bi();if(o.length<16)throw new Error("Random bytes length must be >= 16");return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Ii(o)}function ws(e,t,n){return gs.randomUUID&&!e?gs.randomUUID():Fi(e)}const ao="chat_widget_messages",wn=200,Yt=[{id:ws(),text:`**Welcome! 🚀**
99
- You're connected and ready to explore DeFi! I can help you trade, check prices, and analyze your portfolio when you need it.`,sender:"bot",timestamp:new Date}];function Pi(e,t){return e&&t?`${e}_${t}`:""}function bs(e){return e.map(t=>({...t,timestamp:new Date(t.timestamp)}))}function ys(){const e=Bt.getItem(ao);if(!e)return null;try{const t=JSON.parse(e);if(t&&t.owner!==void 0&&Array.isArray(t.messages))return{owner:t.owner,messages:bs(t.messages)};if(Array.isArray(t))return{owner:"",messages:bs(t)}}catch{}return null}function bn(e,t){Bt.setItem(ao,JSON.stringify({owner:e,messages:t}))}function Di(){const{account:e}=oo(),t=Pi(e?.address,e?.chainId),[n,o]=te.useState(()=>t||"pending"),[s,a]=te.useState(()=>{const g=ys();return t?g&&g.owner===t?g.messages:Yt:g?.messages??Yt});if(n==="pending"&&t){const g=ys();g&&g.owner===t?a(g.messages):bn(t,s),o(t)}else n!=="pending"&&t&&n!==t&&(a(Yt),bn(t,Yt),o(t));te.useEffect(()=>{n!=="pending"&&bn(n,s)},[s,n]),te.useEffect(()=>{const g=[];for(let A=0;A<Bt.length;A++){const y=Bt.key(A);y&&y.startsWith(ao+"_")&&g.push(y)}g.forEach(A=>Bt.removeItem(A))},[]);const r=(g,A,y,T,B)=>{const ve=y?s.find(W=>W.id===y):void 0,N={id:ws(),text:g,sender:A,timestamp:new Date,...ve&&{replyTo:{id:ve.id,text:ve.text,sender:ve.sender}},...T&&{buttons:T},...B&&{actionData:B}};return a(W=>{const J=[...W,N];return J.length>wn?J.slice(J.length-wn):J}),N},i=(g,A)=>{a(y=>y.map(T=>T.id===g&&T.actionData?{...T,actionData:{...T.actionData,status:A}}:T))},l=(g,A)=>{a(y=>y.map(T=>T.id===g?{...T,text:A}:T))},k=g=>s.find(A=>A.id===g),D=te.useCallback(()=>{a(Yt),bn(t,Yt)},[t]),Y=te.useCallback(g=>{a(A=>{const y=A.filter(T=>!g.includes(T.id));return y.length>wn?y.slice(y.length-wn):y})},[]);return{messages:s,setMessages:a,addMessage:r,updateMessageAction:i,updateMessageText:l,getMessageById:k,clearMessages:D,clearMessagesById:Y}}const As=te.createContext(void 0),Oi=()=>{const e=te.useContext(As);if(!e)throw new Error("useConfig must be used within ConfigProvider");return e},Li=({children:e,initialConfig:t})=>P.jsx(As.Provider,{value:{config:t||null},children:e});var Ui=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,ro=Math.ceil,tt=Math.floor,qe="[BigNumber Error] ",ks=qe+"Number primitive has more than 15 significant digits: ",at=1e14,ye=14,io=9007199254740991,co=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Tt=1e7,He=1e9;function vs(e){var t,n,o,s=N.prototype={constructor:N,toString:null,valueOf:null},a=new N(1),r=20,i=4,l=-7,k=21,D=-1e7,Y=1e7,g=!1,A=1,y=0,T={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},B="0123456789abcdefghijklmnopqrstuvwxyz",ve=!0;function N(c,d){var p,E,u,w,S,h,b,x,I=this;if(!(I instanceof N))return new N(c,d);if(d==null){if(c&&c._isBigNumber===!0){I.s=c.s,!c.c||c.e>Y?I.c=I.e=null:c.e<D?I.c=[I.e=0]:(I.e=c.e,I.c=c.c.slice());return}if((h=typeof c=="number")&&c*0==0){if(I.s=1/c<0?(c=-c,-1):1,c===~~c){for(w=0,S=c;S>=10;S/=10,w++);w>Y?I.c=I.e=null:(I.e=w,I.c=[c]);return}x=String(c)}else{if(!Ui.test(x=String(c)))return o(I,x,h);I.s=x.charCodeAt(0)==45?(x=x.slice(1),-1):1}(w=x.indexOf("."))>-1&&(x=x.replace(".","")),(S=x.search(/e/i))>0?(w<0&&(w=S),w+=+x.slice(S+1),x=x.substring(0,S)):w<0&&(w=x.length)}else{if(Be(d,2,B.length,"Base"),d==10&&ve)return I=new N(c),ge(I,r+I.e+1,i);if(x=String(c),h=typeof c=="number"){if(c*0!=0)return o(I,x,h,d);if(I.s=1/c<0?(x=x.slice(1),-1):1,N.DEBUG&&x.replace(/^0\.0*|\./,"").length>15)throw Error(ks+c)}else I.s=x.charCodeAt(0)===45?(x=x.slice(1),-1):1;for(p=B.slice(0,d),w=S=0,b=x.length;S<b;S++)if(p.indexOf(E=x.charAt(S))<0){if(E=="."){if(S>w){w=b;continue}}else if(!u&&(x==x.toUpperCase()&&(x=x.toLowerCase())||x==x.toLowerCase()&&(x=x.toUpperCase()))){u=!0,S=-1,w=0;continue}return o(I,String(c),h,d)}h=!1,x=n(x,d,10,I.s),(w=x.indexOf("."))>-1?x=x.replace(".",""):w=x.length}for(S=0;x.charCodeAt(S)===48;S++);for(b=x.length;x.charCodeAt(--b)===48;);if(x=x.slice(S,++b)){if(b-=S,h&&N.DEBUG&&b>15&&(c>io||c!==tt(c)))throw Error(ks+I.s*c);if((w=w-S-1)>Y)I.c=I.e=null;else if(w<D)I.c=[I.e=0];else{if(I.e=w,I.c=[],S=(w+1)%ye,w<0&&(S+=ye),S<b){for(S&&I.c.push(+x.slice(0,S)),b-=ye;S<b;)I.c.push(+x.slice(S,S+=ye));S=ye-(x=x.slice(S)).length}else S-=b;for(;S--;x+="0");I.c.push(+x)}}else I.c=[I.e=0]}N.clone=vs,N.ROUND_UP=0,N.ROUND_DOWN=1,N.ROUND_CEIL=2,N.ROUND_FLOOR=3,N.ROUND_HALF_UP=4,N.ROUND_HALF_DOWN=5,N.ROUND_HALF_EVEN=6,N.ROUND_HALF_CEIL=7,N.ROUND_HALF_FLOOR=8,N.EUCLID=9,N.config=N.set=function(c){var d,p;if(c!=null)if(typeof c=="object"){if(c.hasOwnProperty(d="DECIMAL_PLACES")&&(p=c[d],Be(p,0,He,d),r=p),c.hasOwnProperty(d="ROUNDING_MODE")&&(p=c[d],Be(p,0,8,d),i=p),c.hasOwnProperty(d="EXPONENTIAL_AT")&&(p=c[d],p&&p.pop?(Be(p[0],-He,0,d),Be(p[1],0,He,d),l=p[0],k=p[1]):(Be(p,-He,He,d),l=-(k=p<0?-p:p))),c.hasOwnProperty(d="RANGE"))if(p=c[d],p&&p.pop)Be(p[0],-He,-1,d),Be(p[1],1,He,d),D=p[0],Y=p[1];else if(Be(p,-He,He,d),p)D=-(Y=p<0?-p:p);else throw Error(qe+d+" cannot be zero: "+p);if(c.hasOwnProperty(d="CRYPTO"))if(p=c[d],p===!!p)if(p)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))g=p;else throw g=!p,Error(qe+"crypto unavailable");else g=p;else throw Error(qe+d+" not true or false: "+p);if(c.hasOwnProperty(d="MODULO_MODE")&&(p=c[d],Be(p,0,9,d),A=p),c.hasOwnProperty(d="POW_PRECISION")&&(p=c[d],Be(p,0,He,d),y=p),c.hasOwnProperty(d="FORMAT"))if(p=c[d],typeof p=="object")T=p;else throw Error(qe+d+" not an object: "+p);if(c.hasOwnProperty(d="ALPHABET"))if(p=c[d],typeof p=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(p))ve=p.slice(0,10)=="0123456789",B=p;else throw Error(qe+d+" invalid: "+p)}else throw Error(qe+"Object expected: "+c);return{DECIMAL_PLACES:r,ROUNDING_MODE:i,EXPONENTIAL_AT:[l,k],RANGE:[D,Y],CRYPTO:g,MODULO_MODE:A,POW_PRECISION:y,FORMAT:T,ALPHABET:B}},N.isBigNumber=function(c){if(!c||c._isBigNumber!==!0)return!1;if(!N.DEBUG)return!0;var d,p,E=c.c,u=c.e,w=c.s;e:if({}.toString.call(E)=="[object Array]"){if((w===1||w===-1)&&u>=-He&&u<=He&&u===tt(u)){if(E[0]===0){if(u===0&&E.length===1)return!0;break e}if(d=(u+1)%ye,d<1&&(d+=ye),String(E[0]).length==d){for(d=0;d<E.length;d++)if(p=E[d],p<0||p>=at||p!==tt(p))break e;if(p!==0)return!0}}}else if(E===null&&u===null&&(w===null||w===1||w===-1))return!0;throw Error(qe+"Invalid BigNumber: "+c)},N.maximum=N.max=function(){return J(arguments,-1)},N.minimum=N.min=function(){return J(arguments,1)},N.random=(function(){var c=9007199254740992,d=Math.random()*c&2097151?function(){return tt(Math.random()*c)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(p){var E,u,w,S,h,b=0,x=[],I=new N(a);if(p==null?p=r:Be(p,0,He),S=ro(p/ye),g)if(crypto.getRandomValues){for(E=crypto.getRandomValues(new Uint32Array(S*=2));b<S;)h=E[b]*131072+(E[b+1]>>>11),h>=9e15?(u=crypto.getRandomValues(new Uint32Array(2)),E[b]=u[0],E[b+1]=u[1]):(x.push(h%1e14),b+=2);b=S/2}else if(crypto.randomBytes){for(E=crypto.randomBytes(S*=7);b<S;)h=(E[b]&31)*281474976710656+E[b+1]*1099511627776+E[b+2]*4294967296+E[b+3]*16777216+(E[b+4]<<16)+(E[b+5]<<8)+E[b+6],h>=9e15?crypto.randomBytes(7).copy(E,b):(x.push(h%1e14),b+=7);b=S/7}else throw g=!1,Error(qe+"crypto unavailable");if(!g)for(;b<S;)h=d(),h<9e15&&(x[b++]=h%1e14);for(S=x[--b],p%=ye,S&&p&&(h=co[ye-p],x[b]=tt(S/h)*h);x[b]===0;x.pop(),b--);if(b<0)x=[w=0];else{for(w=-1;x[0]===0;x.splice(0,1),w-=ye);for(b=1,h=x[0];h>=10;h/=10,b++);b<ye&&(w-=ye-b)}return I.e=w,I.c=x,I}})(),N.sum=function(){for(var c=1,d=arguments,p=new N(d[0]);c<d.length;)p=p.plus(d[c++]);return p},n=(function(){var c="0123456789";function d(p,E,u,w){for(var S,h=[0],b,x=0,I=p.length;x<I;){for(b=h.length;b--;h[b]*=E);for(h[0]+=w.indexOf(p.charAt(x++)),S=0;S<h.length;S++)h[S]>u-1&&(h[S+1]==null&&(h[S+1]=0),h[S+1]+=h[S]/u|0,h[S]%=u)}return h.reverse()}return function(p,E,u,w,S){var h,b,x,I,F,Q,ae,ue,Ce=p.indexOf("."),Te=r,q=i;for(Ce>=0&&(I=y,y=0,p=p.replace(".",""),ue=new N(E),Q=ue.pow(p.length-Ce),y=I,ue.c=d(ht(ot(Q.c),Q.e,"0"),10,u,c),ue.e=ue.c.length),ae=d(p,E,u,S?(h=B,c):(h=c,B)),x=I=ae.length;ae[--I]==0;ae.pop());if(!ae[0])return h.charAt(0);if(Ce<0?--x:(Q.c=ae,Q.e=x,Q.s=w,Q=t(Q,ue,Te,q,u),ae=Q.c,F=Q.r,x=Q.e),b=x+Te+1,Ce=ae[b],I=u/2,F=F||b<0||ae[b+1]!=null,F=q<4?(Ce!=null||F)&&(q==0||q==(Q.s<0?3:2)):Ce>I||Ce==I&&(q==4||F||q==6&&ae[b-1]&1||q==(Q.s<0?8:7)),b<1||!ae[0])p=F?ht(h.charAt(1),-Te,h.charAt(0)):h.charAt(0);else{if(ae.length=b,F)for(--u;++ae[--b]>u;)ae[b]=0,b||(++x,ae=[1].concat(ae));for(I=ae.length;!ae[--I];);for(Ce=0,p="";Ce<=I;p+=h.charAt(ae[Ce++]));p=ht(p,x,h.charAt(0))}return p}})(),t=(function(){function c(E,u,w){var S,h,b,x,I=0,F=E.length,Q=u%Tt,ae=u/Tt|0;for(E=E.slice();F--;)b=E[F]%Tt,x=E[F]/Tt|0,S=ae*b+x*Q,h=Q*b+S%Tt*Tt+I,I=(h/w|0)+(S/Tt|0)+ae*x,E[F]=h%w;return I&&(E=[I].concat(E)),E}function d(E,u,w,S){var h,b;if(w!=S)b=w>S?1:-1;else for(h=b=0;h<w;h++)if(E[h]!=u[h]){b=E[h]>u[h]?1:-1;break}return b}function p(E,u,w,S){for(var h=0;w--;)E[w]-=h,h=E[w]<u[w]?1:0,E[w]=h*S+E[w]-u[w];for(;!E[0]&&E.length>1;E.splice(0,1));}return function(E,u,w,S,h){var b,x,I,F,Q,ae,ue,Ce,Te,q,Ae,Ne,Ye,Xe,Ke,We,$e,Fe=E.s==u.s?1:-1,Pe=E.c,Ee=u.c;if(!Pe||!Pe[0]||!Ee||!Ee[0])return new N(!E.s||!u.s||(Pe?Ee&&Pe[0]==Ee[0]:!Ee)?NaN:Pe&&Pe[0]==0||!Ee?Fe*0:Fe/0);for(Ce=new N(Fe),Te=Ce.c=[],x=E.e-u.e,Fe=w+x+1,h||(h=at,x=nt(E.e/ye)-nt(u.e/ye),Fe=Fe/ye|0),I=0;Ee[I]==(Pe[I]||0);I++);if(Ee[I]>(Pe[I]||0)&&x--,Fe<0)Te.push(1),F=!0;else{for(Xe=Pe.length,We=Ee.length,I=0,Fe+=2,Q=tt(h/(Ee[0]+1)),Q>1&&(Ee=c(Ee,Q,h),Pe=c(Pe,Q,h),We=Ee.length,Xe=Pe.length),Ye=We,q=Pe.slice(0,We),Ae=q.length;Ae<We;q[Ae++]=0);$e=Ee.slice(),$e=[0].concat($e),Ke=Ee[0],Ee[1]>=h/2&&Ke++;do{if(Q=0,b=d(Ee,q,We,Ae),b<0){if(Ne=q[0],We!=Ae&&(Ne=Ne*h+(q[1]||0)),Q=tt(Ne/Ke),Q>1)for(Q>=h&&(Q=h-1),ae=c(Ee,Q,h),ue=ae.length,Ae=q.length;d(ae,q,ue,Ae)==1;)Q--,p(ae,We<ue?$e:Ee,ue,h),ue=ae.length,b=1;else Q==0&&(b=Q=1),ae=Ee.slice(),ue=ae.length;if(ue<Ae&&(ae=[0].concat(ae)),p(q,ae,Ae,h),Ae=q.length,b==-1)for(;d(Ee,q,We,Ae)<1;)Q++,p(q,We<Ae?$e:Ee,Ae,h),Ae=q.length}else b===0&&(Q++,q=[0]);Te[I++]=Q,q[0]?q[Ae++]=Pe[Ye]||0:(q=[Pe[Ye]],Ae=1)}while((Ye++<Xe||q[0]!=null)&&Fe--);F=q[0]!=null,Te[0]||Te.splice(0,1)}if(h==at){for(I=1,Fe=Te[0];Fe>=10;Fe/=10,I++);ge(Ce,w+(Ce.e=I+x*ye-1)+1,S,F)}else Ce.e=x,Ce.r=+F;return Ce}})();function W(c,d,p,E){var u,w,S,h,b;if(p==null?p=i:Be(p,0,8),!c.c)return c.toString();if(u=c.c[0],S=c.e,d==null)b=ot(c.c),b=E==1||E==2&&(S<=l||S>=k)?An(b,S):ht(b,S,"0");else if(c=ge(new N(c),d,p),w=c.e,b=ot(c.c),h=b.length,E==1||E==2&&(d<=w||w<=l)){for(;h<d;b+="0",h++);b=An(b,w)}else if(d-=S+(E===2&&w>S),b=ht(b,w,"0"),w+1>h){if(--d>0)for(b+=".";d--;b+="0");}else if(d+=w-h,d>0)for(w+1==h&&(b+=".");d--;b+="0");return c.s<0&&u?"-"+b:b}function J(c,d){for(var p,E,u=1,w=new N(c[0]);u<c.length;u++)E=new N(c[u]),(!E.s||(p=Ft(w,E))===d||p===0&&w.s===d)&&(w=E);return w}function he(c,d,p){for(var E=1,u=d.length;!d[--u];d.pop());for(u=d[0];u>=10;u/=10,E++);return(p=E+p*ye-1)>Y?c.c=c.e=null:p<D?c.c=[c.e=0]:(c.e=p,c.c=d),c}o=(function(){var c=/^(-?)0([xbo])(?=\w[\w.]*$)/i,d=/^([^.]+)\.$/,p=/^\.([^.]+)$/,E=/^-?(Infinity|NaN)$/,u=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(w,S,h,b){var x,I=h?S:S.replace(u,"");if(E.test(I))w.s=isNaN(I)?null:I<0?-1:1;else{if(!h&&(I=I.replace(c,function(F,Q,ae){return x=(ae=ae.toLowerCase())=="x"?16:ae=="b"?2:8,!b||b==x?Q:F}),b&&(x=b,I=I.replace(d,"$1").replace(p,"0.$1")),S!=I))return new N(I,x);if(N.DEBUG)throw Error(qe+"Not a"+(b?" base "+b:"")+" number: "+S);w.s=null}w.c=w.e=null}})();function ge(c,d,p,E){var u,w,S,h,b,x,I,F=c.c,Q=co;if(F){e:{for(u=1,h=F[0];h>=10;h/=10,u++);if(w=d-u,w<0)w+=ye,S=d,b=F[x=0],I=tt(b/Q[u-S-1]%10);else if(x=ro((w+1)/ye),x>=F.length)if(E){for(;F.length<=x;F.push(0));b=I=0,u=1,w%=ye,S=w-ye+1}else break e;else{for(b=h=F[x],u=1;h>=10;h/=10,u++);w%=ye,S=w-ye+u,I=S<0?0:tt(b/Q[u-S-1]%10)}if(E=E||d<0||F[x+1]!=null||(S<0?b:b%Q[u-S-1]),E=p<4?(I||E)&&(p==0||p==(c.s<0?3:2)):I>5||I==5&&(p==4||E||p==6&&(w>0?S>0?b/Q[u-S]:0:F[x-1])%10&1||p==(c.s<0?8:7)),d<1||!F[0])return F.length=0,E?(d-=c.e+1,F[0]=Q[(ye-d%ye)%ye],c.e=-d||0):F[0]=c.e=0,c;if(w==0?(F.length=x,h=1,x--):(F.length=x+1,h=Q[ye-w],F[x]=S>0?tt(b/Q[u-S]%Q[S])*h:0),E)for(;;)if(x==0){for(w=1,S=F[0];S>=10;S/=10,w++);for(S=F[0]+=h,h=1;S>=10;S/=10,h++);w!=h&&(c.e++,F[0]==at&&(F[0]=1));break}else{if(F[x]+=h,F[x]!=at)break;F[x--]=0,h=1}for(w=F.length;F[--w]===0;F.pop());}c.e>Y?c.c=c.e=null:c.e<D&&(c.c=[c.e=0])}return c}function xe(c){var d,p=c.e;return p===null?c.toString():(d=ot(c.c),d=p<=l||p>=k?An(d,p):ht(d,p,"0"),c.s<0?"-"+d:d)}return s.absoluteValue=s.abs=function(){var c=new N(this);return c.s<0&&(c.s=1),c},s.comparedTo=function(c,d){return Ft(this,new N(c,d))},s.decimalPlaces=s.dp=function(c,d){var p,E,u,w=this;if(c!=null)return Be(c,0,He),d==null?d=i:Be(d,0,8),ge(new N(w),c+w.e+1,d);if(!(p=w.c))return null;if(E=((u=p.length-1)-nt(this.e/ye))*ye,u=p[u])for(;u%10==0;u/=10,E--);return E<0&&(E=0),E},s.dividedBy=s.div=function(c,d){return t(this,new N(c,d),r,i)},s.dividedToIntegerBy=s.idiv=function(c,d){return t(this,new N(c,d),0,1)},s.exponentiatedBy=s.pow=function(c,d){var p,E,u,w,S,h,b,x,I,F=this;if(c=new N(c),c.c&&!c.isInteger())throw Error(qe+"Exponent not an integer: "+xe(c));if(d!=null&&(d=new N(d)),h=c.e>14,!F.c||!F.c[0]||F.c[0]==1&&!F.e&&F.c.length==1||!c.c||!c.c[0])return I=new N(Math.pow(+xe(F),h?c.s*(2-yn(c)):+xe(c))),d?I.mod(d):I;if(b=c.s<0,d){if(d.c?!d.c[0]:!d.s)return new N(NaN);E=!b&&F.isInteger()&&d.isInteger(),E&&(F=F.mod(d))}else{if(c.e>9&&(F.e>0||F.e<-1||(F.e==0?F.c[0]>1||h&&F.c[1]>=24e7:F.c[0]<8e13||h&&F.c[0]<=9999975e7)))return w=F.s<0&&yn(c)?-0:0,F.e>-1&&(w=1/w),new N(b?1/w:w);y&&(w=ro(y/ye+2))}for(h?(p=new N(.5),b&&(c.s=1),x=yn(c)):(u=Math.abs(+xe(c)),x=u%2),I=new N(a);;){if(x){if(I=I.times(F),!I.c)break;w?I.c.length>w&&(I.c.length=w):E&&(I=I.mod(d))}if(u){if(u=tt(u/2),u===0)break;x=u%2}else if(c=c.times(p),ge(c,c.e+1,1),c.e>14)x=yn(c);else{if(u=+xe(c),u===0)break;x=u%2}F=F.times(F),w?F.c&&F.c.length>w&&(F.c.length=w):E&&(F=F.mod(d))}return E?I:(b&&(I=a.div(I)),d?I.mod(d):w?ge(I,y,i,S):I)},s.integerValue=function(c){var d=new N(this);return c==null?c=i:Be(c,0,8),ge(d,d.e+1,c)},s.isEqualTo=s.eq=function(c,d){return Ft(this,new N(c,d))===0},s.isFinite=function(){return!!this.c},s.isGreaterThan=s.gt=function(c,d){return Ft(this,new N(c,d))>0},s.isGreaterThanOrEqualTo=s.gte=function(c,d){return(d=Ft(this,new N(c,d)))===1||d===0},s.isInteger=function(){return!!this.c&&nt(this.e/ye)>this.c.length-2},s.isLessThan=s.lt=function(c,d){return Ft(this,new N(c,d))<0},s.isLessThanOrEqualTo=s.lte=function(c,d){return(d=Ft(this,new N(c,d)))===-1||d===0},s.isNaN=function(){return!this.s},s.isNegative=function(){return this.s<0},s.isPositive=function(){return this.s>0},s.isZero=function(){return!!this.c&&this.c[0]==0},s.minus=function(c,d){var p,E,u,w,S=this,h=S.s;if(c=new N(c,d),d=c.s,!h||!d)return new N(NaN);if(h!=d)return c.s=-d,S.plus(c);var b=S.e/ye,x=c.e/ye,I=S.c,F=c.c;if(!b||!x){if(!I||!F)return I?(c.s=-d,c):new N(F?S:NaN);if(!I[0]||!F[0])return F[0]?(c.s=-d,c):new N(I[0]?S:i==3?-0:0)}if(b=nt(b),x=nt(x),I=I.slice(),h=b-x){for((w=h<0)?(h=-h,u=I):(x=b,u=F),u.reverse(),d=h;d--;u.push(0));u.reverse()}else for(E=(w=(h=I.length)<(d=F.length))?h:d,h=d=0;d<E;d++)if(I[d]!=F[d]){w=I[d]<F[d];break}if(w&&(u=I,I=F,F=u,c.s=-c.s),d=(E=F.length)-(p=I.length),d>0)for(;d--;I[p++]=0);for(d=at-1;E>h;){if(I[--E]<F[E]){for(p=E;p&&!I[--p];I[p]=d);--I[p],I[E]+=at}I[E]-=F[E]}for(;I[0]==0;I.splice(0,1),--x);return I[0]?he(c,I,x):(c.s=i==3?-1:1,c.c=[c.e=0],c)},s.modulo=s.mod=function(c,d){var p,E,u=this;return c=new N(c,d),!u.c||!c.s||c.c&&!c.c[0]?new N(NaN):!c.c||u.c&&!u.c[0]?new N(u):(A==9?(E=c.s,c.s=1,p=t(u,c,0,3),c.s=E,p.s*=E):p=t(u,c,0,A),c=u.minus(p.times(c)),!c.c[0]&&A==1&&(c.s=u.s),c)},s.multipliedBy=s.times=function(c,d){var p,E,u,w,S,h,b,x,I,F,Q,ae,ue,Ce,Te,q=this,Ae=q.c,Ne=(c=new N(c,d)).c;if(!Ae||!Ne||!Ae[0]||!Ne[0])return!q.s||!c.s||Ae&&!Ae[0]&&!Ne||Ne&&!Ne[0]&&!Ae?c.c=c.e=c.s=null:(c.s*=q.s,!Ae||!Ne?c.c=c.e=null:(c.c=[0],c.e=0)),c;for(E=nt(q.e/ye)+nt(c.e/ye),c.s*=q.s,b=Ae.length,F=Ne.length,b<F&&(ue=Ae,Ae=Ne,Ne=ue,u=b,b=F,F=u),u=b+F,ue=[];u--;ue.push(0));for(Ce=at,Te=Tt,u=F;--u>=0;){for(p=0,Q=Ne[u]%Te,ae=Ne[u]/Te|0,S=b,w=u+S;w>u;)x=Ae[--S]%Te,I=Ae[S]/Te|0,h=ae*x+I*Q,x=Q*x+h%Te*Te+ue[w]+p,p=(x/Ce|0)+(h/Te|0)+ae*I,ue[w--]=x%Ce;ue[w]=p}return p?++E:ue.splice(0,1),he(c,ue,E)},s.negated=function(){var c=new N(this);return c.s=-c.s||null,c},s.plus=function(c,d){var p,E=this,u=E.s;if(c=new N(c,d),d=c.s,!u||!d)return new N(NaN);if(u!=d)return c.s=-d,E.minus(c);var w=E.e/ye,S=c.e/ye,h=E.c,b=c.c;if(!w||!S){if(!h||!b)return new N(u/0);if(!h[0]||!b[0])return b[0]?c:new N(h[0]?E:u*0)}if(w=nt(w),S=nt(S),h=h.slice(),u=w-S){for(u>0?(S=w,p=b):(u=-u,p=h),p.reverse();u--;p.push(0));p.reverse()}for(u=h.length,d=b.length,u-d<0&&(p=b,b=h,h=p,d=u),u=0;d;)u=(h[--d]=h[d]+b[d]+u)/at|0,h[d]=at===h[d]?0:h[d]%at;return u&&(h=[u].concat(h),++S),he(c,h,S)},s.precision=s.sd=function(c,d){var p,E,u,w=this;if(c!=null&&c!==!!c)return Be(c,1,He),d==null?d=i:Be(d,0,8),ge(new N(w),c,d);if(!(p=w.c))return null;if(u=p.length-1,E=u*ye+1,u=p[u]){for(;u%10==0;u/=10,E--);for(u=p[0];u>=10;u/=10,E++);}return c&&w.e+1>E&&(E=w.e+1),E},s.shiftedBy=function(c){return Be(c,-io,io),this.times("1e"+c)},s.squareRoot=s.sqrt=function(){var c,d,p,E,u,w=this,S=w.c,h=w.s,b=w.e,x=r+4,I=new N("0.5");if(h!==1||!S||!S[0])return new N(!h||h<0&&(!S||S[0])?NaN:S?w:1/0);if(h=Math.sqrt(+xe(w)),h==0||h==1/0?(d=ot(S),(d.length+b)%2==0&&(d+="0"),h=Math.sqrt(+d),b=nt((b+1)/2)-(b<0||b%2),h==1/0?d="5e"+b:(d=h.toExponential(),d=d.slice(0,d.indexOf("e")+1)+b),p=new N(d)):p=new N(h+""),p.c[0]){for(b=p.e,h=b+x,h<3&&(h=0);;)if(u=p,p=I.times(u.plus(t(w,u,x,1))),ot(u.c).slice(0,h)===(d=ot(p.c)).slice(0,h))if(p.e<b&&--h,d=d.slice(h-3,h+1),d=="9999"||!E&&d=="4999"){if(!E&&(ge(u,u.e+r+2,0),u.times(u).eq(w))){p=u;break}x+=4,h+=4,E=1}else{(!+d||!+d.slice(1)&&d.charAt(0)=="5")&&(ge(p,p.e+r+2,1),c=!p.times(p).eq(w));break}}return ge(p,p.e+r+1,i,c)},s.toExponential=function(c,d){return c!=null&&(Be(c,0,He),c++),W(this,c,d,1)},s.toFixed=function(c,d){return c!=null&&(Be(c,0,He),c=c+this.e+1),W(this,c,d)},s.toFormat=function(c,d,p){var E,u=this;if(p==null)c!=null&&d&&typeof d=="object"?(p=d,d=null):c&&typeof c=="object"?(p=c,c=d=null):p=T;else if(typeof p!="object")throw Error(qe+"Argument not an object: "+p);if(E=u.toFixed(c,d),u.c){var w,S=E.split("."),h=+p.groupSize,b=+p.secondaryGroupSize,x=p.groupSeparator||"",I=S[0],F=S[1],Q=u.s<0,ae=Q?I.slice(1):I,ue=ae.length;if(b&&(w=h,h=b,b=w,ue-=w),h>0&&ue>0){for(w=ue%h||h,I=ae.substr(0,w);w<ue;w+=h)I+=x+ae.substr(w,h);b>0&&(I+=x+ae.slice(w)),Q&&(I="-"+I)}E=F?I+(p.decimalSeparator||"")+((b=+p.fractionGroupSize)?F.replace(new RegExp("\\d{"+b+"}\\B","g"),"$&"+(p.fractionGroupSeparator||"")):F):I}return(p.prefix||"")+E+(p.suffix||"")},s.toFraction=function(c){var d,p,E,u,w,S,h,b,x,I,F,Q,ae=this,ue=ae.c;if(c!=null&&(h=new N(c),!h.isInteger()&&(h.c||h.s!==1)||h.lt(a)))throw Error(qe+"Argument "+(h.isInteger()?"out of range: ":"not an integer: ")+xe(h));if(!ue)return new N(ae);for(d=new N(a),x=p=new N(a),E=b=new N(a),Q=ot(ue),w=d.e=Q.length-ae.e-1,d.c[0]=co[(S=w%ye)<0?ye+S:S],c=!c||h.comparedTo(d)>0?w>0?d:x:h,S=Y,Y=1/0,h=new N(Q),b.c[0]=0;I=t(h,d,0,1),u=p.plus(I.times(E)),u.comparedTo(c)!=1;)p=E,E=u,x=b.plus(I.times(u=x)),b=u,d=h.minus(I.times(u=d)),h=u;return u=t(c.minus(p),E,0,1),b=b.plus(u.times(x)),p=p.plus(u.times(E)),b.s=x.s=ae.s,w=w*2,F=t(x,E,w,i).minus(ae).abs().comparedTo(t(b,p,w,i).minus(ae).abs())<1?[x,E]:[b,p],Y=S,F},s.toNumber=function(){return+xe(this)},s.toPrecision=function(c,d){return c!=null&&Be(c,1,He),W(this,c,d,2)},s.toString=function(c){var d,p=this,E=p.s,u=p.e;return u===null?E?(d="Infinity",E<0&&(d="-"+d)):d="NaN":(c==null?d=u<=l||u>=k?An(ot(p.c),u):ht(ot(p.c),u,"0"):c===10&&ve?(p=ge(new N(p),r+u+1,i),d=ht(ot(p.c),p.e,"0")):(Be(c,2,B.length,"Base"),d=n(ht(ot(p.c),u,"0"),10,c,E,!0)),E<0&&p.c[0]&&(d="-"+d)),d},s.valueOf=s.toJSON=function(){return xe(this)},s._isBigNumber=!0,s[Symbol.toStringTag]="BigNumber",s[Symbol.for("nodejs.util.inspect.custom")]=s.valueOf,e!=null&&N.set(e),N}function nt(e){var t=e|0;return e>0||e===t?t:t-1}function ot(e){for(var t,n,o=1,s=e.length,a=e[0]+"";o<s;){for(t=e[o++]+"",n=ye-t.length;n--;t="0"+t);a+=t}for(s=a.length;a.charCodeAt(--s)===48;);return a.slice(0,s+1||1)}function Ft(e,t){var n,o,s=e.c,a=t.c,r=e.s,i=t.s,l=e.e,k=t.e;if(!r||!i)return null;if(n=s&&!s[0],o=a&&!a[0],n||o)return n?o?0:-i:r;if(r!=i)return r;if(n=r<0,o=l==k,!s||!a)return o?0:!s^n?1:-1;if(!o)return l>k^n?1:-1;for(i=(l=s.length)<(k=a.length)?l:k,r=0;r<i;r++)if(s[r]!=a[r])return s[r]>a[r]^n?1:-1;return l==k?0:l>k^n?1:-1}function Be(e,t,n,o){if(e<t||e>n||e!==tt(e))throw Error(qe+(o||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function yn(e){var t=e.c.length-1;return nt(e.e/ye)==t&&e.c[t]%2!=0}function An(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function ht(e,t,n){var o,s;if(t<0){for(s=n+".";++t;s+=n);e=s+e}else if(o=e.length,++t>o){for(s=n,t-=o;--t;s+=n);e+=s}else t<o&&(e=e.slice(0,t)+"."+e.slice(t));return e}var ie=vs();class zt{baseUrl;constructor(t){this.baseUrl=t}buildUrl(t,n){const o=new URL(t,this.baseUrl);return n&&Object.entries(n).forEach(([s,a])=>{a!=null&&o.searchParams.append(s,String(a))}),o.toString()}async get(t,n={}){const o=this.buildUrl(t,n.query),s=await fetch(o,{method:"GET",headers:n.headers||{}});if(!s.ok){let r=null;try{r=await s.json()}catch{try{const l=await s.text();l&&(r={message:l})}catch{}}const i=new Error(r?.message||r?.errorMessage||`HTTP ${s.status}: ${s.statusText}`);throw i.status=s.status,i.statusText=s.statusText,r&&(i.data=r),i}return{data:await s.json(),status:s.status}}async post(t,n,o={}){const s=this.buildUrl(t,o.query),a=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json",...o.headers},body:JSON.stringify(n)});if(!a.ok){let i=null;try{i=await a.json()}catch{try{const k=await a.text();k&&(i={message:k})}catch{}}const l=new Error(i?.message||i?.errorMessage||`HTTP ${a.status}: ${a.statusText}`);throw l.status=a.status,l.statusText=a.statusText,i&&(l.data=i),l}return{data:await a.json(),status:a.status}}}const Ri=.01,Ts=new zt("https://wallet-api.pantograph.app"),Mi="https://deep-index.moralis.io";function tn(){return"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6ImY4NmY0Yzc2LTA3MDQtNGEwZS04YTA0LWUwODllOGQxMGZjZCIsIm9yZ0lkIjoiMzk0MDAyIiwidXNlcklkIjoiNDA0ODUzIiwidHlwZUlkIjoiYjQyODExOTQtOGQ0Yi00NjkxLTlhZjItNjU4ODE2NzExYmRjIiwidHlwZSI6IlBST0pFQ1QiLCJpYXQiOjE3MTY4NjQyNTYsImV4cCI6NDg3MjYyNDI1Nn0.V8crfBIBardAnZkc05FD0hQIJBeZxMqvzRnYExVtnF8"}function nn(e){return{"X-API-Key":e,Accept:"application/json"}}const on=new zt(Mi);async function Qe(e){const{address:t,chain:n="base",token_addresses:o,exclude_spam:s,exclude_unverified_contracts:a}=e;if(!t)throw new Error("Address is required");try{const r=tn(),i={chain:n,exclude_spam:s??!1,exclude_unverified_contracts:a??!1};o&&(i.token_addresses=o);const k=(await on.get(`/api/v2.2/wallets/${encodeURIComponent(t)}/tokens`,{query:i,headers:nn(r)})).data;if(k?.result?.length>0){k.result=k.result.filter(D=>new ie(D?.balance||0).gt(0)),k.result=k.result.map(D=>({...D,token_address:D.token_address===Ei?Ve:D.token_address}));try{if(k.result.length>0){const D=ms(n)??n,Y=k.result.map(A=>A.token_address),g=await Ts.get(`/keyrings/tokens/${D}/v2`,{query:{addresses:Y.join(",")}});if(Array.isArray(g.data)){const A=new Map;for(const y of g.data)y.address&&y.price!=null&&A.set(y.address.toLowerCase(),parseFloat(String(y.price)));k.result=k.result.map(y=>{const T=A.get(y.token_address.toLowerCase());if(T==null)return y;const B=ie(y.balance_formatted||"0").multipliedBy(T).toNumber();return{...y,usd_price:T,usd_value:B}}),k.result=k.result.filter(y=>y.usd_value==null||new ie(y.usd_value).gte(Ri))}}}catch(D){console.warn("⚠️ Failed to fetch Pantograph prices:",D)}}return{success:!0,data:k}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching token balances:",i),{success:!1,error:i}}}async function Cs(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Token address is required");try{const o=ms(n)??n,s=await Ts.get(`/keyrings/tokens/${o}/v2`,{query:{addresses:t}}),a=t===Ve,i=(Array.isArray(s.data)?s.data:[]).find(y=>y.address?.toLowerCase()===t.toLowerCase()||a&&y.address==="")??null;if(i)return{success:!0,data:{token_address:i.address??t,name:i.name??"",symbol:i.symbol??"",decimals:i.decimals!=null?Number(i.decimals):18,logo:i.icon_image||i.logo,thumbnail:i.icon_image||i.logo,usd_price:i.price!=null?parseFloat(i.price):void 0,usd_price_24hr_percent_change:i.price_change_percentage_24h??void 0,usd_price_24hr_usd_change:i.price_change_24h??void 0}};console.warn("⚠️ Pantograph returned no result, falling back to Moralis API");const l=tn(),[k,D]=await Promise.allSettled([on.get("/api/v2.2/erc20/metadata",{query:{chain:n,addresses:[t]},headers:nn(l)}),on.get(`/api/v2.2/erc20/${encodeURIComponent(t)}/price`,{query:{chain:n,include:"percent_change"},headers:nn(l)})]),Y=k.status==="fulfilled"?k.value.data:[];if(!Y||Y.length===0)return{success:!1,error:"Token metadata not found"};const g=Y[0],A=D.status==="fulfilled"?D.value.data:void 0;return{success:!0,data:{token_address:g.token_address,name:g.name,symbol:g.symbol,decimals:g.decimals,logo:g.logo||g.thumbnail,thumbnail:g.thumbnail,usd_price:A?.usdPrice??void 0,usd_price_24hr_percent_change:A?.["24hrPercentChange"]?parseFloat(A["24hrPercentChange"]):void 0,usd_price_24hr_usd_change:A?.usdPriceChange24hr??void 0}}}catch(o){const s=o instanceof Error?o.message:"Unknown error";return console.error("❌ Error fetching token metadata:",s),{success:!1,error:s}}}async function Hi(e){const{prompt:t,model:n="gpt-4.1-mini",stream:o=!1,systemPrompt:s}=e;if(!t)throw new Error("Prompt is required");try{const a=tn(),r=new zt("https://cortex-api.moralis.io"),i=s?`${s}
77
+ 选择要操作的代币:`,viewBalancesEmpty:"您的钱包在此链上没有任何代币。",viewBalancesFetchError:"获取余额时遇到错误,请重试。",buttonSendToken:"发送{symbol}",buttonSwapToken:"兑换{symbol}",buttonBuyMoreToken:"购买更多{symbol}",actionSendNativeLabel:"发送原生代币",actionSendNativeDesc:"发送原生代币(ETH、BNB、MATIC 等)到某个地址",actionSendTokenLabel:"发送代币(ERC20)",actionSendTokenDesc:"将 ERC20 代币发送到某个地址",actionSwapTokenLabel:"兑换代币",actionSwapTokenDesc:"将一种代币兑换为另一种代币",actionApproveTokenLabel:"授权代币",actionApproveTokenDesc:"授权某地址使用您的代币",actionWrapNativeLabel:"包装原生代币",actionWrapNativeDesc:"包装原生代币(ETH → WETH)",actionUnwrapNativeLabel:"解包原生代币",actionUnwrapNativeDesc:"解包原生代币(WETH → ETH)",actionSendNftLabel:"发送 NFT",actionSendNftDesc:"将 ERC721 或 ERC1155 NFT 转移到另一个地址",fieldToAddress:"收款地址",fieldAmount:"数量",fieldTokenContract:"代币合约",fieldTokenSymbol:"代币符号",fieldDecimals:"小数位数",fieldTokenIn:"源代币",fieldTokenInSymbol:"源代币符号",fieldTokenOut:"目标代币",fieldTokenOutSymbol:"目标代币符号",fieldTokenInDecimals:"源代币小数位",fieldTokenOutDecimals:"目标代币小数位",fieldSpenderAddress:"授权地址",fieldAmountUnlimited:"数量(留空 = 无限授权)",fieldNftContract:"NFT 合约",fieldTokenId:"Token ID",fieldTokenStandard:"代币标准",fieldNftName:"NFT 名称",formMustBePositiveInteger:"必须是正整数",formAmountExceedsNft:"数量不能超过可用余额 {max}",receivedButtonValue:"已收到:{value}",actionExecutedFor:'操作 "{action}" 已为 {value} 执行',buyTokenHelp:"我来帮您购买 {symbol}。让我展示您可用于交易的代币。",tokenNotFoundOnChain:'在此链上找不到代币 "{symbol}"。以下是您可以购买的热门代币:',swapPreparing:"正在准备您的兑换...",swapConfirmYes:"是",swapChooseFrom:"请选择您要兑换的源代币:",swapChooseTo:"您要兑换 {symbol}。请选择您想要接收的代币:",swapNeedDetails:'我需要更多兑换详情。请指定您要兑换的代币(例如:"兑换 1 ETH 到 USDC")。',viewNftsLoading:"让我展示您的 NFT 收藏!",sendTokenChoose:"您想发送哪种代币?",sendNftChoose:"您想发送哪个 NFT?",swapChooseToken:"您想兑换哪种代币?以下是您当前的余额:",spendable:"可用"}};function ho(e,t){return mo[t]?.[e]??mo.en[e]??e}function Gs(e,t){return e.replace(/\{(\w+)\}/g,(n,s)=>t[s]??`{${s}}`)}const go=te.createContext(void 0),Ys=({children:e,initialLanguage:t="en"})=>{const[n,s]=te.useState(t);te.useEffect(()=>{t&&s(t)},[t]);const o=te.useCallback(r=>ho(r,n),[n]),a=te.useCallback((r,i)=>Gs(ho(r,n),i),[n]);return P.jsx(go.Provider,{value:{language:n,setLanguage:s,t:o,ti:a},children:e})},In=()=>{const e=te.useContext(go);if(!e)throw new Error("useLanguage must be used within a LanguageProvider");return e},zs=te.memo(({onClick:e,buttonSize:t=56})=>{const{t:n}=In(),s=o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),e())};return P.jsx("button",{className:"chat-button",onClick:e,onKeyDown:s,"aria-label":n("openChat"),title:n("openChatTitle"),type:"button",children:P.jsx("img",{src:Vs,width:t,height:t,alt:"Ask AI"})})});function dt(e){const t={formatters:void 0,fees:void 0,serializers:void 0,...e};function n(s){return o=>{const a=typeof o=="function"?o(s):o,r={...s,...a};return Object.assign(r,{extend:n(r)})}}return Object.assign(t,{extend:n(t)})}const wo="2.45.1";let Nn={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,version:`viem@${wo}`};class me extends Error{constructor(t,n={}){const s=n.cause instanceof me?n.cause.details:n.cause?.message?n.cause.message:n.details,o=n.cause instanceof me&&n.cause.docsPath||n.docsPath,a=Nn.getDocsUrl?.({...n,docsPath:o}),r=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...a?[`Docs: ${a}`]:[],...s?[`Details: ${s}`]:[],...Nn.version?[`Version: ${Nn.version}`]:[]].join(`
78
+ `);super(r,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=s,this.docsPath=o,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=wo}walk(t){return bo(this,t)}}function bo(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?bo(e.cause,t):t?null:e}class Bn extends me{constructor({max:t,min:n,signed:s,size:o,value:a}){super(`Number "${a}" is not in safe ${o?`${o*8}-bit ${s?"signed":"unsigned"} `:""}integer range ${t?`(${n} to ${t})`:`(above ${n})`}`,{name:"IntegerOutOfRangeError"})}}class Js extends me{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function Dt(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function Je(e){return Dt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function ln(e,{dir:t="left"}={}){let n=typeof e=="string"?e.replace("0x",""):e,s=0;for(let o=0;o<n.length-1&&n[t==="left"?o:n.length-o-1].toString()==="0";o++)s++;return n=t==="left"?n.slice(s):n.slice(0,n.length-s),typeof e=="string"?(n.length===1&&t==="right"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}class yo extends me{constructor({offset:t,position:n,size:s}){super(`Slice ${n==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${s}).`,{name:"SliceOffsetOutOfBoundsError"})}}class Ao extends me{constructor({size:t,targetSize:n,type:s}){super(`${s.charAt(0).toUpperCase()}${s.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`,{name:"SizeExceedsPaddingSizeError"})}}function Lt(e,{dir:t,size:n=32}={}){return typeof e=="string"?bt(e,{dir:t,size:n}):js(e,{dir:t,size:n})}function bt(e,{dir:t,size:n=32}={}){if(n===null)return e;const s=e.replace("0x","");if(s.length>n*2)throw new Ao({size:Math.ceil(s.length/2),targetSize:n,type:"hex"});return`0x${s[t==="right"?"padEnd":"padStart"](n*2,"0")}`}function js(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new Ao({size:e.length,targetSize:n,type:"bytes"});const s=new Uint8Array(n);for(let o=0;o<n;o++){const a=t==="right";s[a?o:n-o-1]=e[a?o:e.length-o-1]}return s}const qs=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ut(e,t={}){return typeof e=="number"||typeof e=="bigint"?de(e,t):typeof e=="string"?vo(e,t):typeof e=="boolean"?ko(e,t):ut(e,t)}function ko(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(Rt(n,{size:t.size}),Lt(n,{size:t.size})):n}function ut(e,t={}){let n="";for(let o=0;o<e.length;o++)n+=qs[e[o]];const s=`0x${n}`;return typeof t.size=="number"?(Rt(s,{size:t.size}),Lt(s,{dir:"right",size:t.size})):s}function de(e,t={}){const{signed:n,size:s}=t,o=BigInt(e);let a;s?n?a=(1n<<BigInt(s)*8n-1n)-1n:a=2n**(BigInt(s)*8n)-1n:typeof e=="number"&&(a=BigInt(Number.MAX_SAFE_INTEGER));const r=typeof a=="bigint"&&n?-a-1n:0;if(a&&o>a||o<r){const l=typeof e=="bigint"?"n":"";throw new Bn({max:a?`${a}${l}`:void 0,min:`${r}${l}`,signed:n,size:s,value:`${e}${l}`})}const i=`0x${(n&&o<0?(1n<<BigInt(s*8))+BigInt(o):o).toString(16)}`;return s?Lt(i,{size:s}):i}const Qs=new TextEncoder;function vo(e,t={}){const n=Qs.encode(e);return ut(n,t)}const Xs=new TextEncoder;function Fn(e,t={}){return typeof e=="number"||typeof e=="bigint"?Zs(e,t):typeof e=="boolean"?Ks(e,t):Dt(e)?Ct(e,t):Co(e,t)}function Ks(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),typeof t.size=="number"?(Rt(n,{size:t.size}),Lt(n,{size:t.size})):n}const ft={zero:48,nine:57,A:65,F:70,a:97,f:102};function To(e){if(e>=ft.zero&&e<=ft.nine)return e-ft.zero;if(e>=ft.A&&e<=ft.F)return e-(ft.A-10);if(e>=ft.a&&e<=ft.f)return e-(ft.a-10)}function Ct(e,t={}){let n=e;t.size&&(Rt(n,{size:t.size}),n=Lt(n,{dir:"right",size:t.size}));let s=n.slice(2);s.length%2&&(s=`0${s}`);const o=s.length/2,a=new Uint8Array(o);for(let r=0,i=0;r<o;r++){const l=To(s.charCodeAt(i++)),k=To(s.charCodeAt(i++));if(l===void 0||k===void 0)throw new me(`Invalid byte sequence ("${s[i-2]}${s[i-1]}" in "${s}").`);a[r]=l*16+k}return a}function Zs(e,t){const n=de(e,t);return Ct(n)}function Co(e,t={}){const n=Xs.encode(e);return typeof t.size=="number"?(Rt(n,{size:t.size}),Lt(n,{dir:"right",size:t.size})):n}function Rt(e,{size:t}){if(Je(e)>t)throw new Js({givenSize:Je(e),maxSize:t})}function Mt(e,t={}){const{signed:n}=t;t.size&&Rt(e,{size:t.size});const s=BigInt(e);if(!n)return s;const o=(e.length-2)/2,a=(1n<<BigInt(o)*8n-1n)-1n;return s<=a?s:s-BigInt(`0x${"f".padStart(o*2,"f")}`)-1n}function dn(e,t={}){const n=Mt(e,t),s=Number(n);if(!Number.isSafeInteger(s))throw new Bn({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:t.signed,size:t.size,value:`${n}n`});return s}function Pn(e,t){return({exclude:n,format:s})=>({exclude:n,format:(o,a)=>{const r=t(o,a);if(n)for(const i of n)delete r[i];return{...r,...s(o,a)}},type:e})}const Eo={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function On(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?dn(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?dn(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?Eo[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=$s(e.authorizationList)),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof n.v=="bigint"){if(n.v===0n||n.v===27n)return 0;if(n.v===1n||n.v===28n)return 1;if(n.v>=35n)return n.v%2n===0n?1:0}})(),n.type==="legacy"&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),n.type==="eip2930"&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),n.type==="eip1559"&&delete n.maxFeePerBlobGas,n}const _s=Pn("transaction",On);function $s(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function ea(e,t){const n=(e.transactions??[]).map(s=>typeof s=="string"?s:On(s));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const ta=Pn("block",ea);function na(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):e.blockTimestamp===null?null:void 0,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}const oa={"0x0":"reverted","0x1":"success"};function sa(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(s=>na(s)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?dn(e.transactionIndex):null,status:e.status?oa[e.status]:null,type:e.type?Eo[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const aa=Pn("transactionReceipt",sa),ra={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function ia(e,t){const n={};return typeof e.authorizationList<"u"&&(n.authorizationList=ca(e.authorizationList)),typeof e.accessList<"u"&&(n.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(n.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?n.blobs=e.blobs.map(s=>ut(s)):n.blobs=e.blobs),typeof e.data<"u"&&(n.data=e.data),e.account&&(n.from=e.account.address),typeof e.from<"u"&&(n.from=e.from),typeof e.gas<"u"&&(n.gas=de(e.gas)),typeof e.gasPrice<"u"&&(n.gasPrice=de(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(n.maxFeePerBlobGas=de(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(n.maxFeePerGas=de(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(n.maxPriorityFeePerGas=de(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(n.nonce=de(e.nonce)),typeof e.to<"u"&&(n.to=e.to),typeof e.type<"u"&&(n.type=ra[e.type]),typeof e.value<"u"&&(n.value=de(e.value)),n}function ca(e){return e.map(t=>({address:t.address,r:t.r?de(BigInt(t.r)):t.r,s:t.s?de(BigInt(t.s)):t.s,chainId:de(t.chainId),nonce:de(t.nonce),...typeof t.yParity<"u"?{yParity:de(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:de(t.v)}:{}}))}const Ht=2n**256n-1n;function Wt(e){return typeof e[0]=="string"?Et(e):la(e)}function la(e){let t=0;for(const o of e)t+=o.length;const n=new Uint8Array(t);let s=0;for(const o of e)n.set(o,s),s+=o.length;return n}function Et(e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}class So extends me{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class da extends me{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class ua extends me{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const fa={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ua({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new da({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new So({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new So({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function xo(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(fa);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function St(e,t="hex"){const n=Io(e),s=xo(new Uint8Array(n.length));return n.encode(s),t==="hex"?ut(s.bytes):s.bytes}function Io(e){return Array.isArray(e)?pa(e.map(t=>Io(t))):ma(e)}function pa(e){const t=e.reduce((o,a)=>o+a.length,0),n=No(t);return{length:t<=55?1+t:1+n+t,encode(o){t<=55?o.pushByte(192+t):(o.pushByte(247+n),n===1?o.pushUint8(t):n===2?o.pushUint16(t):n===3?o.pushUint24(t):o.pushUint32(t));for(const{encode:a}of e)a(o)}}}function ma(e){const t=typeof e=="string"?Ct(e):e,n=No(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(o){t.length===1&&t[0]<128?o.pushBytes(t):t.length<=55?(o.pushByte(128+t.length),o.pushBytes(t)):(o.pushByte(183+n),n===1?o.pushUint8(t.length):n===2?o.pushUint16(t.length):n===3?o.pushUint24(t.length):o.pushUint32(t.length),o.pushBytes(t))}}}function No(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new me("Length is too large.")}const ha={gwei:9,wei:18},ga={ether:-9,wei:9};function Le(e,t){let n=e.toString();const s=n.startsWith("-");s&&(n=n.slice(1)),n=n.padStart(t,"0");let[o,a]=[n.slice(0,n.length-t),n.slice(n.length-t)];return a=a.replace(/(0+)$/,""),`${s?"-":""}${o||"0"}${a?`.${a}`:""}`}function wa(e,t="wei"){return Le(e,ha[t])}function xt(e,t="wei"){return Le(e,ga[t])}function Bo(e){const t=Object.entries(e).map(([s,o])=>o===void 0||o===!1?null:[s,o]).filter(Boolean),n=t.reduce((s,[o])=>Math.max(s,o.length),0);return t.map(([s,o])=>` ${`${s}:`.padEnd(n+1)} ${o}`).join(`
79
+ `)}class ba extends me{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class ya extends me{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Bo(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class Aa extends me{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function ka(e){if(!e||e.length===0)return[];const t=[];for(const n of e){const{chainId:s,nonce:o,...a}=n,r=n.address;t.push([s?Ut(s):"0x",r,o?Ut(o):"0x",...Kt({},a)])}return t}function Fo(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),s=typeof e.blobs[0]=="string"?e.blobs.map(a=>Ct(a)):e.blobs,o=[];for(const a of s)o.push(Uint8Array.from(t.blobToKzgCommitment(a)));return n==="bytes"?o:o.map(a=>ut(a))}function Po(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),s=typeof e.blobs[0]=="string"?e.blobs.map(r=>Ct(r)):e.blobs,o=typeof e.commitments[0]=="string"?e.commitments.map(r=>Ct(r)):e.commitments,a=[];for(let r=0;r<s.length;r++){const i=s[r],l=o[r];a.push(Uint8Array.from(t.computeBlobKzgProof(i,l)))}return n==="bytes"?a:a.map(r=>ut(r))}function va(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Oo(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function jt(e,...t){if(!va(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function un(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Do(e,t){jt(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ta(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function qt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Dn(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function at(e,t){return e<<32-t|e>>>t}const Ca=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Ea(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Sa(e){for(let t=0;t<e.length;t++)e[t]=Ea(e[t]);return e}const Lo=Ca?e=>e:Sa;function xa(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Ln(e){return typeof e=="string"&&(e=xa(e)),jt(e),e}class Uo{}function Ro(e){const t=s=>e().update(Ln(s)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ia(e,t,n,s){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,s);const o=BigInt(32),a=BigInt(4294967295),r=Number(n>>o&a),i=Number(n&a),l=s?4:0,k=s?0:4;e.setUint32(t+l,r,s),e.setUint32(t+k,i,s)}function Na(e,t,n){return e&t^~e&n}function Ba(e,t,n){return e&t^e&n^t&n}class Fa extends Uo{constructor(t,n,s,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=s,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Dn(this.buffer)}update(t){un(this),t=Ln(t),jt(t);const{view:n,buffer:s,blockLen:o}=this,a=t.length;for(let r=0;r<a;){const i=Math.min(o-this.pos,a-r);if(i===o){const l=Dn(t);for(;o<=a-r;r+=o)this.process(l,r);continue}s.set(t.subarray(r,r+i),this.pos),this.pos+=i,r+=i,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){un(this),Do(t,this),this.finished=!0;const{buffer:n,view:s,blockLen:o,isLE:a}=this;let{pos:r}=this;n[r++]=128,qt(this.buffer.subarray(r)),this.padOffset>o-r&&(this.process(s,0),r=0);for(let Y=r;Y<o;Y++)n[Y]=0;Ia(s,o-8,BigInt(this.length*8),a),this.process(s,0);const i=Dn(t),l=this.outputLen;if(l%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const k=l/4,O=this.get();if(k>O.length)throw new Error("_sha2: outputLen bigger than state");for(let Y=0;Y<k;Y++)i.setUint32(4*Y,O[Y],a)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const s=t.slice(0,n);return this.destroy(),s}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:n,buffer:s,length:o,finished:a,destroyed:r,pos:i}=this;return t.destroyed=r,t.finished=a,t.length=o,t.pos=i,o%n&&t.buffer.set(s),t}clone(){return this._cloneInto()}}const yt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),fn=BigInt(2**32-1),Mo=BigInt(32);function Pa(e,t=!1){return t?{h:Number(e&fn),l:Number(e>>Mo&fn)}:{h:Number(e>>Mo&fn)|0,l:Number(e&fn)|0}}function Oa(e,t=!1){const n=e.length;let s=new Uint32Array(n),o=new Uint32Array(n);for(let a=0;a<n;a++){const{h:r,l:i}=Pa(e[a],t);[s[a],o[a]]=[r,i]}return[s,o]}const Da=(e,t,n)=>e<<n|t>>>32-n,La=(e,t,n)=>t<<n|e>>>32-n,Ua=(e,t,n)=>t<<n-32|e>>>64-n,Ra=(e,t,n)=>e<<n-32|t>>>64-n,Ma=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),At=new Uint32Array(64);class Ha extends Fa{constructor(t=32){super(64,t,8,!1),this.A=yt[0]|0,this.B=yt[1]|0,this.C=yt[2]|0,this.D=yt[3]|0,this.E=yt[4]|0,this.F=yt[5]|0,this.G=yt[6]|0,this.H=yt[7]|0}get(){const{A:t,B:n,C:s,D:o,E:a,F:r,G:i,H:l}=this;return[t,n,s,o,a,r,i,l]}set(t,n,s,o,a,r,i,l){this.A=t|0,this.B=n|0,this.C=s|0,this.D=o|0,this.E=a|0,this.F=r|0,this.G=i|0,this.H=l|0}process(t,n){for(let Y=0;Y<16;Y++,n+=4)At[Y]=t.getUint32(n,!1);for(let Y=16;Y<64;Y++){const g=At[Y-15],A=At[Y-2],y=at(g,7)^at(g,18)^g>>>3,T=at(A,17)^at(A,19)^A>>>10;At[Y]=T+At[Y-7]+y+At[Y-16]|0}let{A:s,B:o,C:a,D:r,E:i,F:l,G:k,H:O}=this;for(let Y=0;Y<64;Y++){const g=at(i,6)^at(i,11)^at(i,25),A=O+g+Na(i,l,k)+Ma[Y]+At[Y]|0,T=(at(s,2)^at(s,13)^at(s,22))+Ba(s,o,a)|0;O=k,k=l,l=i,i=r+A|0,r=a,a=o,o=s,s=A+T|0}s=s+this.A|0,o=o+this.B|0,a=a+this.C|0,r=r+this.D|0,i=i+this.E|0,l=l+this.F|0,k=k+this.G|0,O=O+this.H|0,this.set(s,o,a,r,i,l,k,O)}roundClean(){qt(At)}destroy(){this.set(0,0,0,0,0,0,0,0),qt(this.buffer)}}const Wa=Ro(()=>new Ha);function Va(e,t){return Wa(Dt(e,{strict:!1})?Fn(e):e)}function Ga(e){const{commitment:t,version:n=1}=e,s=e.to??(typeof t=="string"?"hex":"bytes"),o=Va(t);return o.set([n],0),s==="bytes"?o:ut(o)}function Ya(e){const{commitments:t,version:n}=e,s=e.to??(typeof t[0]=="string"?"hex":"bytes"),o=[];for(const a of t)o.push(Ga({commitment:a,to:s,version:n}));return o}const Ho=6,Wo=32,Un=4096,Vo=Wo*Un,Go=Vo*Ho-1-1*Un*Ho,Yo=1;class za extends me{constructor({maxSize:t,size:n}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${n} bytes`],name:"BlobSizeTooLargeError"})}}class zo extends me{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class Ja extends me{constructor({hash:t,size:n}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${n}`],name:"InvalidVersionedHashSizeError"})}}class ja extends me{constructor({hash:t,version:n}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${Yo}`,`Received: ${n}`],name:"InvalidVersionedHashVersionError"})}}function qa(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),n=typeof e.data=="string"?Ct(e.data):e.data,s=Je(n);if(!s)throw new zo;if(s>Go)throw new za({maxSize:Go,size:s});const o=[];let a=!0,r=0;for(;a;){const i=xo(new Uint8Array(Vo));let l=0;for(;l<Un;){const k=n.slice(r,r+(Wo-1));if(i.pushByte(0),i.pushBytes(k),k.length<31){i.pushByte(128),a=!1;break}l++,r+=31}o.push(i)}return t==="bytes"?o.map(i=>i.bytes):o.map(i=>ut(i.bytes))}function Qa(e){const{data:t,kzg:n,to:s}=e,o=e.blobs??qa({data:t,to:s}),a=e.commitments??Fo({blobs:o,kzg:n,to:s}),r=e.proofs??Po({blobs:o,commitments:a,kzg:n,to:s}),i=[];for(let l=0;l<o.length;l++)i.push({blob:o[l],commitment:a[l],proof:r[l]});return i}class rt extends me{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class pn extends me{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Vt extends me{constructor({cause:t,message:n}={}){const s=n?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${s?`with reason: ${s}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}}Object.defineProperty(Vt,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(Vt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class It extends me{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${xt(n)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(It,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class Rn extends me{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${xt(n)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}}Object.defineProperty(Rn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class Mn extends me{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}}Object.defineProperty(Mn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class Hn extends me{constructor({cause:t,nonce:n}={}){super([`Nonce provided for the transaction ${n?`(${n}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
80
+ `),{cause:t,name:"NonceTooLowError"})}}Object.defineProperty(Hn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class Wn extends me{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}}Object.defineProperty(Wn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class Vn extends me{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
81
+ `),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(Vn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class Gn extends me{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(Gn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class Yn extends me{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(Yn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class zn extends me{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(zn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class Qt extends me{constructor({cause:t,maxPriorityFeePerGas:n,maxFeePerGas:s}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${n?` = ${xt(n)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${s?` = ${xt(s)} gwei`:""}).`].join(`
82
+ `),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(Qt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Jo extends me{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}class jo extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const n=super.get(t);return super.has(t)&&n!==void 0&&(this.delete(t),super.set(t,n)),n}set(t,n){if(super.set(t,n),this.maxSize&&this.size>this.maxSize){const s=this.keys().next().value;s&&this.delete(s)}return this}}const Xa=BigInt(0),Xt=BigInt(1),Ka=BigInt(2),Za=BigInt(7),_a=BigInt(256),$a=BigInt(113),qo=[],Qo=[],Xo=[];for(let e=0,t=Xt,n=1,s=0;e<24;e++){[n,s]=[s,(2*n+3*s)%5],qo.push(2*(5*s+n)),Qo.push((e+1)*(e+2)/2%64);let o=Xa;for(let a=0;a<7;a++)t=(t<<Xt^(t>>Za)*$a)%_a,t&Ka&&(o^=Xt<<(Xt<<BigInt(a))-Xt);Xo.push(o)}const Ko=Oa(Xo,!0),er=Ko[0],tr=Ko[1],Zo=(e,t,n)=>n>32?Ua(e,t,n):Da(e,t,n),_o=(e,t,n)=>n>32?Ra(e,t,n):La(e,t,n);function nr(e,t=24){const n=new Uint32Array(10);for(let s=24-t;s<24;s++){for(let r=0;r<10;r++)n[r]=e[r]^e[r+10]^e[r+20]^e[r+30]^e[r+40];for(let r=0;r<10;r+=2){const i=(r+8)%10,l=(r+2)%10,k=n[l],O=n[l+1],Y=Zo(k,O,1)^n[i],g=_o(k,O,1)^n[i+1];for(let A=0;A<50;A+=10)e[r+A]^=Y,e[r+A+1]^=g}let o=e[2],a=e[3];for(let r=0;r<24;r++){const i=Qo[r],l=Zo(o,a,i),k=_o(o,a,i),O=qo[r];o=e[O],a=e[O+1],e[O]=l,e[O+1]=k}for(let r=0;r<50;r+=10){for(let i=0;i<10;i++)n[i]=e[r+i];for(let i=0;i<10;i++)e[r+i]^=~n[(i+2)%10]&n[(i+4)%10]}e[0]^=er[s],e[1]^=tr[s]}qt(n)}class Jn extends Uo{constructor(t,n,s,o=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=s,this.enableXOF=o,this.rounds=a,Oo(s),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Ta(this.state)}clone(){return this._cloneInto()}keccak(){Lo(this.state32),nr(this.state32,this.rounds),Lo(this.state32),this.posOut=0,this.pos=0}update(t){un(this),t=Ln(t),jt(t);const{blockLen:n,state:s}=this,o=t.length;for(let a=0;a<o;){const r=Math.min(n-this.pos,o-a);for(let i=0;i<r;i++)s[this.pos++]^=t[a++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:s,blockLen:o}=this;t[s]^=n,(n&128)!==0&&s===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){un(this,!1),jt(t),this.finish();const n=this.state,{blockLen:s}=this;for(let o=0,a=t.length;o<a;){this.posOut>=s&&this.keccak();const r=Math.min(s-this.posOut,a-o);t.set(n.subarray(this.posOut,this.posOut+r),o),this.posOut+=r,o+=r}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Oo(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Do(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,qt(this.state)}_cloneInto(t){const{blockLen:n,suffix:s,outputLen:o,rounds:a,enableXOF:r}=this;return t||(t=new Jn(n,s,o,r,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=s,t.outputLen=o,t.enableXOF=r,t.destroyed=this.destroyed,t}}const or=(e,t,n)=>Ro(()=>new Jn(t,e,n)),sr=or(1,136,256/8);function $o(e,t){const n=t||"hex",s=sr(Dt(e,{strict:!1})?Fn(e):e);return n==="bytes"?s:Ut(s)}const jn=new jo(8192);function ar(e,t){if(jn.has(`${e}.${t}`))return jn.get(`${e}.${t}`);const n=e.substring(2).toLowerCase(),s=$o(Co(n),"bytes"),o=n.split("");for(let r=0;r<40;r+=2)s[r>>1]>>4>=8&&o[r]&&(o[r]=o[r].toUpperCase()),(s[r>>1]&15)>=8&&o[r+1]&&(o[r+1]=o[r+1].toUpperCase());const a=`0x${o.join("")}`;return jn.set(`${e}.${t}`,a),a}const rr=/^0x[a-fA-F0-9]{40}$/,qn=new jo(8192);function Me(e,t){const{strict:n=!0}=t??{},s=`${e}.${n}`;if(qn.has(s))return qn.get(s);const o=rr.test(e)?e.toLowerCase()===e?!0:n?ar(e)===e:!0:!1;return qn.set(s,o),o}function Qn(e,t,n,{strict:s}={}){return Dt(e,{strict:!1})?cr(e,t,n,{strict:s}):ir(e,t,n,{strict:s})}function es(e,t){if(typeof t=="number"&&t>0&&t>Je(e)-1)throw new yo({offset:t,position:"start",size:Je(e)})}function ts(e,t,n){if(typeof t=="number"&&typeof n=="number"&&Je(e)!==n-t)throw new yo({offset:n,position:"end",size:Je(e)})}function ir(e,t,n,{strict:s}={}){es(e,t);const o=e.slice(t,n);return s&&ts(o,t,n),o}function cr(e,t,n,{strict:s}={}){es(e,t);const o=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return s&&ts(o,t,n),o}function lr(e){const{authorizationList:t}=e;if(t)for(const n of t){const{chainId:s}=n,o=n.address;if(!Me(o))throw new rt({address:o});if(s<0)throw new pn({chainId:s})}Xn(e)}function dr(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new zo;for(const n of t){const s=Je(n),o=dn(Qn(n,0,1));if(s!==32)throw new Ja({hash:n,size:s});if(o!==Yo)throw new ja({hash:n,version:o})}}Xn(e)}function Xn(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:s,to:o}=e;if(t<=0)throw new pn({chainId:t});if(o&&!Me(o))throw new rt({address:o});if(s&&s>Ht)throw new It({maxFeePerGas:s});if(n&&s&&n>s)throw new Qt({maxFeePerGas:s,maxPriorityFeePerGas:n})}function ur(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:s,maxFeePerGas:o,to:a}=e;if(t<=0)throw new pn({chainId:t});if(a&&!Me(a))throw new rt({address:a});if(n||o)throw new me("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(s&&s>Ht)throw new It({maxFeePerGas:s})}function fr(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:s,maxFeePerGas:o,to:a}=e;if(a&&!Me(a))throw new rt({address:a});if(typeof t<"u"&&t<=0)throw new pn({chainId:t});if(n||o)throw new me("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(s&&s>Ht)throw new It({maxFeePerGas:s})}function pr(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new ya({transaction:e})}function mn(e){if(!e||e.length===0)return[];const t=[];for(let n=0;n<e.length;n++){const{address:s,storageKeys:o}=e[n];for(let a=0;a<o.length;a++)if(o[a].length-2!==64)throw new Aa({storageKey:o[a]});if(!Me(s,{strict:!1}))throw new rt({address:s});t.push([s,o])}return t}function mr(e,t){const n=pr(e);return n==="eip1559"?wr(e,t):n==="eip2930"?br(e,t):n==="eip4844"?gr(e,t):n==="eip7702"?hr(e,t):yr(e,t)}function hr(e,t){const{authorizationList:n,chainId:s,gas:o,nonce:a,to:r,value:i,maxFeePerGas:l,maxPriorityFeePerGas:k,accessList:O,data:Y}=e;lr(e);const g=mn(O),A=ka(n);return Et(["0x04",St([de(s),a?de(a):"0x",k?de(k):"0x",l?de(l):"0x",o?de(o):"0x",r??"0x",i?de(i):"0x",Y??"0x",g,A,...Kt(e,t)])])}function gr(e,t){const{chainId:n,gas:s,nonce:o,to:a,value:r,maxFeePerBlobGas:i,maxFeePerGas:l,maxPriorityFeePerGas:k,accessList:O,data:Y}=e;dr(e);let g=e.blobVersionedHashes,A=e.sidecars;if(e.blobs&&(typeof g>"u"||typeof A>"u")){const W=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(ge=>ut(ge)),J=e.kzg,he=Fo({blobs:W,kzg:J});if(typeof g>"u"&&(g=Ya({commitments:he})),typeof A>"u"){const ge=Po({blobs:W,commitments:he,kzg:J});A=Qa({blobs:W,commitments:he,proofs:ge})}}const y=mn(O),T=[de(n),o?de(o):"0x",k?de(k):"0x",l?de(l):"0x",s?de(s):"0x",a??"0x",r?de(r):"0x",Y??"0x",y,i?de(i):"0x",g??[],...Kt(e,t)],B=[],ve=[],N=[];if(A)for(let W=0;W<A.length;W++){const{blob:J,commitment:he,proof:ge}=A[W];B.push(J),ve.push(he),N.push(ge)}return Et(["0x03",St(A?[T,B,ve,N]:T)])}function wr(e,t){const{chainId:n,gas:s,nonce:o,to:a,value:r,maxFeePerGas:i,maxPriorityFeePerGas:l,accessList:k,data:O}=e;Xn(e);const Y=mn(k),g=[de(n),o?de(o):"0x",l?de(l):"0x",i?de(i):"0x",s?de(s):"0x",a??"0x",r?de(r):"0x",O??"0x",Y,...Kt(e,t)];return Et(["0x02",St(g)])}function br(e,t){const{chainId:n,gas:s,data:o,nonce:a,to:r,value:i,accessList:l,gasPrice:k}=e;ur(e);const O=mn(l),Y=[de(n),a?de(a):"0x",k?de(k):"0x",s?de(s):"0x",r??"0x",i?de(i):"0x",o??"0x",O,...Kt(e,t)];return Et(["0x01",St(Y)])}function yr(e,t){const{chainId:n=0,gas:s,data:o,nonce:a,to:r,value:i,gasPrice:l}=e;fr(e);let k=[a?de(a):"0x",l?de(l):"0x",s?de(s):"0x",r??"0x",i?de(i):"0x",o??"0x"];if(t){const O=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+t.v-27n);const A=27n+(t.v===27n?0n:1n);if(t.v!==A)throw new ba({v:t.v});return A})(),Y=ln(t.r),g=ln(t.s);k=[...k,de(O),Y==="0x00"?"0x":Y,g==="0x00"?"0x":g]}else n>0&&(k=[...k,de(n),"0x","0x"]);return St(k)}function Kt(e,t){const n=t??e,{v:s,yParity:o}=n;if(typeof n.r>"u")return[];if(typeof n.s>"u")return[];if(typeof s>"u"&&typeof o>"u")return[];const a=ln(n.r),r=ln(n.s);return[typeof o=="number"?o?de(1):"0x":s===0n?"0x":s===1n?de(1):s===27n?"0x":de(1),a==="0x00"?"0x":a,r==="0x00"?"0x":r]}const Ar={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},kr={block:ta({format(e){return{transactions:e.transactions?.map(n=>{if(typeof n=="string")return n;const s=On(n);return s.typeHex==="0x7e"&&(s.isSystemTx=n.isSystemTx,s.mint=n.mint?Mt(n.mint):void 0,s.sourceHash=n.sourceHash,s.type="deposit"),s}),stateRoot:e.stateRoot}}}),transaction:_s({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Mt(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:aa({format(e){return{l1GasPrice:e.l1GasPrice?Mt(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Mt(e.l1GasUsed):null,l1Fee:e.l1Fee?Mt(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function vr(e,t){return Er(e)?Cr(e):mr(e,t)}const Tr={transaction:vr};function Cr(e){Sr(e);const{sourceHash:t,data:n,from:s,gas:o,isSystemTx:a,mint:r,to:i,value:l}=e,k=[t,s,i??"0x",r?Ut(r):"0x",l?Ut(l):"0x",o?Ut(o):"0x",a?"0x1":"0x",n??"0x"];return Et(["0x7e",St(k)])}function Er(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function Sr(e){const{from:t,to:n}=e;if(t&&!Me(t))throw new rt({address:t});if(n&&!Me(n))throw new rt({address:n})}const hn={blockTime:2e3,contracts:Ar,formatters:kr,serializers:Tr},xr=dt({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:250,rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),Ir=dt({id:43114,name:"Avalanche",blockTime:1700,nativeCurrency:{decimals:18,name:"Avalanche",symbol:"AVAX"},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},blockExplorers:{default:{name:"SnowTrace",url:"https://snowtrace.io",apiUrl:"https://api.snowtrace.io"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}}}),Zt=1,ns=dt({...hn,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...hn.contracts,disputeGameFactory:{[Zt]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Zt]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Zt]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Zt]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:Zt});({...ns});const Nr=dt({id:56,name:"BNB Smart Chain",blockTime:750,nativeCurrency:{decimals:18,name:"BNB",symbol:"BNB"},rpcUrls:{default:{http:["https://56.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com",apiUrl:"https://api.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}}});function Kn(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}class Br extends me{constructor({docsPath:t}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
83
+ `),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}}function Zn(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new Mr(e.type);return`${e.name}(${os(e.inputs,{includeName:t})})`}function os(e,{includeName:t=!1}={}){return e?e.map(n=>Fr(n,{includeName:t})).join(t?", ":","):""}function Fr(e,{includeName:t}){return e.type.startsWith("tuple")?`(${os(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}class Pr extends me{constructor({expectedLength:t,givenLength:n,type:s}){super([`ABI encoding array length mismatch for type ${s}.`,`Expected length: ${t}`,`Given length: ${n}`].join(`
84
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}}class Or extends me{constructor({expectedSize:t,value:n}){super(`Size of bytes "${n}" (bytes${Je(n)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class Dr extends me{constructor({expectedLength:t,givenLength:n}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${n}`].join(`
85
+ `),{name:"AbiEncodingLengthMismatchError"})}}class ss extends me{constructor(t,{docsPath:n}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
86
+ `),{docsPath:n,name:"AbiFunctionNotFoundError"})}}class Lr extends me{constructor(t,n){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${Zn(t.abiItem)}\`, and`,`\`${n.type}\` in \`${Zn(n.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}class Ur extends me{constructor(t,{docsPath:n}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
87
+ `),{docsPath:n,name:"InvalidAbiEncodingType"})}}class Rr extends me{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
88
+ `),{name:"InvalidArrayError"})}}class Mr extends me{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
89
+ `),{name:"InvalidDefinitionTypeError"})}}const Hr=e=>$o(Fn(e));function Wr(e){return Hr(e)}function Vr(e,t){return e.exec(t)?.groups}const as=/^tuple(?<array>(\[(\d*)\])*)$/;function _n(e){let t=e.type;if(as.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let o=0;o<n;o++){const a=e.components[o];t+=_n(a),o<n-1&&(t+=", ")}const s=Vr(as,e.type);return t+=`)${s?.array||""}`,_n({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function _t(e){let t="";const n=e.length;for(let s=0;s<n;s++){const o=e[s];t+=_n(o),s!==n-1&&(t+=", ")}return t}function Gr(e){return e.type==="function"?`function ${e.name}(${_t(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${_t(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${_t(e.inputs)})`:e.type==="error"?`error ${e.name}(${_t(e.inputs)})`:e.type==="constructor"?`constructor(${_t(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}function Yr(e){let t=!0,n="",s=0,o="",a=!1;for(let r=0;r<e.length;r++){const i=e[r];if(["(",")",","].includes(i)&&(t=!0),i==="("&&s++,i===")"&&s--,!!t){if(s===0){if(i===" "&&["event","function",""].includes(o))o="";else if(o+=i,i===")"){a=!0;break}continue}if(i===" "){e[r-1]!==","&&n!==","&&n!==",("&&(n="",t=!1);continue}o+=i,n+=i}}if(!a)throw new me("Unable to normalize signature.");return o}const zr=e=>{const t=typeof e=="string"?e:Gr(e);return Yr(t)};function rs(e){return Wr(zr(e))}const is=e=>Qn(rs(e),0,4),Jr=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function jr(e,t){if(e.length!==t.length)throw new Dr({expectedLength:e.length,givenLength:t.length});const n=qr({params:e,values:t}),s=eo(n);return s.length===0?"0x":s}function qr({params:e,values:t}){const n=[];for(let s=0;s<e.length;s++)n.push($n({param:e[s],value:t[s]}));return n}function $n({param:e,value:t}){const n=ti(e.type);if(n){const[s,o]=n;return Xr(t,{length:s,param:{...e,type:o}})}if(e.type==="tuple")return ei(t,{param:e});if(e.type==="address")return Qr(t);if(e.type==="bool")return Zr(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const s=e.type.startsWith("int"),[,,o="256"]=Jr.exec(e.type)??[];return _r(t,{signed:s,size:Number(o)})}if(e.type.startsWith("bytes"))return Kr(t,{param:e});if(e.type==="string")return $r(t);throw new Ur(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function eo(e){let t=0;for(let a=0;a<e.length;a++){const{dynamic:r,encoded:i}=e[a];r?t+=32:t+=Je(i)}const n=[],s=[];let o=0;for(let a=0;a<e.length;a++){const{dynamic:r,encoded:i}=e[a];r?(n.push(de(t+o,{size:32})),s.push(i),o+=Je(i)):n.push(i)}return Wt([...n,...s])}function Qr(e){if(!Me(e))throw new rt({address:e});return{dynamic:!1,encoded:bt(e.toLowerCase())}}function Xr(e,{length:t,param:n}){const s=t===null;if(!Array.isArray(e))throw new Rr(e);if(!s&&e.length!==t)throw new Pr({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let o=!1;const a=[];for(let r=0;r<e.length;r++){const i=$n({param:n,value:e[r]});i.dynamic&&(o=!0),a.push(i)}if(s||o){const r=eo(a);if(s){const i=de(a.length,{size:32});return{dynamic:!0,encoded:a.length>0?Wt([i,r]):i}}if(o)return{dynamic:!0,encoded:r}}return{dynamic:!1,encoded:Wt(a.map(({encoded:r})=>r))}}function Kr(e,{param:t}){const[,n]=t.type.split("bytes"),s=Je(e);if(!n){let o=e;return s%32!==0&&(o=bt(o,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Wt([bt(de(s,{size:32})),o])}}if(s!==Number.parseInt(n,10))throw new Or({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:bt(e,{dir:"right"})}}function Zr(e){if(typeof e!="boolean")throw new me(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:bt(ko(e))}}function _r(e,{signed:t,size:n=256}){if(typeof n=="number"){const s=2n**(BigInt(n)-(t?1n:0n))-1n,o=t?-s-1n:0n;if(e>s||e<o)throw new Bn({max:s.toString(),min:o.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:de(e,{size:32,signed:t})}}function $r(e){const t=vo(e),n=Math.ceil(Je(t)/32),s=[];for(let o=0;o<n;o++)s.push(bt(Qn(t,o*32,(o+1)*32),{dir:"right"}));return{dynamic:!0,encoded:Wt([bt(de(Je(t),{size:32})),...s])}}function ei(e,{param:t}){let n=!1;const s=[];for(let o=0;o<t.components.length;o++){const a=t.components[o],r=Array.isArray(e)?o:a.name,i=$n({param:a,value:e[r]});s.push(i),i.dynamic&&(n=!0)}return{dynamic:n,encoded:n?eo(s):Wt(s.map(({encoded:o})=>o))}}function ti(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}const ni=rs;function oi(e){const{abi:t,args:n=[],name:s}=e,o=Dt(s,{strict:!1}),a=t.filter(i=>o?i.type==="function"?is(i)===s:i.type==="event"?ni(i)===s:!1:"name"in i&&i.name===s);if(a.length===0)return;if(a.length===1)return a[0];let r;for(const i of a){if(!("inputs"in i))continue;if(!n||n.length===0){if(!i.inputs||i.inputs.length===0)return i;continue}if(!i.inputs||i.inputs.length===0||i.inputs.length!==n.length)continue;if(n.every((k,O)=>{const Y="inputs"in i&&i.inputs[O];return Y?to(k,Y):!1})){if(r&&"inputs"in r&&r.inputs){const k=cs(i.inputs,r.inputs,n);if(k)throw new Lr({abiItem:i,type:k[0]},{abiItem:r,type:k[1]})}r=i}}return r||a[0]}function to(e,t){const n=typeof e,s=t.type;switch(s){case"address":return Me(e,{strict:!1});case"bool":return n==="boolean";case"function":return n==="string";case"string":return n==="string";default:return s==="tuple"&&"components"in t?Object.values(t.components).every((o,a)=>n==="object"&&to(Object.values(e)[a],o)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(s)?n==="number"||n==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(s)?n==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(s)?Array.isArray(e)&&e.every(o=>to(o,{...t,type:s.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function cs(e,t,n){for(const s in e){const o=e[s],a=t[s];if(o.type==="tuple"&&a.type==="tuple"&&"components"in o&&"components"in a)return cs(o.components,a.components,n[s]);const r=[o.type,a.type];if(r.includes("address")&&r.includes("bytes20")?!0:r.includes("address")&&r.includes("string")?Me(n[s],{strict:!1}):r.includes("address")&&r.includes("bytes")?Me(n[s],{strict:!1}):!1)return r}}function ls(e){return e.reduce((t,{slot:n,value:s})=>`${t} ${n}: ${s}
90
+ `,"")}function si(e){return e.reduce((t,{address:n,...s})=>{let o=`${t} ${n}:
91
+ `;return s.nonce&&(o+=` nonce: ${s.nonce}
92
+ `),s.balance&&(o+=` balance: ${s.balance}
93
+ `),s.code&&(o+=` code: ${s.code}
94
+ `),s.state&&(o+=` state:
95
+ `,o+=ls(s.state)),s.stateDiff&&(o+=` stateDiff:
96
+ `,o+=ls(s.stateDiff)),o},` State Override:
97
+ `).slice(0,-1)}class ai extends me{constructor(t,{account:n,docsPath:s,chain:o,data:a,gas:r,gasPrice:i,maxFeePerGas:l,maxPriorityFeePerGas:k,nonce:O,to:Y,value:g,stateOverride:A}){const y=n?Kn(n):void 0;let T=Bo({from:y?.address,to:Y,value:typeof g<"u"&&`${wa(g)} ${o?.nativeCurrency?.symbol||"ETH"}`,data:a,gas:r,gasPrice:typeof i<"u"&&`${xt(i)} gwei`,maxFeePerGas:typeof l<"u"&&`${xt(l)} gwei`,maxPriorityFeePerGas:typeof k<"u"&&`${xt(k)} gwei`,nonce:O});A&&(T+=`
98
+ ${si(A)}`),super(t.shortMessage,{cause:t,docsPath:s,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",T].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}function ri(e,t){const n=(e.details||"").toLowerCase(),s=e instanceof me?e.walk(o=>o?.code===Vt.code):e;return s instanceof me?new Vt({cause:e,message:s.details}):Vt.nodeMessage.test(n)?new Vt({cause:e,message:e.details}):It.nodeMessage.test(n)?new It({cause:e,maxFeePerGas:t?.maxFeePerGas}):Rn.nodeMessage.test(n)?new Rn({cause:e,maxFeePerGas:t?.maxFeePerGas}):Mn.nodeMessage.test(n)?new Mn({cause:e,nonce:t?.nonce}):Hn.nodeMessage.test(n)?new Hn({cause:e,nonce:t?.nonce}):Wn.nodeMessage.test(n)?new Wn({cause:e,nonce:t?.nonce}):Vn.nodeMessage.test(n)?new Vn({cause:e}):Gn.nodeMessage.test(n)?new Gn({cause:e,gas:t?.gas}):Yn.nodeMessage.test(n)?new Yn({cause:e,gas:t?.gas}):zn.nodeMessage.test(n)?new zn({cause:e}):Qt.nodeMessage.test(n)?new Qt({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new Jo({cause:e})}function ii(e,{docsPath:t,...n}){const s=(()=>{const o=ri(e,n);return o instanceof Jo?e:o})();return new ai(s,{docsPath:t,...n})}function ci(e,{format:t}){if(!t)return{};const n={};function s(a){const r=Object.keys(a);for(const i of r)i in e&&(n[i]=e[i]),a[i]&&typeof a[i]=="object"&&!Array.isArray(a[i])&&s(a[i])}const o=t(e||{});return s(o),n}function li(e){const{account:t,maxFeePerGas:n,maxPriorityFeePerGas:s,to:o}=e,a=t?Kn(t):void 0;if(a&&!Me(a.address))throw new rt({address:a.address});if(o&&!Me(o))throw new rt({address:o});if(n&&n>Ht)throw new It({maxFeePerGas:n});if(s&&n&&s>n)throw new Qt({maxFeePerGas:n,maxPriorityFeePerGas:s})}async function di(e,t){const{account:n=e.account}=t;if(!n)throw new Br;const s=Kn(n);try{const{accessList:o,blockNumber:a,blockTag:r,data:i,gas:l,gasPrice:k,maxFeePerGas:O,maxPriorityFeePerGas:Y,nonce:g,to:A,value:y,...T}=t,ve=(typeof a=="bigint"?de(a):void 0)||r;li(t);const N=e.chain?.formatters?.transactionRequest?.format,J=(N||ia)({...ci(T,{format:N}),account:s,accessList:o,data:i,gas:l,gasPrice:k,maxFeePerGas:O,maxPriorityFeePerGas:Y,nonce:g,to:A,value:y},"estimateGas"),{baseFeePerGas:he,gasLimit:ge,priorityFeePerGas:xe}=await e.request({method:"linea_estimateGas",params:ve?[J,ve]:[J]});return{baseFeePerGas:BigInt(he),gasLimit:BigInt(ge),priorityFeePerGas:BigInt(xe)}}catch(o){throw ii(o,{...t,account:s,chain:e.chain})}}const ui={fees:{estimateFeesPerGas:ds,async maxPriorityFeePerGas({block:e,client:t,request:n}){const s=await ds({block:e,client:t,multiply:o=>o,request:n,type:"eip1559"});return s?.maxPriorityFeePerGas?s.maxPriorityFeePerGas:null}}};async function ds({client:e,multiply:t,request:n,type:s}){try{const o=await di(e,{...n,account:n?.account}),{priorityFeePerGas:a}=o,i=t(BigInt(o.baseFeePerGas))+a;return s==="legacy"?{gasPrice:i}:{maxFeePerGas:i,maxPriorityFeePerGas:a}}catch{return null}}const fi=dt({...ui,id:59144,name:"Linea Mainnet",blockTime:2e3,nativeCurrency:{name:"Linea Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.linea.build"],webSocket:["wss://rpc.linea.build"]}},blockExplorers:{default:{name:"Etherscan",url:"https://lineascan.build",apiUrl:"https://api.lineascan.build/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:42},ensRegistry:{address:"0x50130b669B28C339991d8676FA73CF122a121267",blockCreated:6682888},ensUniversalResolver:{address:"0x4D41762915F83c76EcaF6776d9b08076aA32b492",blockCreated:22222151}},ensTlds:[".linea.eth"],testnet:!1}),pi=dt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),$t=1,mi=dt({...hn,id:10,name:"OP Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},blockExplorers:{default:{name:"Optimism Explorer",url:"https://optimistic.etherscan.io",apiUrl:"https://api-optimistic.etherscan.io/api"}},contracts:{...hn.contracts,disputeGameFactory:{[$t]:{address:"0xe5965Ab5962eDc7477C8520243A95517CD252fA9"}},l2OutputOracle:{[$t]:{address:"0xdfe97868233d1aa22e815a266982f2cf17685a27"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263},portal:{[$t]:{address:"0xbEb5Fc579115071764c7423A4f12eDde41f106Ed"}},l1StandardBridge:{[$t]:{address:"0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1"}}},sourceId:$t}),hi=dt({id:137,name:"Polygon",blockTime:2e3,nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://polygonscan.com",apiUrl:"https://api.etherscan.io/v2/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}}}),us="/docs/contract/encodeFunctionData";function gi(e){const{abi:t,args:n,functionName:s}=e;let o=t[0];if(s){const a=oi({abi:t,args:n,name:s});if(!a)throw new ss(s,{docsPath:us});o=a}if(o.type!=="function")throw new ss(void 0,{docsPath:us});return{abi:[o],functionName:is(Zn(o))}}function kt(e){const{args:t}=e,{abi:n,functionName:s}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:gi(e),o=n[0],a=s,r="inputs"in o&&o.inputs?jr(o.inputs,t??[]):void 0;return Et([a,r??"0x"])}const it={1:{...pi,logo:"data:image/png;base64,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",chainId:1,chainType:"ether",chainTypeMoralis:"eth",tokenTrendingDefault:["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"]},10:{...mi,logo:"data:image/png;base64,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",chainId:10,chainType:"optimism",chainTypeMoralis:"optimism",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0x68f180fcce6836688e9084f035309e29bf0a2095","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},56:{...Nr,logo:"data:image/png;base64,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",chainId:56,chainType:"bsc",chainTypeMoralis:"bsc",tokenTrendingDefault:["0x2170ed0880ac9a755fd29b2688956bd959f933f8","0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c"]},137:{...hi,rpcUrls:{default:{http:["https://polygon-bor-rpc.publicnode.com"]}},logo:"data:image/png;base64,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",chainId:137,chainType:"matic",chainTypeMoralis:"polygon",tokenTrendingDefault:["0x7ceb23fd6bc0add59e62ac25578270cff1b9f619","0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6"]},8453:{...ns,logo:"data:image/png;base64,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",chainId:8453,chainType:"base",chainTypeMoralis:"base",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},42161:{...xr,logo:"data:image/png;base64,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",chainId:42161,chainType:"arbitrum",chainTypeMoralis:"arbitrum",tokenTrendingDefault:["0x82af49447d8a07e3bd95bd0d56f35241523fbab1","0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"]},43114:{...Ir,logo:"data:image/png;base64,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",chainId:43114,chainType:"avax",chainTypeMoralis:"avalanche",tokenTrendingDefault:["0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB","0x0555E30da8f98308EdB960aa94C0Db47230d2B9c"]},59144:{...fi,logo:"data:image/png;base64,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",chainId:59144,chainType:"linea",chainTypeMoralis:"linea",tokenTrendingDefault:["0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f","0x3aab2285ddcddad8edf438c1bab47e1a9d05a9b4"]}},fs=e=>Object.values(it).find(n=>n.chainTypeMoralis===e)?.chainType||null,wi=e=>{const t=new Date,n=new Date(t);n.setDate(n.getDate()-1);const s=new Date(e);return s.setHours(0,0,0,0),t.setHours(0,0,0,0),n.setHours(0,0,0,0),s.getTime()===t.getTime()?"Today":s.getTime()===n.getTime()?"Yesterday":s.toLocaleDateString("en-US",{month:"short",day:"numeric",year:s.getFullYear()!==t.getFullYear()?"numeric":void 0})},Ze=e=>new Promise(t=>setTimeout(t,e||0)),bi=(e,t=5,n=5)=>(e=e||"",e?.length<=t+n?e:`${e.substr(0,t)}...${e.substr(e.length-n,n)}`),yi=e=>{if(!e)return"";const t=it[e];return t?t.chainTypeMoralis:""},Ai=e=>{if(!e)return"";const t=it[e];return t?t.chainType:""},Nt={getItem(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}},setItem(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,t)}catch{}},removeItem(e){if(!(typeof window>"u"))try{window.localStorage.removeItem(e)}catch{}},get length(){if(typeof window>"u")return 0;try{return window.localStorage.length}catch{return 0}},key(e){if(typeof window>"u")return null;try{return window.localStorage.key(e)}catch{return null}}};class ki extends me{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function pt(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new ki({value:e});let[n,s="0"]=e.split(".");const o=n.startsWith("-");if(o&&(n=n.slice(1)),s=s.replace(/(0+)$/,""),t===0)Math.round(+`.${s}`)===1&&(n=`${BigInt(n)+1n}`),s="";else if(s.length>t){const[a,r,i]=[s.slice(0,t-1),s.slice(t-1,t),s.slice(t)],l=Math.round(+`${r}.${i}`);l>9?s=`${BigInt(a)+BigInt(1)}0`.padStart(a.length+1,"0"):s=`${a}${l}`,s.length>t&&(s=s.slice(1),n=`${BigInt(n)+1n}`),s=s.slice(0,t)}else s=s.padEnd(t,"0");return BigInt(`${o?"-":""}${n}${s}`)}const vi="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Ve="0x0000000000000000000000000000000000000000",ps=te.createContext(void 0),no=()=>{const e=te.useContext(ps);if(!e)throw new Error("useConnect must be used within ConnectProvider");return{...e,chainData:it[e.account?.chainId]||void 0,chainId:e.account?.chainId||void 0,chainType:Ai(e.account?.chainId||void 0),chainTypeMoralis:yi(e.account?.chainId||void 0),isChainSupported:!!it[e.account?.chainId]}},Ti=({children:e,initialAccount:t})=>P.jsx(ps.Provider,{value:{account:t||null},children:e}),Ci=({address:e,chainId:t})=>{const[n,s]=te.useState(!1),{isChainSupported:o}=no(),a=te.useCallback(()=>{if(!e)return;const r=e,i=()=>{s(!0),setTimeout(()=>s(!1),2e3)};try{navigator.clipboard.writeText(r).then(i).catch(()=>{const l=document.createElement("input");l.value=r,document.body.appendChild(l),l.select(),document.execCommand("copy"),l.remove(),i()})}catch{const l=document.createElement("input");l.value=r,document.body.appendChild(l),l.select(),document.execCommand("copy"),l.remove(),i()}},[e]);return P.jsx(P.Fragment,{children:Me(e||"")&&P.jsxs("div",{className:"chat-user-info",children:[t&&it[t]?.logo&&P.jsx("div",{className:"user-avatar",children:P.jsx("img",{src:it[t].logo||"",alt:"Chain",width:20,height:20})}),P.jsx("span",{className:"user-wallet",children:P.jsx("a",{style:{pointerEvents:o?"auto":"none"},href:it[t]?.blockExplorers?.default?.url+"/address/"+e,target:"_blank",rel:"noopener noreferrer",children:bi(e)||"Not connected"})}),P.jsx("button",{className:"copy-address-btn",onClick:a,"aria-label":"Copy wallet address",type:"button",title:n?"Copied!":"Copy address",children:n?P.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:P.jsx("path",{d:"M13.3333 4L6 11.3333L2.66667 8",stroke:"#0B3988",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):P.jsx("svg",{width:"14",height:"14",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:P.jsx("path",{d:"M8.1 15.75H13.23C12.9638 16.4152 12.5041 16.9852 11.9105 17.3863C11.3168 17.7874 10.6165 18.0012 9.9 18H3.6C2.64522 18 1.72955 17.6207 1.05442 16.9456C0.379285 16.2704 0 15.3548 0 14.4V7.2C0.00104929 6.32332 0.321408 5.47704 0.901163 4.81944C1.48092 4.16183 2.28037 3.73792 3.15 3.627V10.8C3.15238 12.1121 3.67466 13.3698 4.60245 14.2975C5.53024 15.2253 6.78791 15.7476 8.1 15.75ZM15.75 3.825H17.658C17.6027 3.74389 17.5393 3.66852 17.469 3.6L14.4 0.531C14.3337 0.460854 14.258 0.400274 14.175 0.351V2.25C14.1769 2.66713 14.3434 3.06664 14.6384 3.3616C14.9334 3.65656 15.3329 3.8231 15.75 3.825ZM15.75 5.175C14.9747 5.17357 14.2315 4.86494 13.6833 4.31671C13.1351 3.76847 12.8264 3.02532 12.825 2.25V0H8.1C7.14522 0 6.22955 0.379285 5.55442 1.05442C4.87928 1.72955 4.5 2.64522 4.5 3.6V10.8C4.5 11.7548 4.87928 12.6704 5.55442 13.3456C6.22955 14.0207 7.14522 14.4 8.1 14.4H14.4C15.3548 14.4 16.2705 14.0207 16.9456 13.3456C17.6207 12.6704 18 11.7548 18 10.8V5.175H15.75Z",fill:"#0B3988"})})})]})})},oo="chat_widget_messages",gn=200,ms=()=>Math.random().toString(36).substring(2,12),Gt=[{id:ms(),text:`**Welcome! 🚀**
99
+ You're connected and ready to explore DeFi! I can help you trade, check prices, and analyze your portfolio when you need it.`,sender:"bot",timestamp:new Date}];function Ei(e,t){return e&&t?`${e}_${t}`:""}function hs(e){return e.map(t=>({...t,timestamp:new Date(t.timestamp)}))}function gs(){const e=Nt.getItem(oo);if(!e)return null;try{const t=JSON.parse(e);if(t&&t.owner!==void 0&&Array.isArray(t.messages))return{owner:t.owner,messages:hs(t.messages)};if(Array.isArray(t))return{owner:"",messages:hs(t)}}catch{}return null}function wn(e,t){Nt.setItem(oo,JSON.stringify({owner:e,messages:t}))}function Si(){const{account:e}=no(),t=Ei(e?.address,e?.chainId),[n,s]=te.useState(()=>t||"pending"),[o,a]=te.useState(()=>{const g=gs();return t?g&&g.owner===t?g.messages:Gt:g?.messages??Gt});if(n==="pending"&&t){const g=gs();g&&g.owner===t?a(g.messages):wn(t,o),s(t)}else n!=="pending"&&t&&n!==t&&(a(Gt),wn(t,Gt),s(t));te.useEffect(()=>{n!=="pending"&&wn(n,o)},[o,n]),te.useEffect(()=>{const g=[];for(let A=0;A<Nt.length;A++){const y=Nt.key(A);y&&y.startsWith(oo+"_")&&g.push(y)}g.forEach(A=>Nt.removeItem(A))},[]);const r=(g,A,y,T,B)=>{const ve=y?o.find(W=>W.id===y):void 0,N={id:ms(),text:g,sender:A,timestamp:new Date,...ve&&{replyTo:{id:ve.id,text:ve.text,sender:ve.sender}},...T&&{buttons:T},...B&&{actionData:B}};return a(W=>{const J=[...W,N];return J.length>gn?J.slice(J.length-gn):J}),N},i=(g,A)=>{a(y=>y.map(T=>T.id===g&&T.actionData?{...T,actionData:{...T.actionData,status:A}}:T))},l=(g,A)=>{a(y=>y.map(T=>T.id===g?{...T,text:A}:T))},k=g=>o.find(A=>A.id===g),O=te.useCallback(()=>{a(Gt),wn(t,Gt)},[t]),Y=te.useCallback(g=>{a(A=>{const y=A.filter(T=>!g.includes(T.id));return y.length>gn?y.slice(y.length-gn):y})},[]);return{messages:o,setMessages:a,addMessage:r,updateMessageAction:i,updateMessageText:l,getMessageById:k,clearMessages:O,clearMessagesById:Y}}const ws=te.createContext(void 0),xi=()=>{const e=te.useContext(ws);if(!e)throw new Error("useConfig must be used within ConfigProvider");return e},Ii=({children:e,initialConfig:t})=>P.jsx(ws.Provider,{value:{config:t||null},children:e});var Ni=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,so=Math.ceil,et=Math.floor,je="[BigNumber Error] ",bs=je+"Number primitive has more than 15 significant digits: ",st=1e14,ye=14,ao=9007199254740991,ro=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],vt=1e7,He=1e9;function ys(e){var t,n,s,o=N.prototype={constructor:N,toString:null,valueOf:null},a=new N(1),r=20,i=4,l=-7,k=21,O=-1e7,Y=1e7,g=!1,A=1,y=0,T={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},B="0123456789abcdefghijklmnopqrstuvwxyz",ve=!0;function N(c,d){var p,E,u,w,S,h,b,x,I=this;if(!(I instanceof N))return new N(c,d);if(d==null){if(c&&c._isBigNumber===!0){I.s=c.s,!c.c||c.e>Y?I.c=I.e=null:c.e<O?I.c=[I.e=0]:(I.e=c.e,I.c=c.c.slice());return}if((h=typeof c=="number")&&c*0==0){if(I.s=1/c<0?(c=-c,-1):1,c===~~c){for(w=0,S=c;S>=10;S/=10,w++);w>Y?I.c=I.e=null:(I.e=w,I.c=[c]);return}x=String(c)}else{if(!Ni.test(x=String(c)))return s(I,x,h);I.s=x.charCodeAt(0)==45?(x=x.slice(1),-1):1}(w=x.indexOf("."))>-1&&(x=x.replace(".","")),(S=x.search(/e/i))>0?(w<0&&(w=S),w+=+x.slice(S+1),x=x.substring(0,S)):w<0&&(w=x.length)}else{if(Be(d,2,B.length,"Base"),d==10&&ve)return I=new N(c),ge(I,r+I.e+1,i);if(x=String(c),h=typeof c=="number"){if(c*0!=0)return s(I,x,h,d);if(I.s=1/c<0?(x=x.slice(1),-1):1,N.DEBUG&&x.replace(/^0\.0*|\./,"").length>15)throw Error(bs+c)}else I.s=x.charCodeAt(0)===45?(x=x.slice(1),-1):1;for(p=B.slice(0,d),w=S=0,b=x.length;S<b;S++)if(p.indexOf(E=x.charAt(S))<0){if(E=="."){if(S>w){w=b;continue}}else if(!u&&(x==x.toUpperCase()&&(x=x.toLowerCase())||x==x.toLowerCase()&&(x=x.toUpperCase()))){u=!0,S=-1,w=0;continue}return s(I,String(c),h,d)}h=!1,x=n(x,d,10,I.s),(w=x.indexOf("."))>-1?x=x.replace(".",""):w=x.length}for(S=0;x.charCodeAt(S)===48;S++);for(b=x.length;x.charCodeAt(--b)===48;);if(x=x.slice(S,++b)){if(b-=S,h&&N.DEBUG&&b>15&&(c>ao||c!==et(c)))throw Error(bs+I.s*c);if((w=w-S-1)>Y)I.c=I.e=null;else if(w<O)I.c=[I.e=0];else{if(I.e=w,I.c=[],S=(w+1)%ye,w<0&&(S+=ye),S<b){for(S&&I.c.push(+x.slice(0,S)),b-=ye;S<b;)I.c.push(+x.slice(S,S+=ye));S=ye-(x=x.slice(S)).length}else S-=b;for(;S--;x+="0");I.c.push(+x)}}else I.c=[I.e=0]}N.clone=ys,N.ROUND_UP=0,N.ROUND_DOWN=1,N.ROUND_CEIL=2,N.ROUND_FLOOR=3,N.ROUND_HALF_UP=4,N.ROUND_HALF_DOWN=5,N.ROUND_HALF_EVEN=6,N.ROUND_HALF_CEIL=7,N.ROUND_HALF_FLOOR=8,N.EUCLID=9,N.config=N.set=function(c){var d,p;if(c!=null)if(typeof c=="object"){if(c.hasOwnProperty(d="DECIMAL_PLACES")&&(p=c[d],Be(p,0,He,d),r=p),c.hasOwnProperty(d="ROUNDING_MODE")&&(p=c[d],Be(p,0,8,d),i=p),c.hasOwnProperty(d="EXPONENTIAL_AT")&&(p=c[d],p&&p.pop?(Be(p[0],-He,0,d),Be(p[1],0,He,d),l=p[0],k=p[1]):(Be(p,-He,He,d),l=-(k=p<0?-p:p))),c.hasOwnProperty(d="RANGE"))if(p=c[d],p&&p.pop)Be(p[0],-He,-1,d),Be(p[1],1,He,d),O=p[0],Y=p[1];else if(Be(p,-He,He,d),p)O=-(Y=p<0?-p:p);else throw Error(je+d+" cannot be zero: "+p);if(c.hasOwnProperty(d="CRYPTO"))if(p=c[d],p===!!p)if(p)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))g=p;else throw g=!p,Error(je+"crypto unavailable");else g=p;else throw Error(je+d+" not true or false: "+p);if(c.hasOwnProperty(d="MODULO_MODE")&&(p=c[d],Be(p,0,9,d),A=p),c.hasOwnProperty(d="POW_PRECISION")&&(p=c[d],Be(p,0,He,d),y=p),c.hasOwnProperty(d="FORMAT"))if(p=c[d],typeof p=="object")T=p;else throw Error(je+d+" not an object: "+p);if(c.hasOwnProperty(d="ALPHABET"))if(p=c[d],typeof p=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(p))ve=p.slice(0,10)=="0123456789",B=p;else throw Error(je+d+" invalid: "+p)}else throw Error(je+"Object expected: "+c);return{DECIMAL_PLACES:r,ROUNDING_MODE:i,EXPONENTIAL_AT:[l,k],RANGE:[O,Y],CRYPTO:g,MODULO_MODE:A,POW_PRECISION:y,FORMAT:T,ALPHABET:B}},N.isBigNumber=function(c){if(!c||c._isBigNumber!==!0)return!1;if(!N.DEBUG)return!0;var d,p,E=c.c,u=c.e,w=c.s;e:if({}.toString.call(E)=="[object Array]"){if((w===1||w===-1)&&u>=-He&&u<=He&&u===et(u)){if(E[0]===0){if(u===0&&E.length===1)return!0;break e}if(d=(u+1)%ye,d<1&&(d+=ye),String(E[0]).length==d){for(d=0;d<E.length;d++)if(p=E[d],p<0||p>=st||p!==et(p))break e;if(p!==0)return!0}}}else if(E===null&&u===null&&(w===null||w===1||w===-1))return!0;throw Error(je+"Invalid BigNumber: "+c)},N.maximum=N.max=function(){return J(arguments,-1)},N.minimum=N.min=function(){return J(arguments,1)},N.random=(function(){var c=9007199254740992,d=Math.random()*c&2097151?function(){return et(Math.random()*c)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(p){var E,u,w,S,h,b=0,x=[],I=new N(a);if(p==null?p=r:Be(p,0,He),S=so(p/ye),g)if(crypto.getRandomValues){for(E=crypto.getRandomValues(new Uint32Array(S*=2));b<S;)h=E[b]*131072+(E[b+1]>>>11),h>=9e15?(u=crypto.getRandomValues(new Uint32Array(2)),E[b]=u[0],E[b+1]=u[1]):(x.push(h%1e14),b+=2);b=S/2}else if(crypto.randomBytes){for(E=crypto.randomBytes(S*=7);b<S;)h=(E[b]&31)*281474976710656+E[b+1]*1099511627776+E[b+2]*4294967296+E[b+3]*16777216+(E[b+4]<<16)+(E[b+5]<<8)+E[b+6],h>=9e15?crypto.randomBytes(7).copy(E,b):(x.push(h%1e14),b+=7);b=S/7}else throw g=!1,Error(je+"crypto unavailable");if(!g)for(;b<S;)h=d(),h<9e15&&(x[b++]=h%1e14);for(S=x[--b],p%=ye,S&&p&&(h=ro[ye-p],x[b]=et(S/h)*h);x[b]===0;x.pop(),b--);if(b<0)x=[w=0];else{for(w=-1;x[0]===0;x.splice(0,1),w-=ye);for(b=1,h=x[0];h>=10;h/=10,b++);b<ye&&(w-=ye-b)}return I.e=w,I.c=x,I}})(),N.sum=function(){for(var c=1,d=arguments,p=new N(d[0]);c<d.length;)p=p.plus(d[c++]);return p},n=(function(){var c="0123456789";function d(p,E,u,w){for(var S,h=[0],b,x=0,I=p.length;x<I;){for(b=h.length;b--;h[b]*=E);for(h[0]+=w.indexOf(p.charAt(x++)),S=0;S<h.length;S++)h[S]>u-1&&(h[S+1]==null&&(h[S+1]=0),h[S+1]+=h[S]/u|0,h[S]%=u)}return h.reverse()}return function(p,E,u,w,S){var h,b,x,I,F,Q,ae,ue,Ce=p.indexOf("."),Te=r,q=i;for(Ce>=0&&(I=y,y=0,p=p.replace(".",""),ue=new N(E),Q=ue.pow(p.length-Ce),y=I,ue.c=d(mt(nt(Q.c),Q.e,"0"),10,u,c),ue.e=ue.c.length),ae=d(p,E,u,S?(h=B,c):(h=c,B)),x=I=ae.length;ae[--I]==0;ae.pop());if(!ae[0])return h.charAt(0);if(Ce<0?--x:(Q.c=ae,Q.e=x,Q.s=w,Q=t(Q,ue,Te,q,u),ae=Q.c,F=Q.r,x=Q.e),b=x+Te+1,Ce=ae[b],I=u/2,F=F||b<0||ae[b+1]!=null,F=q<4?(Ce!=null||F)&&(q==0||q==(Q.s<0?3:2)):Ce>I||Ce==I&&(q==4||F||q==6&&ae[b-1]&1||q==(Q.s<0?8:7)),b<1||!ae[0])p=F?mt(h.charAt(1),-Te,h.charAt(0)):h.charAt(0);else{if(ae.length=b,F)for(--u;++ae[--b]>u;)ae[b]=0,b||(++x,ae=[1].concat(ae));for(I=ae.length;!ae[--I];);for(Ce=0,p="";Ce<=I;p+=h.charAt(ae[Ce++]));p=mt(p,x,h.charAt(0))}return p}})(),t=(function(){function c(E,u,w){var S,h,b,x,I=0,F=E.length,Q=u%vt,ae=u/vt|0;for(E=E.slice();F--;)b=E[F]%vt,x=E[F]/vt|0,S=ae*b+x*Q,h=Q*b+S%vt*vt+I,I=(h/w|0)+(S/vt|0)+ae*x,E[F]=h%w;return I&&(E=[I].concat(E)),E}function d(E,u,w,S){var h,b;if(w!=S)b=w>S?1:-1;else for(h=b=0;h<w;h++)if(E[h]!=u[h]){b=E[h]>u[h]?1:-1;break}return b}function p(E,u,w,S){for(var h=0;w--;)E[w]-=h,h=E[w]<u[w]?1:0,E[w]=h*S+E[w]-u[w];for(;!E[0]&&E.length>1;E.splice(0,1));}return function(E,u,w,S,h){var b,x,I,F,Q,ae,ue,Ce,Te,q,Ae,Ne,Ge,Qe,Xe,We,_e,Fe=E.s==u.s?1:-1,Pe=E.c,Ee=u.c;if(!Pe||!Pe[0]||!Ee||!Ee[0])return new N(!E.s||!u.s||(Pe?Ee&&Pe[0]==Ee[0]:!Ee)?NaN:Pe&&Pe[0]==0||!Ee?Fe*0:Fe/0);for(Ce=new N(Fe),Te=Ce.c=[],x=E.e-u.e,Fe=w+x+1,h||(h=st,x=tt(E.e/ye)-tt(u.e/ye),Fe=Fe/ye|0),I=0;Ee[I]==(Pe[I]||0);I++);if(Ee[I]>(Pe[I]||0)&&x--,Fe<0)Te.push(1),F=!0;else{for(Qe=Pe.length,We=Ee.length,I=0,Fe+=2,Q=et(h/(Ee[0]+1)),Q>1&&(Ee=c(Ee,Q,h),Pe=c(Pe,Q,h),We=Ee.length,Qe=Pe.length),Ge=We,q=Pe.slice(0,We),Ae=q.length;Ae<We;q[Ae++]=0);_e=Ee.slice(),_e=[0].concat(_e),Xe=Ee[0],Ee[1]>=h/2&&Xe++;do{if(Q=0,b=d(Ee,q,We,Ae),b<0){if(Ne=q[0],We!=Ae&&(Ne=Ne*h+(q[1]||0)),Q=et(Ne/Xe),Q>1)for(Q>=h&&(Q=h-1),ae=c(Ee,Q,h),ue=ae.length,Ae=q.length;d(ae,q,ue,Ae)==1;)Q--,p(ae,We<ue?_e:Ee,ue,h),ue=ae.length,b=1;else Q==0&&(b=Q=1),ae=Ee.slice(),ue=ae.length;if(ue<Ae&&(ae=[0].concat(ae)),p(q,ae,Ae,h),Ae=q.length,b==-1)for(;d(Ee,q,We,Ae)<1;)Q++,p(q,We<Ae?_e:Ee,Ae,h),Ae=q.length}else b===0&&(Q++,q=[0]);Te[I++]=Q,q[0]?q[Ae++]=Pe[Ge]||0:(q=[Pe[Ge]],Ae=1)}while((Ge++<Qe||q[0]!=null)&&Fe--);F=q[0]!=null,Te[0]||Te.splice(0,1)}if(h==st){for(I=1,Fe=Te[0];Fe>=10;Fe/=10,I++);ge(Ce,w+(Ce.e=I+x*ye-1)+1,S,F)}else Ce.e=x,Ce.r=+F;return Ce}})();function W(c,d,p,E){var u,w,S,h,b;if(p==null?p=i:Be(p,0,8),!c.c)return c.toString();if(u=c.c[0],S=c.e,d==null)b=nt(c.c),b=E==1||E==2&&(S<=l||S>=k)?yn(b,S):mt(b,S,"0");else if(c=ge(new N(c),d,p),w=c.e,b=nt(c.c),h=b.length,E==1||E==2&&(d<=w||w<=l)){for(;h<d;b+="0",h++);b=yn(b,w)}else if(d-=S+(E===2&&w>S),b=mt(b,w,"0"),w+1>h){if(--d>0)for(b+=".";d--;b+="0");}else if(d+=w-h,d>0)for(w+1==h&&(b+=".");d--;b+="0");return c.s<0&&u?"-"+b:b}function J(c,d){for(var p,E,u=1,w=new N(c[0]);u<c.length;u++)E=new N(c[u]),(!E.s||(p=Bt(w,E))===d||p===0&&w.s===d)&&(w=E);return w}function he(c,d,p){for(var E=1,u=d.length;!d[--u];d.pop());for(u=d[0];u>=10;u/=10,E++);return(p=E+p*ye-1)>Y?c.c=c.e=null:p<O?c.c=[c.e=0]:(c.e=p,c.c=d),c}s=(function(){var c=/^(-?)0([xbo])(?=\w[\w.]*$)/i,d=/^([^.]+)\.$/,p=/^\.([^.]+)$/,E=/^-?(Infinity|NaN)$/,u=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(w,S,h,b){var x,I=h?S:S.replace(u,"");if(E.test(I))w.s=isNaN(I)?null:I<0?-1:1;else{if(!h&&(I=I.replace(c,function(F,Q,ae){return x=(ae=ae.toLowerCase())=="x"?16:ae=="b"?2:8,!b||b==x?Q:F}),b&&(x=b,I=I.replace(d,"$1").replace(p,"0.$1")),S!=I))return new N(I,x);if(N.DEBUG)throw Error(je+"Not a"+(b?" base "+b:"")+" number: "+S);w.s=null}w.c=w.e=null}})();function ge(c,d,p,E){var u,w,S,h,b,x,I,F=c.c,Q=ro;if(F){e:{for(u=1,h=F[0];h>=10;h/=10,u++);if(w=d-u,w<0)w+=ye,S=d,b=F[x=0],I=et(b/Q[u-S-1]%10);else if(x=so((w+1)/ye),x>=F.length)if(E){for(;F.length<=x;F.push(0));b=I=0,u=1,w%=ye,S=w-ye+1}else break e;else{for(b=h=F[x],u=1;h>=10;h/=10,u++);w%=ye,S=w-ye+u,I=S<0?0:et(b/Q[u-S-1]%10)}if(E=E||d<0||F[x+1]!=null||(S<0?b:b%Q[u-S-1]),E=p<4?(I||E)&&(p==0||p==(c.s<0?3:2)):I>5||I==5&&(p==4||E||p==6&&(w>0?S>0?b/Q[u-S]:0:F[x-1])%10&1||p==(c.s<0?8:7)),d<1||!F[0])return F.length=0,E?(d-=c.e+1,F[0]=Q[(ye-d%ye)%ye],c.e=-d||0):F[0]=c.e=0,c;if(w==0?(F.length=x,h=1,x--):(F.length=x+1,h=Q[ye-w],F[x]=S>0?et(b/Q[u-S]%Q[S])*h:0),E)for(;;)if(x==0){for(w=1,S=F[0];S>=10;S/=10,w++);for(S=F[0]+=h,h=1;S>=10;S/=10,h++);w!=h&&(c.e++,F[0]==st&&(F[0]=1));break}else{if(F[x]+=h,F[x]!=st)break;F[x--]=0,h=1}for(w=F.length;F[--w]===0;F.pop());}c.e>Y?c.c=c.e=null:c.e<O&&(c.c=[c.e=0])}return c}function xe(c){var d,p=c.e;return p===null?c.toString():(d=nt(c.c),d=p<=l||p>=k?yn(d,p):mt(d,p,"0"),c.s<0?"-"+d:d)}return o.absoluteValue=o.abs=function(){var c=new N(this);return c.s<0&&(c.s=1),c},o.comparedTo=function(c,d){return Bt(this,new N(c,d))},o.decimalPlaces=o.dp=function(c,d){var p,E,u,w=this;if(c!=null)return Be(c,0,He),d==null?d=i:Be(d,0,8),ge(new N(w),c+w.e+1,d);if(!(p=w.c))return null;if(E=((u=p.length-1)-tt(this.e/ye))*ye,u=p[u])for(;u%10==0;u/=10,E--);return E<0&&(E=0),E},o.dividedBy=o.div=function(c,d){return t(this,new N(c,d),r,i)},o.dividedToIntegerBy=o.idiv=function(c,d){return t(this,new N(c,d),0,1)},o.exponentiatedBy=o.pow=function(c,d){var p,E,u,w,S,h,b,x,I,F=this;if(c=new N(c),c.c&&!c.isInteger())throw Error(je+"Exponent not an integer: "+xe(c));if(d!=null&&(d=new N(d)),h=c.e>14,!F.c||!F.c[0]||F.c[0]==1&&!F.e&&F.c.length==1||!c.c||!c.c[0])return I=new N(Math.pow(+xe(F),h?c.s*(2-bn(c)):+xe(c))),d?I.mod(d):I;if(b=c.s<0,d){if(d.c?!d.c[0]:!d.s)return new N(NaN);E=!b&&F.isInteger()&&d.isInteger(),E&&(F=F.mod(d))}else{if(c.e>9&&(F.e>0||F.e<-1||(F.e==0?F.c[0]>1||h&&F.c[1]>=24e7:F.c[0]<8e13||h&&F.c[0]<=9999975e7)))return w=F.s<0&&bn(c)?-0:0,F.e>-1&&(w=1/w),new N(b?1/w:w);y&&(w=so(y/ye+2))}for(h?(p=new N(.5),b&&(c.s=1),x=bn(c)):(u=Math.abs(+xe(c)),x=u%2),I=new N(a);;){if(x){if(I=I.times(F),!I.c)break;w?I.c.length>w&&(I.c.length=w):E&&(I=I.mod(d))}if(u){if(u=et(u/2),u===0)break;x=u%2}else if(c=c.times(p),ge(c,c.e+1,1),c.e>14)x=bn(c);else{if(u=+xe(c),u===0)break;x=u%2}F=F.times(F),w?F.c&&F.c.length>w&&(F.c.length=w):E&&(F=F.mod(d))}return E?I:(b&&(I=a.div(I)),d?I.mod(d):w?ge(I,y,i,S):I)},o.integerValue=function(c){var d=new N(this);return c==null?c=i:Be(c,0,8),ge(d,d.e+1,c)},o.isEqualTo=o.eq=function(c,d){return Bt(this,new N(c,d))===0},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(c,d){return Bt(this,new N(c,d))>0},o.isGreaterThanOrEqualTo=o.gte=function(c,d){return(d=Bt(this,new N(c,d)))===1||d===0},o.isInteger=function(){return!!this.c&&tt(this.e/ye)>this.c.length-2},o.isLessThan=o.lt=function(c,d){return Bt(this,new N(c,d))<0},o.isLessThanOrEqualTo=o.lte=function(c,d){return(d=Bt(this,new N(c,d)))===-1||d===0},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&this.c[0]==0},o.minus=function(c,d){var p,E,u,w,S=this,h=S.s;if(c=new N(c,d),d=c.s,!h||!d)return new N(NaN);if(h!=d)return c.s=-d,S.plus(c);var b=S.e/ye,x=c.e/ye,I=S.c,F=c.c;if(!b||!x){if(!I||!F)return I?(c.s=-d,c):new N(F?S:NaN);if(!I[0]||!F[0])return F[0]?(c.s=-d,c):new N(I[0]?S:i==3?-0:0)}if(b=tt(b),x=tt(x),I=I.slice(),h=b-x){for((w=h<0)?(h=-h,u=I):(x=b,u=F),u.reverse(),d=h;d--;u.push(0));u.reverse()}else for(E=(w=(h=I.length)<(d=F.length))?h:d,h=d=0;d<E;d++)if(I[d]!=F[d]){w=I[d]<F[d];break}if(w&&(u=I,I=F,F=u,c.s=-c.s),d=(E=F.length)-(p=I.length),d>0)for(;d--;I[p++]=0);for(d=st-1;E>h;){if(I[--E]<F[E]){for(p=E;p&&!I[--p];I[p]=d);--I[p],I[E]+=st}I[E]-=F[E]}for(;I[0]==0;I.splice(0,1),--x);return I[0]?he(c,I,x):(c.s=i==3?-1:1,c.c=[c.e=0],c)},o.modulo=o.mod=function(c,d){var p,E,u=this;return c=new N(c,d),!u.c||!c.s||c.c&&!c.c[0]?new N(NaN):!c.c||u.c&&!u.c[0]?new N(u):(A==9?(E=c.s,c.s=1,p=t(u,c,0,3),c.s=E,p.s*=E):p=t(u,c,0,A),c=u.minus(p.times(c)),!c.c[0]&&A==1&&(c.s=u.s),c)},o.multipliedBy=o.times=function(c,d){var p,E,u,w,S,h,b,x,I,F,Q,ae,ue,Ce,Te,q=this,Ae=q.c,Ne=(c=new N(c,d)).c;if(!Ae||!Ne||!Ae[0]||!Ne[0])return!q.s||!c.s||Ae&&!Ae[0]&&!Ne||Ne&&!Ne[0]&&!Ae?c.c=c.e=c.s=null:(c.s*=q.s,!Ae||!Ne?c.c=c.e=null:(c.c=[0],c.e=0)),c;for(E=tt(q.e/ye)+tt(c.e/ye),c.s*=q.s,b=Ae.length,F=Ne.length,b<F&&(ue=Ae,Ae=Ne,Ne=ue,u=b,b=F,F=u),u=b+F,ue=[];u--;ue.push(0));for(Ce=st,Te=vt,u=F;--u>=0;){for(p=0,Q=Ne[u]%Te,ae=Ne[u]/Te|0,S=b,w=u+S;w>u;)x=Ae[--S]%Te,I=Ae[S]/Te|0,h=ae*x+I*Q,x=Q*x+h%Te*Te+ue[w]+p,p=(x/Ce|0)+(h/Te|0)+ae*I,ue[w--]=x%Ce;ue[w]=p}return p?++E:ue.splice(0,1),he(c,ue,E)},o.negated=function(){var c=new N(this);return c.s=-c.s||null,c},o.plus=function(c,d){var p,E=this,u=E.s;if(c=new N(c,d),d=c.s,!u||!d)return new N(NaN);if(u!=d)return c.s=-d,E.minus(c);var w=E.e/ye,S=c.e/ye,h=E.c,b=c.c;if(!w||!S){if(!h||!b)return new N(u/0);if(!h[0]||!b[0])return b[0]?c:new N(h[0]?E:u*0)}if(w=tt(w),S=tt(S),h=h.slice(),u=w-S){for(u>0?(S=w,p=b):(u=-u,p=h),p.reverse();u--;p.push(0));p.reverse()}for(u=h.length,d=b.length,u-d<0&&(p=b,b=h,h=p,d=u),u=0;d;)u=(h[--d]=h[d]+b[d]+u)/st|0,h[d]=st===h[d]?0:h[d]%st;return u&&(h=[u].concat(h),++S),he(c,h,S)},o.precision=o.sd=function(c,d){var p,E,u,w=this;if(c!=null&&c!==!!c)return Be(c,1,He),d==null?d=i:Be(d,0,8),ge(new N(w),c,d);if(!(p=w.c))return null;if(u=p.length-1,E=u*ye+1,u=p[u]){for(;u%10==0;u/=10,E--);for(u=p[0];u>=10;u/=10,E++);}return c&&w.e+1>E&&(E=w.e+1),E},o.shiftedBy=function(c){return Be(c,-ao,ao),this.times("1e"+c)},o.squareRoot=o.sqrt=function(){var c,d,p,E,u,w=this,S=w.c,h=w.s,b=w.e,x=r+4,I=new N("0.5");if(h!==1||!S||!S[0])return new N(!h||h<0&&(!S||S[0])?NaN:S?w:1/0);if(h=Math.sqrt(+xe(w)),h==0||h==1/0?(d=nt(S),(d.length+b)%2==0&&(d+="0"),h=Math.sqrt(+d),b=tt((b+1)/2)-(b<0||b%2),h==1/0?d="5e"+b:(d=h.toExponential(),d=d.slice(0,d.indexOf("e")+1)+b),p=new N(d)):p=new N(h+""),p.c[0]){for(b=p.e,h=b+x,h<3&&(h=0);;)if(u=p,p=I.times(u.plus(t(w,u,x,1))),nt(u.c).slice(0,h)===(d=nt(p.c)).slice(0,h))if(p.e<b&&--h,d=d.slice(h-3,h+1),d=="9999"||!E&&d=="4999"){if(!E&&(ge(u,u.e+r+2,0),u.times(u).eq(w))){p=u;break}x+=4,h+=4,E=1}else{(!+d||!+d.slice(1)&&d.charAt(0)=="5")&&(ge(p,p.e+r+2,1),c=!p.times(p).eq(w));break}}return ge(p,p.e+r+1,i,c)},o.toExponential=function(c,d){return c!=null&&(Be(c,0,He),c++),W(this,c,d,1)},o.toFixed=function(c,d){return c!=null&&(Be(c,0,He),c=c+this.e+1),W(this,c,d)},o.toFormat=function(c,d,p){var E,u=this;if(p==null)c!=null&&d&&typeof d=="object"?(p=d,d=null):c&&typeof c=="object"?(p=c,c=d=null):p=T;else if(typeof p!="object")throw Error(je+"Argument not an object: "+p);if(E=u.toFixed(c,d),u.c){var w,S=E.split("."),h=+p.groupSize,b=+p.secondaryGroupSize,x=p.groupSeparator||"",I=S[0],F=S[1],Q=u.s<0,ae=Q?I.slice(1):I,ue=ae.length;if(b&&(w=h,h=b,b=w,ue-=w),h>0&&ue>0){for(w=ue%h||h,I=ae.substr(0,w);w<ue;w+=h)I+=x+ae.substr(w,h);b>0&&(I+=x+ae.slice(w)),Q&&(I="-"+I)}E=F?I+(p.decimalSeparator||"")+((b=+p.fractionGroupSize)?F.replace(new RegExp("\\d{"+b+"}\\B","g"),"$&"+(p.fractionGroupSeparator||"")):F):I}return(p.prefix||"")+E+(p.suffix||"")},o.toFraction=function(c){var d,p,E,u,w,S,h,b,x,I,F,Q,ae=this,ue=ae.c;if(c!=null&&(h=new N(c),!h.isInteger()&&(h.c||h.s!==1)||h.lt(a)))throw Error(je+"Argument "+(h.isInteger()?"out of range: ":"not an integer: ")+xe(h));if(!ue)return new N(ae);for(d=new N(a),x=p=new N(a),E=b=new N(a),Q=nt(ue),w=d.e=Q.length-ae.e-1,d.c[0]=ro[(S=w%ye)<0?ye+S:S],c=!c||h.comparedTo(d)>0?w>0?d:x:h,S=Y,Y=1/0,h=new N(Q),b.c[0]=0;I=t(h,d,0,1),u=p.plus(I.times(E)),u.comparedTo(c)!=1;)p=E,E=u,x=b.plus(I.times(u=x)),b=u,d=h.minus(I.times(u=d)),h=u;return u=t(c.minus(p),E,0,1),b=b.plus(u.times(x)),p=p.plus(u.times(E)),b.s=x.s=ae.s,w=w*2,F=t(x,E,w,i).minus(ae).abs().comparedTo(t(b,p,w,i).minus(ae).abs())<1?[x,E]:[b,p],Y=S,F},o.toNumber=function(){return+xe(this)},o.toPrecision=function(c,d){return c!=null&&Be(c,1,He),W(this,c,d,2)},o.toString=function(c){var d,p=this,E=p.s,u=p.e;return u===null?E?(d="Infinity",E<0&&(d="-"+d)):d="NaN":(c==null?d=u<=l||u>=k?yn(nt(p.c),u):mt(nt(p.c),u,"0"):c===10&&ve?(p=ge(new N(p),r+u+1,i),d=mt(nt(p.c),p.e,"0")):(Be(c,2,B.length,"Base"),d=n(mt(nt(p.c),u,"0"),10,c,E,!0)),E<0&&p.c[0]&&(d="-"+d)),d},o.valueOf=o.toJSON=function(){return xe(this)},o._isBigNumber=!0,o[Symbol.toStringTag]="BigNumber",o[Symbol.for("nodejs.util.inspect.custom")]=o.valueOf,e!=null&&N.set(e),N}function tt(e){var t=e|0;return e>0||e===t?t:t-1}function nt(e){for(var t,n,s=1,o=e.length,a=e[0]+"";s<o;){for(t=e[s++]+"",n=ye-t.length;n--;t="0"+t);a+=t}for(o=a.length;a.charCodeAt(--o)===48;);return a.slice(0,o+1||1)}function Bt(e,t){var n,s,o=e.c,a=t.c,r=e.s,i=t.s,l=e.e,k=t.e;if(!r||!i)return null;if(n=o&&!o[0],s=a&&!a[0],n||s)return n?s?0:-i:r;if(r!=i)return r;if(n=r<0,s=l==k,!o||!a)return s?0:!o^n?1:-1;if(!s)return l>k^n?1:-1;for(i=(l=o.length)<(k=a.length)?l:k,r=0;r<i;r++)if(o[r]!=a[r])return o[r]>a[r]^n?1:-1;return l==k?0:l>k^n?1:-1}function Be(e,t,n,s){if(e<t||e>n||e!==et(e))throw Error(je+(s||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function bn(e){var t=e.c.length-1;return tt(e.e/ye)==t&&e.c[t]%2!=0}function yn(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function mt(e,t,n){var s,o;if(t<0){for(o=n+".";++t;o+=n);e=o+e}else if(s=e.length,++t>s){for(o=n,t-=s;--t;o+=n);e+=o}else t<s&&(e=e.slice(0,t)+"."+e.slice(t));return e}var ie=ys();class Yt{baseUrl;constructor(t){this.baseUrl=t}buildUrl(t,n){const s=new URL(t,this.baseUrl);return n&&Object.entries(n).forEach(([o,a])=>{a!=null&&s.searchParams.append(o,String(a))}),s.toString()}async get(t,n={}){const s=this.buildUrl(t,n.query),o=await fetch(s,{method:"GET",headers:n.headers||{}});if(!o.ok){let r=null;try{r=await o.json()}catch{try{const l=await o.text();l&&(r={message:l})}catch{}}const i=new Error(r?.message||r?.errorMessage||`HTTP ${o.status}: ${o.statusText}`);throw i.status=o.status,i.statusText=o.statusText,r&&(i.data=r),i}return{data:await o.json(),status:o.status}}async post(t,n,s={}){const o=this.buildUrl(t,s.query),a=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",...s.headers},body:JSON.stringify(n)});if(!a.ok){let i=null;try{i=await a.json()}catch{try{const k=await a.text();k&&(i={message:k})}catch{}}const l=new Error(i?.message||i?.errorMessage||`HTTP ${a.status}: ${a.statusText}`);throw l.status=a.status,l.statusText=a.statusText,i&&(l.data=i),l}return{data:await a.json(),status:a.status}}}const Bi=.01,As=new Yt("https://wallet-api.pantograph.app"),Fi="https://deep-index.moralis.io";function en(){return"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6ImY4NmY0Yzc2LTA3MDQtNGEwZS04YTA0LWUwODllOGQxMGZjZCIsIm9yZ0lkIjoiMzk0MDAyIiwidXNlcklkIjoiNDA0ODUzIiwidHlwZUlkIjoiYjQyODExOTQtOGQ0Yi00NjkxLTlhZjItNjU4ODE2NzExYmRjIiwidHlwZSI6IlBST0pFQ1QiLCJpYXQiOjE3MTY4NjQyNTYsImV4cCI6NDg3MjYyNDI1Nn0.V8crfBIBardAnZkc05FD0hQIJBeZxMqvzRnYExVtnF8"}function tn(e){return{"X-API-Key":e,Accept:"application/json"}}const nn=new Yt(Fi);async function qe(e){const{address:t,chain:n="base",token_addresses:s,exclude_spam:o,exclude_unverified_contracts:a}=e;if(!t)throw new Error("Address is required");try{const r=en(),i={chain:n,exclude_spam:o??!1,exclude_unverified_contracts:a??!1};s&&(i.token_addresses=s);const k=(await nn.get(`/api/v2.2/wallets/${encodeURIComponent(t)}/tokens`,{query:i,headers:tn(r)})).data;if(k?.result?.length>0){k.result=k.result.filter(O=>new ie(O?.balance||0).gt(0)),k.result=k.result.map(O=>({...O,token_address:O.token_address===vi?Ve:O.token_address}));try{if(k.result.length>0){const O=fs(n)??n,Y=k.result.map(A=>A.token_address),g=await As.get(`/keyrings/tokens/${O}/v2`,{query:{addresses:Y.join(",")}});if(Array.isArray(g.data)){const A=new Map;for(const y of g.data)y.address&&y.price!=null&&A.set(y.address.toLowerCase(),parseFloat(String(y.price)));k.result=k.result.map(y=>{const T=A.get(y.token_address.toLowerCase());if(T==null)return y;const B=ie(y.balance_formatted||"0").multipliedBy(T).toNumber();return{...y,usd_price:T,usd_value:B}}),k.result=k.result.filter(y=>y.usd_value==null||new ie(y.usd_value).gte(Bi))}}}catch(O){console.warn("⚠️ Failed to fetch Pantograph prices:",O)}}return{success:!0,data:k}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching token balances:",i),{success:!1,error:i}}}async function ks(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Token address is required");try{const s=fs(n)??n,o=await As.get(`/keyrings/tokens/${s}/v2`,{query:{addresses:t}}),a=t===Ve,i=(Array.isArray(o.data)?o.data:[]).find(y=>y.address?.toLowerCase()===t.toLowerCase()||a&&y.address==="")??null;if(i)return{success:!0,data:{token_address:i.address??t,name:i.name??"",symbol:i.symbol??"",decimals:i.decimals!=null?Number(i.decimals):18,logo:i.icon_image||i.logo,thumbnail:i.icon_image||i.logo,usd_price:i.price!=null?parseFloat(i.price):void 0,usd_price_24hr_percent_change:i.price_change_percentage_24h??void 0,usd_price_24hr_usd_change:i.price_change_24h??void 0}};console.warn("⚠️ Pantograph returned no result, falling back to Moralis API");const l=en(),[k,O]=await Promise.allSettled([nn.get("/api/v2.2/erc20/metadata",{query:{chain:n,addresses:[t]},headers:tn(l)}),nn.get(`/api/v2.2/erc20/${encodeURIComponent(t)}/price`,{query:{chain:n,include:"percent_change"},headers:tn(l)})]),Y=k.status==="fulfilled"?k.value.data:[];if(!Y||Y.length===0)return{success:!1,error:"Token metadata not found"};const g=Y[0],A=O.status==="fulfilled"?O.value.data:void 0;return{success:!0,data:{token_address:g.token_address,name:g.name,symbol:g.symbol,decimals:g.decimals,logo:g.logo||g.thumbnail,thumbnail:g.thumbnail,usd_price:A?.usdPrice??void 0,usd_price_24hr_percent_change:A?.["24hrPercentChange"]?parseFloat(A["24hrPercentChange"]):void 0,usd_price_24hr_usd_change:A?.usdPriceChange24hr??void 0}}}catch(s){const o=s instanceof Error?s.message:"Unknown error";return console.error("❌ Error fetching token metadata:",o),{success:!1,error:o}}}async function Pi(e){const{prompt:t,model:n="gpt-4.1-mini",stream:s=!1,systemPrompt:o}=e;if(!t)throw new Error("Prompt is required");try{const a=en(),r=new Yt("https://cortex-api.moralis.io"),i=o?`${o}
100
100
 
101
101
  ---
102
102
 
103
- User: ${t}`:t;return{success:!0,data:(await r.post("/chat",{prompt:i,model:n,stream:o},{headers:{"X-API-Key":a,Accept:"application/json","Content-Type":"application/json"}})).data}}catch(a){const r=a instanceof Error?a.message:"Unknown error";return console.error("❌ Error chatting with Cortex AI:",r),{success:!1,error:r}}}async function Wi(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Contract address is required");try{const o=tn();return{success:!0,data:(await on.get(`/api/v2.2/nft/${encodeURIComponent(t)}/metadata`,{query:{chain:n},headers:nn(o)})).data}}catch(o){const s=o instanceof Error?o.message:"Unknown error";return console.error("❌ Error fetching NFT contract metadata:",s),{success:!1,error:s}}}async function kn(e){const{address:t,chain:n="base",limit:o=100,exclude_spam:s=!0,cursor:a}=e;if(!t)throw new Error("Address is required");try{const r=tn(),i={chain:n,format:"decimal",limit:o,exclude_spam:s,media_items:!0,normalizeMetadata:!0};return a&&(i.cursor=a),{success:!0,data:(await on.get(`/api/v2.2/${encodeURIComponent(t)}/nft`,{query:i,headers:nn(r)})).data}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching NFTs:",i),{success:!1,error:i}}}const Vi="data:image/png;base64,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",Gi="data:image/svg+xml,%3csvg%20width='36'%20height='36'%20viewBox='0%200%2036%2036'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='36'%20height='36'%20rx='18'%20fill='%232358B2'/%3e%3cmask%20id='mask0_1924_16177'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='11'%20y='10'%20width='17'%20height='16'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='url(%23pattern0_1924_16177)'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1924_16177)'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='white'/%3e%3c/g%3e%3cdefs%3e%3cpattern%20id='pattern0_1924_16177'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1924_16177'%20transform='scale(0.00195312)'/%3e%3c/pattern%3e%3cimage%20id='image0_1924_16177'%20width='512'%20height='512'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,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'/%3e%3c/defs%3e%3c/svg%3e";class Yi extends zt{constructor(){super("https://wallet-api.pantograph.app")}async getTokensDetails(t,n="base"){try{if(!t||!Array.isArray(t)||t.length===0)throw new Error("Addresses must be a non-empty array");const o=t.join(","),s=await this.get(`/keyrings/tokens/${n}/v2`,{query:{addresses:o}});return Array.isArray(s.data)&&(s.data=s.data.filter((a,r,i)=>r===i.findIndex(l=>l.address.toLowerCase()===a.address.toLowerCase())),Array.isArray(t)&&t.length>0&&(s.data=s.data.filter(a=>t.some(r=>r.toLowerCase()===a.address.toLowerCase())),s.data.sort((a,r)=>t.findIndex(i=>i.toLowerCase()===a.address.toLowerCase())-t.findIndex(i=>i.toLowerCase()===r.address.toLowerCase())))),s}catch(o){throw console.error("❌ Error getting tokens details:",o instanceof Error?o.message:o),o}}async getTokenDetail(t,n="base"){try{if(!t)throw new Error("Address is required");const o=await this.getTokensDetails([t],n);return{data:o.data[0]||null,status:o.status}}catch(o){throw console.error(`❌ Error getting token detail for ${t}:`,o instanceof Error?o.message:o),o}}async getTopGainers(t="base",n="24h",o=3){try{return await this.get(`/token-list/top-gainers/${t}`,{query:{duration:n,limit:o}})}catch(s){throw console.error("❌ Error getting top gainers:",s instanceof Error?s.message:s),s}}}const st=new Yi,zi="https://dln.debridge.finance",Ji=new zt(zi);async function lo(e){const{chainId:t,tokenIn:n,tokenInAmount:o,tokenOut:s,accesstoken:a,slippage:r="auto",tokenOutRecipient:i}=e;if(!t||!n||!o||!s)throw new Error("Missing required parameters: chainId, tokenIn, tokenInAmount, tokenOut");try{const D=(await(await fetch("https://exchange-api.keyring.app/admin/setting?configs=others",{method:"GET"})).json())?.others||{},Y=D?.AFFILIATE_FEE_PERENT,g=D?.AFFILIATE_FEE_RECIPIENT,A=await Ji.get("/v1.0/chain/transaction",{query:{chainId:String(t),tokenIn:n,tokenInAmount:o,tokenOut:s,slippage:String(r),tokenOutRecipient:i,accesstoken:a,affiliateFeePercent:Y,affiliateFeeRecipient:g}});if(A.data?.error)throw new Error(`DeBridge API Error: ${A.data.error}`);return console.log("✅ Quote retrieved successfully"),{success:!0,data:A.data}}catch(l){let k=l instanceof Error?l.message:"Unknown error";const D=l;D.data?.errorMessage?k=D.data.errorMessage:D.response?.data?.errorMessage?k=D.response.data.errorMessage:D.data?.message?k=D.data.message:D.response?.data?.message&&(k=D.response.data.message);const Y=D.status||D.response?.status||D.statusCode||D.data?.status;return console.error("📋 Error details:",{errorMessage:k,errorCode:D.data?.errorCode,errorId:D.data?.errorId,status:Y,reqId:D.data?.reqId,fullError:{message:D.message,status:D.status,statusCode:D.statusCode}}),{success:!1,error:l instanceof Error?l.message:"Unknown error",status:Y,errorMessage:k,errorCode:D.data?.errorCode,errorId:D.data?.errorId}}}const ji="data:image/svg+xml,%3csvg%20width='180'%20height='180'%20viewBox='0%200%20180%20180'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M102.392%20118.157L102.417%20109.35L89.7594%20102.042C89.5768%20101.937%2089.3953%20101.826%2089.2149%20101.71L89.1861%20101.692C89.012%20101.581%2088.839%20101.47%2088.666%20101.346C88.6061%20101.305%2088.5473%20101.262%2088.4874%20101.22C88.3765%20101.139%2088.259%20101.057%2088.1459%20100.972C88.0749%20100.919%2088.0051%20100.861%2087.9352%20100.811C87.8321%20100.733%2087.73%20100.653%2087.6291%20100.571C87.5552%20100.51%2087.4813%20100.449%2087.4073%20100.387C87.3098%20100.306%2087.2125%20100.224%2087.1157%20100.141C87.0418%20100.075%2086.9678%20100.009%2086.8939%2099.9421C86.7985%2099.8578%2086.7039%2099.772%2086.61%2099.6848C86.5346%2099.6149%2086.4592%2099.5462%2086.3882%2099.4752C86.2929%2099.3843%2086.1986%2099.2922%2086.1044%2099.2002C86.0356%2099.1325%2085.9657%2099.0649%2085.897%2098.9961C85.7983%2098.8963%2085.7007%2098.7954%2085.6031%2098.6934C85.541%2098.628%2085.4778%2098.5637%2085.4168%2098.4982C85.3059%2098.3763%2085.195%2098.2521%2085.0786%2098.1267L84.9533%2097.9881C84.7995%2097.8137%2084.648%2097.6366%2084.4986%2097.457C84.4643%2097.4159%2084.4321%2097.3738%2084.3977%2097.3328C84.2868%2097.1919%2084.1671%2097.05%2084.054%2096.9069C83.9172%2096.7325%2083.7826%2096.5558%2083.6503%2096.3769L83.5827%2096.2881C83.3675%2095.9965%2083.1591%2095.6971%2082.955%2095.3943L82.8441%2095.228C82.5876%2094.8421%2082.341%2094.4495%2082.1045%2094.0503L82.0135%2093.8984C81.8487%2093.616%2081.6886%2093.3306%2081.5334%2093.0423C81.4768%2092.937%2081.4225%2092.8316%2081.3681%2092.7263C81.3138%2092.6209%2081.2572%2092.5045%2081.1952%2092.3936C81.1164%2092.2361%2081.0399%2092.0787%2080.9634%2091.9201C80.939%2091.8691%2080.9135%2091.8181%2080.8891%2091.7671C80.793%2091.5623%2080.6995%2091.3564%2080.6085%2091.1494C80.5852%2091.095%2080.562%2091.0385%2080.5398%2090.9875C80.4732%2090.8337%2080.4082%2090.6792%2080.3446%2090.524L80.2592%2090.3121C80.2008%2090.1643%2080.1435%2090.0164%2080.0873%2089.8686C80.0629%2089.8043%2080.0385%2089.7388%2080.0141%2089.6745C79.9454%2089.486%2079.8789%2089.2971%2079.8145%2089.1079L79.789%2089.0347C79.7151%2088.8218%2079.6471%2088.6088%2079.585%2088.3959C79.5639%2088.3283%2079.5451%2088.2606%2079.5262%2088.193C79.483%2088.0444%2079.4397%2087.8958%2079.3998%2087.7494C79.3776%2087.6685%2079.3566%2087.5875%2079.3355%2087.5066C79.3%2087.3691%2079.2656%2087.2319%2079.2324%2087.0952C79.2131%2087.0138%2079.1943%2086.9325%2079.1758%2086.8512C79.1436%2086.7104%2079.1137%2086.5695%2079.0849%2086.4298C79.0693%2086.3555%2079.0538%2086.2801%2079.0394%2086.208C79.0047%2086.0276%2078.9725%2085.848%2078.9429%2085.6691C78.9429%2085.638%2078.9318%2085.607%2078.9274%2085.5759C78.8941%2085.366%2078.8646%2085.1564%2078.8387%2084.9472C78.832%2084.8906%2078.8265%2084.8363%2078.8198%2084.7775C78.8028%2084.6259%2078.7873%2084.4748%2078.7733%2084.3239C78.7666%2084.253%2078.7622%2084.182%2078.7566%2084.1121C78.7455%2083.9702%2078.7378%2083.8294%2078.7311%2083.6885C78.7311%2083.622%2078.7245%2083.5544%2078.7222%2083.4878C78.7156%2083.2882%2078.71%2083.0897%2078.7112%2082.8934L78.7466%2069.3645L77.6377%2068.7258L71.9567%2065.45C70.7912%2064.7503%2069.5073%2064.2703%2068.1686%2064.0339V64.0417C68.1597%2064.1105%2068.1542%2064.1825%2068.1464%2064.2513C68.1387%2064.32%2068.1298%2064.4021%2068.1231%2064.4797C68.1231%2064.5119%2068.1165%2064.5418%2068.1132%2064.574C68.1043%2064.676%2068.0999%2064.7802%2068.0943%2064.8845C68.0943%2064.941%2068.0865%2064.9954%2068.0843%2065.0541V65.0952C68.0769%2065.2704%2068.0729%2065.4482%2068.0721%2065.6286V65.6607L68.0078%2089.1023C68.0078%2089.2679%2068.01%2089.4339%2068.0145%2089.6002C68.0145%2089.6324%2068.0145%2089.6634%2068.0145%2089.6956C68.0145%2089.7632%2068.0211%2089.832%2068.0244%2089.8996C68.0278%2089.9673%2068.03%2090.056%2068.0355%2090.1347C68.0355%2090.1957%2068.0455%2090.2578%2068.05%2090.3199C68.0544%2090.382%2068.061%2090.463%2068.0677%2090.535C68.0677%2090.5805%2068.0743%2090.6271%2068.0788%2090.6725C68.0888%2090.7757%2068.1021%2090.8799%2068.1132%2090.9842C68.1198%2091.0418%2068.1254%2091.095%2068.132%2091.1583L68.1387%2091.2137C68.1623%2091.3985%2068.1886%2091.5833%2068.2174%2091.7682V91.7837C68.2174%2091.8147%2068.2285%2091.8469%2068.234%2091.8779C68.2584%2092.0277%2068.2839%2092.1774%2068.3117%2092.3282C68.3172%2092.357%2068.3239%2092.3858%2068.3294%2092.4147C68.3438%2092.4901%2068.3604%2092.5655%2068.376%2092.6365C68.3915%2092.7074%2068.4104%2092.8128%2068.4292%2092.9004C68.4403%2092.9525%2068.4536%2093.0046%2068.4658%2093.0556C68.4843%2093.1362%2068.5031%2093.2172%2068.5224%2093.2985C68.5368%2093.3595%2068.5501%2093.4205%2068.5645%2093.4803C68.5789%2093.5402%2068.6055%2093.6345%2068.6255%2093.711C68.6454%2093.7875%2068.6676%2093.8729%2068.6887%2093.9527C68.6998%2093.9916%2068.7087%2094.0304%2068.7186%2094.0636C68.7486%2094.1745%2068.7818%2094.2854%2068.8151%2094.3963C68.8351%2094.464%2068.8539%2094.5316%2068.8739%2094.5993L68.8894%2094.6547C68.9478%2094.8462%2069.0092%2095.0376%2069.0735%2095.2291V95.2391L69.099%2095.3123C69.1533%2095.4731%2069.2099%2095.6339%2069.2676%2095.7947C69.2775%2095.8224%2069.2886%2095.8501%2069.2986%2095.8778C69.3219%2095.9422%2069.3463%2096.0054%2069.3707%2096.0697C69.4039%2096.1595%2069.4372%2096.2482%2069.4716%2096.338C69.4949%2096.3979%2069.5193%2096.4567%2069.5437%2096.5166L69.628%2096.7262C69.649%2096.7761%2069.6679%2096.8271%2069.6889%2096.877C69.7322%2096.9812%2069.7777%2097.0855%2069.8231%2097.1897C69.8464%2097.244%2069.8686%2097.3006%2069.893%2097.3516L69.9174%2097.4082C69.9972%2097.5878%2070.0789%2097.7671%2070.1625%2097.946L70.1735%2097.9704C70.1979%2098.0214%2070.2234%2098.0724%2070.2478%2098.1234C70.3133%2098.2598%2070.3776%2098.3973%2070.4452%2098.5326L70.4785%2098.5969C70.5351%2098.7078%2070.5894%2098.8187%2070.6515%2098.9296C70.6981%2099.0194%2070.7424%2099.1093%2070.7901%2099.198L70.8167%2099.2456C70.9712%2099.534%2071.1313%2099.8193%2071.2969%20100.102C71.3113%20100.126%2071.3235%20100.151%2071.3379%20100.175C71.3523%20100.199%2071.3723%20100.227%2071.3878%20100.254C71.6244%20100.653%2071.8709%20101.045%2072.1275%20101.431C72.1419%20101.452%2072.1541%20101.475%2072.1685%20101.497C72.1829%20101.519%2072.2173%20101.564%2072.2406%20101.6C72.4446%20101.902%2072.652%20102.201%2072.8682%20102.493L72.9314%20102.575C73.0645%20102.754%2073.1994%20102.931%2073.3362%20103.107L73.3595%20103.137C73.4704%20103.272%2073.5746%20103.405%2073.6833%20103.537L73.7798%20103.656L73.7875%20103.665C73.9287%20103.835%2074.0718%20104.002%2074.2167%20104.167L74.2344%20104.187L74.3597%20104.326C74.4551%20104.437%2074.5516%20104.541%2074.6481%20104.646L74.698%20104.698C74.7601%20104.764%2074.8222%20104.828%2074.8843%20104.893C74.9464%20104.959%2075.0284%20105.046%2075.106%20105.122L75.1814%20105.197C75.2502%20105.266%2075.319%20105.334%2075.3888%20105.401C75.4587%20105.469%2075.5108%20105.524%2075.5729%20105.583L75.6727%20105.676C75.747%20105.747%2075.8224%20105.817%2075.8945%20105.886C75.9488%20105.936%2076.0054%20105.987%2076.0564%20106.036L76.1784%20106.146L76.4002%20106.345C76.4478%20106.386%2076.4944%20106.429%2076.5432%20106.469C76.592%20106.509%2076.643%20106.55%2076.6918%20106.59L76.9136%20106.774C76.9535%20106.806%2076.9923%20106.84%2077.0322%20106.872C77.0943%20106.921%2077.1576%20106.967%2077.2197%20107.015C77.2818%20107.062%2077.3594%20107.126%2077.4292%20107.174L77.5168%20107.241C77.6011%20107.303%2077.6876%20107.362%2077.7719%20107.423C77.8307%20107.465%2077.8894%20107.508%2077.9493%20107.549L77.997%20107.584C78.1523%20107.69%2078.3086%20107.794%2078.4661%20107.894L78.4905%20107.91C78.6357%20108.002%2078.7821%20108.092%2078.9341%20108.178L79.0449%20108.241L98.4999%20119.478C98.6175%20119.546%2098.7346%20119.611%2098.8515%20119.674L98.9867%20119.744L99.1653%20119.836C99.2119%20119.859%2099.2584%20119.885%2099.3039%20119.908C99.3793%20119.946%2099.4547%20119.979%2099.5257%20120.019L99.6832%20120.093L99.7464%20120.123C99.8942%20120.19%20100.042%20120.252%20100.19%20120.311L100.208%20120.317C100.35%20120.374%20100.492%20120.428%20100.633%20120.477L100.693%20120.497L100.856%20120.55C100.93%20120.575%20101.004%20120.6%20101.078%20120.622L101.189%20120.655L101.385%20120.709C101.434%20120.722%20101.484%20120.738%20101.532%20120.75C101.579%20120.762%20101.643%20120.773%20101.693%20120.785L101.888%20120.829L101.986%20120.851L102.085%20120.867C102.158%20120.553%20102.219%20120.227%20102.266%20119.886C102.346%20119.313%20102.388%20118.736%20102.392%20118.157Z'%20fill='url(%23paint0_linear_302_6100)'/%3e%3cpath%20d='M91.4307%2064.3019L78.0005%2056.5472L75.8214%2055.2885L71.9957%2053.0796C59.9427%2046.1222%2050.1032%2051.73%2050.0633%2065.5794L50.0001%2087.9076C49.9613%20101.769%2059.7365%20118.694%2071.7894%20125.652L91.2244%20136.872C103.276%20143.831%20113.117%20138.227%20113.156%20124.373L113.183%20114.546V113.668L113.217%20102.041C113.259%2088.1926%20103.482%2071.2604%2091.4307%2064.3019ZM102.419%20108.881V109.349L102.395%20118.156C102.394%20118.733%20102.355%20119.309%20102.278%20119.881C102.232%20120.222%20102.167%20120.547%20102.097%20120.863C100.943%20125.853%2096.5184%20127.534%2091.2621%20124.5L71.8249%20113.283C65.708%20109.753%2060.7478%20101.16%2060.7678%2094.1275L60.831%2071.7949C60.8454%2066.777%2063.3948%2063.8927%2067.0787%2063.9382C67.4454%2063.9447%2067.8112%2063.9777%2068.1732%2064.0369C69.5103%2064.2737%2070.7927%2064.7537%2071.9568%2065.453L77.6312%2068.7232L78.7401%2069.3619L91.3974%2076.6697C97.512%2080.205%20102.476%2088.7947%20102.452%2095.8275L102.419%20108.881Z'%20fill='url(%23paint1_linear_302_6100)'/%3e%3cpath%20d='M129.993%2090.9695C129.993%2090.9063%20129.987%2090.842%20129.985%2090.7788C129.985%2090.648%20129.972%2090.516%20129.966%2090.3851C129.958%2090.2288%20129.953%2090.0746%20129.944%2089.9172C129.936%2089.7952%20129.924%2089.671%20129.914%2089.5479C129.904%2089.4248%20129.892%2089.2707%20129.88%2089.1309C129.873%2089.04%20129.867%2088.9491%20129.858%2088.8582C129.838%2088.6519%20129.813%2088.4445%20129.789%2088.2383C129.776%2088.1274%20129.766%2088.0165%20129.752%2087.9056C129.752%2087.869%20129.744%2087.8324%20129.739%2087.7947C129.694%2087.431%20129.642%2087.0658%20129.583%2086.6991L129.578%2086.6669C129.568%2086.6037%20129.555%2086.5405%20129.544%2086.4773C129.497%2086.1845%20129.448%2085.8918%20129.392%2085.5979C129.381%2085.5391%20129.368%2085.4815%20129.357%2085.4227C129.328%2085.2752%20129.297%2085.1277%20129.267%2084.9791C129.232%2084.805%20129.199%2084.632%20129.156%2084.459C129.134%2084.3559%20129.107%2084.2528%20129.084%2084.1497C129.048%2083.99%20129.011%2083.8303%20128.973%2083.6706C128.944%2083.5519%20128.92%2083.4333%20128.89%2083.3146C128.852%2083.1627%20128.809%2083.0097%20128.77%2082.8566C128.731%2082.7036%20128.688%2082.5395%20128.645%2082.3809C128.625%2082.3055%20128.606%2082.2301%20128.585%2082.1591C128.524%2081.9373%20128.458%2081.7222%20128.393%2081.5038C128.354%2081.3729%20128.318%2081.2409%20128.282%2081.1101C128.271%2081.0746%20128.262%2081.0391%20128.251%2080.9992C128.135%2080.6214%20128.014%2080.244%20127.889%2079.867L127.881%2079.8448C127.863%2079.7927%20127.844%2079.7417%20127.827%2079.6896C127.716%2079.3768%20127.613%2079.063%20127.494%2078.7503C127.474%2078.6948%20127.452%2078.6394%20127.432%2078.584C127.385%2078.4564%20127.336%2078.3289%20127.288%2078.2014C127.222%2078.0273%20127.159%2077.8532%20127.091%2077.6791C127.046%2077.5615%20126.997%2077.4451%20126.949%2077.3275C126.894%2077.1886%20126.838%2077.0499%20126.782%2076.9117C126.742%2076.813%20126.704%2076.7143%20126.663%2076.6167C126.577%2076.4094%20126.487%2076.2042%20126.398%2075.9979C126.353%2075.8871%20126.308%2075.7861%20126.262%2075.6797L126.215%2075.5688C126.059%2075.2147%20125.898%2074.8617%20125.733%2074.5098L125.711%2074.4632C125.661%2074.3523%20125.608%2074.2525%20125.558%2074.146C125.431%2073.881%20125.305%2073.616%20125.174%2073.3532C125.153%2073.311%20125.13%2073.2689%20125.109%2073.2256C124.998%2073.0038%20124.887%2072.7821%20124.768%2072.5669C124.677%2072.3906%20124.589%2072.2143%20124.495%2072.0391C124.478%2072.0069%20124.459%2071.9759%20124.441%2071.9426C124.136%2071.3756%20123.821%2070.8137%20123.495%2070.257C123.467%2070.2094%20123.443%2070.1617%20123.415%2070.114C123.333%2069.9743%20123.247%2069.8379%20123.164%2069.6992C123.024%2069.4675%20122.885%2069.2357%20122.742%2069.0062C122.618%2068.8066%20122.492%2068.6092%20122.365%2068.4118C122.22%2068.19%20122.076%2067.9604%20121.927%2067.7364C121.877%2067.6599%20121.829%2067.5823%20121.778%2067.5069C121.727%2067.4315%20121.682%2067.3727%20121.635%2067.304C121.233%2066.7085%20120.824%2066.1196%20120.4%2065.5441L120.395%2065.5352C120.354%2065.4787%20120.309%2065.4243%20120.268%2065.3689C120.006%2065.017%20119.741%2064.6688%20119.472%2064.3243L119.425%2064.2633C119.215%2063.996%20119%2063.7343%20118.786%2063.4715C118.722%2063.395%20118.661%2063.3163%20118.598%2063.2398L118.584%2063.222C118.306%2062.8879%20118.024%2062.5581%20117.739%2062.2328L117.702%2062.1929C117.621%2062.0998%20117.537%2062.0111%20117.455%2061.919C117.266%2061.7083%20117.078%2061.4954%20116.886%2061.2892L116.788%2061.1871C116.666%2061.0563%20116.542%2060.9288%20116.418%2060.799C116.276%2060.6504%20116.135%2060.4985%20115.991%2060.3554C115.942%2060.3055%20115.891%2060.2579%20115.841%2060.208C115.706%2060.0716%20115.57%2059.9385%20115.433%2059.8043C115.297%2059.6701%20115.193%2059.5626%20115.071%2059.445C115.005%2059.3829%20114.939%2059.323%20114.873%2059.2609C114.726%2059.1212%20114.577%2058.9837%20114.43%2058.8473C114.319%2058.7497%20114.219%2058.6488%20114.112%2058.5523C114.034%2058.4814%20113.953%2058.4137%20113.873%2058.3427C113.725%2058.2104%20113.575%2058.0796%20113.424%2057.9502C113.33%2057.8692%20113.238%2057.7849%20113.142%2057.7051C113.047%2057.6253%20112.946%2057.5465%20112.848%2057.4656C112.7%2057.3443%20112.553%2057.2242%20112.405%2057.1052C112.326%2057.042%20112.248%2056.9754%20112.169%2056.9122C112.045%2056.8157%20111.921%2056.7248%20111.798%2056.6294C111.675%2056.5341%20111.523%2056.4176%20111.386%2056.3145C111.328%2056.2713%20111.275%2056.2258%20111.213%2056.1826C111.045%2056.0595%20110.88%2055.943%20110.707%2055.8233C110.596%2055.7412%20110.476%2055.6569%20110.36%2055.5771L110.265%2055.5094C109.958%2055.2995%20109.651%2055.0958%20109.341%2054.8984H109.334L109.288%2054.8696C109%2054.6877%20108.711%2054.5092%20108.42%2054.3384L108.206%2054.2142L88.7824%2042.9941C88.551%2042.8603%2088.3204%2042.7313%2088.0904%2042.6071C88.0017%2042.5594%2087.9141%2042.5162%2087.8254%2042.4696L87.4717%2042.2866C87.3807%2042.24%2087.2887%2042.1901%2087.1989%2042.1447C87.0492%2042.0704%2086.9017%2042.0049%2086.7553%2041.9351C86.6511%2041.8863%2086.5479%2041.8353%2086.4448%2041.7887L86.3195%2041.7299C86.0238%2041.5991%2085.7332%2041.476%2085.4479%2041.3607L85.4035%2041.344C85.1252%2041.2331%2084.8491%2041.1289%2084.5729%2041.0313L84.4465%2040.9847C84.3356%2040.9481%2084.2336%2040.9149%2084.1271%2040.8805C83.9819%2040.8328%2083.8366%2040.7818%2083.6924%2040.7385C83.6159%2040.7153%2083.5405%2040.6975%2083.464%2040.6753C83.3354%2040.6376%2083.2078%2040.6033%2083.0792%2040.5644C82.9827%2040.5389%2082.8851%2040.5079%2082.7898%2040.4846C82.6944%2040.4613%2082.5802%2040.4436%2082.4737%2040.4192C82.3462%2040.3903%2082.2176%2040.3604%2082.0912%2040.3327C82.0268%2040.3194%2081.9603%2040.3016%2081.896%2040.2894C81.7729%2040.265%2081.6531%2040.2506%2081.53%2040.2295C81.3826%2040.204%2081.234%2040.1774%2081.0865%2040.1564C81.0388%2040.1508%2080.9878%2040.1397%2080.939%2040.1331C80.8148%2040.1109%2080.6928%2040.1109%2080.5697%2040.0954C80.4122%2040.0776%2080.2548%2040.0599%2080.0995%2040.0477C80.0563%2040.0477%2080.0108%2040.0377%2079.9676%2040.0344C79.8567%2040.0266%2079.7558%2040.0288%2079.6482%2040.0233C79.4608%2040.0144%2079.2756%2040.0067%2079.0893%2040C79.0394%2040%2078.9884%2040%2078.9385%2040C78.8575%2040%2078.7799%2040.01%2078.699%2040.0111C78.4661%2040.0111%2078.2354%2040.0266%2078.0081%2040.0432C77.9405%2040.0432%2077.8706%2040.0432%2077.8041%2040.0532C77.7054%2040.0621%2077.61%2040.0765%2077.5124%2040.0876L77.3017%2040.1109C77.0455%2040.1453%2076.7916%2040.1841%2076.5421%2040.2351L76.5144%2040.244C76.4401%2040.2595%2076.368%2040.2794%2076.2926%2040.2961C76.0897%2040.3415%2075.8878%2040.3892%2075.6904%2040.4447C75.5895%2040.4735%2075.4919%2040.5068%2075.3921%2040.5389C75.2646%2040.5789%2075.1349%2040.6143%2075.0085%2040.6598C74.9752%2040.6709%2074.9441%2040.6875%2074.912%2040.6986C74.7146%2040.7707%2074.5239%2040.8517%2074.332%2040.9348C74.2389%2040.9747%2074.1435%2041.0113%2074.0526%2041.0535C73.7731%2041.1843%2073.4981%2041.3252%2073.2331%2041.4793L62.5375%2047.6893C62.8036%2047.5351%2063.0775%2047.3943%2063.3559%2047.2635C63.4479%2047.2202%2063.5433%2047.1847%2063.6364%2047.1437C63.8272%2047.0605%2064.019%2046.9796%2064.2153%2046.9075C64.3727%2046.8498%2064.5335%2046.7966%2064.6954%2046.7478C64.7952%2046.7168%2064.8928%2046.6824%2064.9937%2046.6536C65.1911%2046.5981%2065.3941%2046.5504%2065.5959%2046.505C65.6691%2046.4883%2065.7412%2046.4684%2065.8177%2046.4528C66.0761%2046.4007%2066.3389%2046.3586%2066.605%2046.3231C66.6749%2046.3142%2066.7458%2046.3065%2066.8157%2046.2987C66.9798%2046.2798%2067.1484%2046.2665%2067.3114%2046.2543C67.5387%2046.2366%2067.7694%2046.2266%2068.0023%2046.2211C68.132%2046.2211%2068.2606%2046.2133%2068.3915%2046.2144C68.5756%2046.2144%2068.763%2046.2244%2068.946%2046.2333C69.0957%2046.2399%2069.2454%2046.2455%2069.3973%2046.2577C69.5492%2046.2699%2069.71%2046.2887%2069.8675%2046.3054C70.0249%2046.322%2070.2112%2046.3431%2070.3865%2046.3675C70.5328%2046.3885%2070.6803%2046.4151%2070.83%2046.4406C71.0163%2046.4728%2071.2026%2046.505%2071.3911%2046.5449C71.5176%2046.5715%2071.6462%2046.6003%2071.7737%2046.6303C71.9748%2046.6768%2072.177%2046.7271%2072.3803%2046.7811C72.5078%2046.8155%2072.6365%2046.8498%2072.764%2046.892C72.9858%2046.9552%2073.2076%2047.025%2073.4293%2047.0971C73.5402%2047.1315%2073.6411%2047.1648%2073.7476%2047.2014C74.0625%2047.3123%2074.3786%2047.4231%2074.698%2047.5529L74.7423%2047.5695C75.075%2047.7026%2075.4077%2047.8479%2075.7403%2047.9998C75.8435%2048.0464%2075.9466%2048.0974%2076.0508%2048.1462C76.2896%2048.2585%2076.5295%2048.3757%2076.7705%2048.4977C76.8881%2048.5576%2077.006%2048.6186%2077.1243%2048.6807C77.4414%2048.8481%2077.7597%2049.0189%2078.0802%2049.2041L97.5219%2060.4253C97.8834%2060.6338%2098.2427%2060.8515%2098.5997%2061.0785L98.6507%2061.1095C98.9945%2061.3313%2099.3361%2061.5531%2099.6754%2061.7915C99.7918%2061.8724%2099.9072%2061.9567%20100.022%2062.0388C100.244%2062.1996%20100.476%2062.3626%20100.701%2062.53C100.839%2062.6332%20100.975%2062.7385%20101.113%2062.8439C101.316%2062.9999%20101.518%2063.1588%20101.72%2063.3207C101.868%2063.439%20102.016%2063.5588%20102.164%2063.68C102.357%2063.8397%20102.549%2064.0016%20102.739%2064.1657C102.887%2064.2951%20103.035%2064.4256%20103.183%2064.5572C103.37%2064.7228%20103.555%2064.8909%20103.737%2065.0617C103.886%2065.1981%20104.035%2065.3356%20104.181%2065.4753C104.369%2065.6539%20104.557%2065.8357%20104.743%2066.0187C104.878%2066.1518%20105.015%2066.2849%20105.149%2066.4202C105.343%2066.6153%20105.534%2066.8149%20105.726%2067.0145C105.85%2067.1443%20105.974%2067.2718%20106.097%2067.4038C106.319%2067.6433%20106.541%2067.8884%20106.763%2068.1334C106.845%2068.2255%20106.929%2068.3153%20107.011%2068.4085C107.313%2068.7522%20107.612%2069.1015%20107.907%2069.4564C107.97%2069.5329%20108.031%2069.6116%20108.094%2069.6882C108.325%2069.9698%20108.556%2070.2526%20108.781%2070.5409C109.05%2070.8847%20109.315%2071.2329%20109.576%2071.5855C109.619%2071.6443%20109.665%2071.6964%20109.709%2071.7607C110.133%2072.3363%20110.543%2072.9251%20110.944%2073.5195C111.042%2073.6637%20111.141%2073.8078%20111.236%2073.9531C111.383%2074.1749%20111.529%2074.4022%20111.674%2074.6284C111.8%2074.8258%20111.927%2075.0232%20112.051%2075.2228C112.194%2075.4524%20112.333%2075.6841%20112.472%2075.9159C112.583%2076.1011%20112.694%2076.2863%20112.805%2076.4703C113.13%2077.027%20113.446%2077.5893%20113.751%2078.157C113.862%2078.3633%20113.973%2078.5706%20114.076%2078.7769C114.179%2078.9832%20114.307%2079.2205%20114.417%2079.4423C114.57%2079.7472%20114.72%2080.0544%20114.867%2080.3616C114.918%2080.4725%20114.97%2080.5723%20115.02%2080.6787C115.209%2081.0816%20115.394%2081.4882%20115.574%2081.8985C115.621%2082.0094%20115.666%2082.1126%20115.712%2082.2201C115.842%2082.5232%20115.97%2082.8274%20116.095%2083.1328C116.152%2083.2718%20116.208%2083.4104%20116.263%2083.5486C116.379%2083.8399%20116.49%2084.1315%20116.595%2084.4236C116.643%2084.5511%20116.692%2084.6786%20116.74%2084.8061C116.874%2085.1758%20117.004%2085.5454%20117.129%2085.9151C117.147%2085.9661%20117.165%2086.0182%20117.183%2086.0692C117.324%2086.4891%20117.457%2086.909%20117.585%2087.3289C117.624%2087.4609%20117.661%2087.5929%20117.695%2087.7248C117.782%2088.0176%20117.866%2088.3103%20117.945%2088.6031C117.988%2088.7628%20118.029%2088.9225%20118.071%2089.0833C118.142%2089.3531%20118.209%2089.6229%20118.273%2089.8928C118.312%2090.0532%20118.349%2090.2133%20118.384%2090.3729C118.447%2090.6494%20118.506%2090.9259%20118.561%2091.2024C118.591%2091.3499%20118.622%2091.4974%20118.651%2091.646C118.719%2091.9986%20118.782%2092.3502%20118.839%2092.7006C118.849%2092.7638%20118.862%2092.827%20118.872%2092.8902C118.938%2093.3042%20118.996%2093.7167%20119.046%2094.1278C119.061%2094.2387%20119.07%2094.3496%20119.084%2094.4604C119.118%2094.7562%20119.148%2095.0537%20119.175%2095.3531C119.187%2095.4929%20119.198%2095.6315%20119.208%2095.7701C119.229%2096.0495%20119.246%2096.3279%20119.259%2096.6051C119.266%2096.7371%20119.272%2096.869%20119.278%2097.001C119.292%2097.3936%20119.301%2097.7839%20119.3%2098.172L119.237%20120.505C119.237%20120.912%20119.225%20121.31%20119.207%20121.702C119.207%20121.813%20119.192%20121.924%20119.187%20122.035C119.171%20122.304%20119.154%20122.572%20119.129%20122.835C119.116%20122.986%20119.099%20123.135%20119.083%20123.285C119.058%20123.507%20119.033%20123.728%20119.003%20123.95C118.981%20124.11%20118.957%20124.266%20118.932%20124.423C118.9%20124.624%20118.866%20124.822%20118.829%20125.018C118.795%20125.193%20118.761%20125.367%20118.725%20125.538C118.688%20125.71%20118.648%20125.884%20118.605%20126.06C118.556%20126.262%20118.504%20126.461%20118.449%20126.657C118.406%20126.811%20118.363%20126.964%20118.316%20127.115C118.244%20127.349%20118.168%20127.577%20118.088%20127.804C118.044%20127.928%20118.001%20128.053%20117.956%20128.175C117.811%20128.557%20117.657%20128.928%20117.488%20129.284C117.357%20129.561%20117.221%20129.832%20117.077%20130.092C117.061%20130.121%20117.042%20130.148%20117.027%20130.177C116.895%20130.412%20116.758%20130.64%20116.616%20130.862C116.582%20130.915%20116.545%20130.966%20116.506%20131.02C116.386%20131.199%20116.263%20131.375%20116.136%20131.546C116.084%20131.616%20116.031%20131.686%20115.978%20131.755C115.855%20131.913%20115.729%20132.067%20115.6%20132.216C115.552%20132.273%20115.504%20132.327%20115.455%20132.385C115.279%20132.582%20115.097%20132.774%20114.91%20132.956C114.881%20132.983%20114.85%20133.01%20114.821%20133.038C114.66%20133.191%20114.495%20133.339%20114.327%20133.481C114.264%20133.533%20114.2%20133.584%20114.137%20133.635C113.989%20133.753%20113.841%20133.866%20113.693%20133.975C113.63%20134.02%20113.568%20134.067%20113.504%20134.11C113.292%20134.255%20113.077%20134.395%20112.855%20134.524L123.549%20128.314C123.771%20128.185%20123.986%20128.045%20124.199%20127.9C124.264%20127.857%20124.326%20127.81%20124.388%20127.765C124.539%20127.656%20124.687%20127.543%20124.831%20127.425C124.895%20127.374%20124.959%20127.323%20125.021%20127.271C125.19%20127.129%20125.356%20126.982%20125.518%20126.828C125.547%20126.801%20125.577%20126.776%20125.604%20126.748C125.792%20126.566%20125.974%20126.374%20126.15%20126.177C126.199%20126.121%20126.246%20126.066%20126.295%20126.007C126.424%20125.859%20126.55%20125.706%20126.673%20125.546C126.727%20125.477%20126.784%20125.407%20126.832%20125.337C126.958%20125.167%20127.081%20124.991%20127.2%20124.812C127.236%20124.759%20127.272%20124.707%20127.311%20124.653L127.344%20124.604C127.475%20124.399%20127.598%20124.186%20127.72%20123.971C127.737%20123.941%20127.756%20123.915%20127.772%20123.885C127.911%20123.633%20128.044%20123.375%20128.17%20123.108L128.184%20123.076C128.352%20122.72%20128.506%20122.349%20128.652%20121.967C128.665%20121.933%20128.68%20121.902%20128.694%20121.868C128.726%20121.78%20128.753%20121.686%20128.784%20121.597C128.863%20121.375%20128.941%20121.141%20129.013%20120.907C129.033%20120.843%20129.056%20120.783%20129.075%20120.719C129.101%20120.632%20129.121%20120.539%20129.145%20120.451C129.2%20120.255%20129.252%20120.056%20129.301%20119.854C129.321%20119.769%20129.347%20119.691%20129.366%20119.605C129.385%20119.52%20129.401%20119.423%20129.42%20119.334C129.457%20119.161%20129.492%20118.987%20129.525%20118.811C129.543%20118.719%20129.564%20118.631%20129.581%20118.537C129.598%20118.444%20129.612%20118.323%20129.629%20118.218C129.653%20118.062%20129.677%20117.904%20129.7%20117.745C129.711%20117.661%20129.726%20117.582%20129.736%20117.497C129.753%20117.362%20129.764%20117.221%20129.779%20117.085C129.795%20116.948%20129.813%20116.785%20129.826%20116.632C129.832%20116.57%20129.84%20116.51%20129.845%20116.448C129.861%20116.249%20129.87%20116.041%20129.883%20115.837C129.889%20115.726%20129.898%20115.615%20129.904%20115.505C129.904%20115.477%20129.904%20115.45%20129.904%20115.422C129.918%20115.077%20129.927%20114.726%20129.928%20114.37V114.308L129.991%2091.9753C130.002%2091.6331%20130.003%2091.2978%20129.993%2090.9695Z'%20fill='%230B0E11'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_302_6100'%20x1='68.0078'%20y1='92.449'%20x2='102.417'%20y2='92.449'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23313131'/%3e%3cstop%20offset='1'%20stop-color='%230B0E11'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_302_6100'%20x1='50.0001'%20y1='94.977'%20x2='113.22'%20y2='94.977'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%234E4E4E'/%3e%3cstop%20offset='1'%20stop-color='%230B0E11'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e";function Ct(e){const t=[],n=/!\[([^\]]*)\]\(([^)]+)\)|\[([^\]]*)\]\(([^)]+)\)|(https?:\/\/[^\s<>]+)|\*\*(.+?)\*\*|__(.+?)__|\*(.+?)\*|_(.+?)_|~~(.+?)~~|`([^`]+)`/g;let o=0,s;for(;(s=n.exec(e))!==null;)s.index>o&&t.push(e.slice(o,s.index)),s[1]!==void 0||s[2]!==void 0?t.push(P.jsx("img",{src:s[2],alt:s[1],className:"mc-image",onError:a=>{const r=a.target;r.src=ji}},s.index)):s[3]!==void 0?t.push(P.jsx("a",{href:s[4],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:s[3]},s.index)):s[5]!==void 0?t.push(P.jsx("a",{href:s[5],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:s[5]},s.index)):s[6]!==void 0?t.push(P.jsx("strong",{children:Ct(s[6])},s.index)):s[7]!==void 0?t.push(P.jsx("strong",{children:Ct(s[7])},s.index)):s[8]!==void 0?t.push(P.jsx("em",{children:Ct(s[8])},s.index)):s[9]!==void 0?t.push(P.jsx("em",{children:Ct(s[9])},s.index)):s[10]!==void 0?t.push(P.jsx("del",{children:Ct(s[10])},s.index)):s[11]!==void 0&&t.push(P.jsx("code",{className:"mc-inline-code",children:s[11]},s.index)),o=s.index+s[0].length;return o<e.length&&t.push(e.slice(o)),t.length>0?t:[e]}const qi=({content:e})=>{const t=e.split(`
104
- `),n=[];let o=0;for(;o<t.length;){const s=t[o];if(s.trimStart().startsWith("```")){const r=s.trimStart().slice(3)?.trim(),i=[];for(o++;o<t.length&&!t[o].trimStart().startsWith("```");)i.push(t[o]),o++;n.push(P.jsxs("div",{className:"mc-codeblock",children:[r&&P.jsx("div",{className:"mc-codeblock-lang",children:r}),P.jsx("pre",{children:P.jsx("code",{children:i.join(`
105
- `)})})]},`code-${o}`)),o++;continue}if(/^(\s*[-*_]\s*){3,}$/.test(s)){n.push(P.jsx("hr",{className:"mc-hr"},`hr-${o}`)),o++;continue}const a=s.match(/^(#{1,3})\s+(.+)/);if(a){const r=a[1].length,i=a[2];n.push(P.jsx("div",{className:`mc-heading mc-h${r}`,children:Ct(i)},`h-${o}`)),o++;continue}if(s.trimStart().startsWith("> ")){const r=[];for(;o<t.length&&t[o].trimStart().startsWith("> ");)r.push(t[o].replace(/^\s*>\s?/,"")),o++;n.push(P.jsx("div",{className:"mc-blockquote",children:r.map((i,l)=>P.jsx("div",{children:Ct(i)},l))},`bq-${o}`));continue}if(s?.trim()===""){n.push(P.jsx("div",{className:"mc-empty-line"},`empty-${o}`)),o++;continue}n.push(P.jsx("div",{className:"mc-line",children:Ct(s)},`line-${o}`)),o++}return P.jsx("div",{className:"message-content",children:n})},Qi={send_native:{label:"actionSendNativeLabel",description:"actionSendNativeDesc",fields:[{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_token:{label:"actionSendTokenLabel",description:"actionSendTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},swap_token:{label:"actionSwapTokenLabel",description:"actionSwapTokenDesc",fields:[{key:"token_in",label:"fieldTokenIn",type:"address",placeholder:"0x... or native",required:!0,editable:!1},{key:"token_in_symbol",label:"fieldTokenInSymbol",type:"text",placeholder:"e.g. ETH",required:!1,editable:!1},{key:"token_out",label:"fieldTokenOut",type:"address",placeholder:"0x...",required:!0,editable:!1},{key:"token_out_symbol",label:"fieldTokenOutSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"token_in_decimals",label:"fieldTokenInDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"token_out_decimals",label:"fieldTokenOutDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},approve_token:{label:"actionApproveTokenLabel",description:"actionApproveTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"spender_address",label:"fieldSpenderAddress",type:"address",placeholder:"0x... spender contract",required:!0,validation:"address",editable:!1},{key:"amount",label:"fieldAmountUnlimited",type:"amount",placeholder:"0.0 or leave empty for max",required:!1,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},wrap_native:{label:"actionWrapNativeLabel",description:"actionWrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},unwrap_native:{label:"actionUnwrapNativeLabel",description:"actionUnwrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_nft:{label:"actionSendNftLabel",description:"actionSendNftDesc",fields:[{key:"contract_address",label:"fieldNftContract",type:"address",placeholder:"0x... NFT contract",required:!0,validation:"address",editable:!1},{key:"token_id",label:"fieldTokenId",type:"text",placeholder:"e.g. 1234",required:!0,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"token_standard",label:"fieldTokenStandard",type:"text",placeholder:"ERC721 or ERC1155",required:!0,editable:!1},{key:"amount",label:"fieldAmount",type:"text",placeholder:"1",required:!0},{key:"maxAmount",label:"fieldMaxAmount",type:"text",placeholder:"",required:!1,editable:!1,hidden:!0},{key:"nft_name",label:"fieldNftName",type:"text",placeholder:"e.g. Bored Ape #1234",required:!1,editable:!1}]}};function Xi(e){return Me(e)}function uo(e){if(!e||e?.trim()==="")return!1;const t=parseFloat(e);return!isNaN(t)&&t>0}const Ki=({action:e,initialValues:t,onSubmit:n,onCancel:o,isSubmitting:s=!1,tokenInfo:a,nftInfo:r})=>{const{t:i,ti:l}=Nn(),k=Qi[e],[D,Y]=te.useState(()=>{if(!k)return{};const N={};return k.fields.forEach(W=>{N[W.key]=t[W.key]||""}),N}),[g]=te.useState(()=>["send_native","send_token","swap_token"].includes(e)&&!a&&D.contract_address?i("formTokenNotFound"):null),[A,y]=te.useState(()=>{const N={};if(["send_native","send_token","swap_token"].includes(e)&&a){const J=parseFloat(a.balanceFormatted||"0");if(J<=0)N.amount=l("formNoBalance",{symbol:a.symbol??""});else{const he=t.amount?.trim();he&&uo(he)&&parseFloat(he)>J&&(N.amount=l("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}}return N}),T=te.useCallback((N,W)=>{Y(J=>({...J,[N]:W})),A[N]&&y(J=>{const he={...J};return delete he[N],he})},[A]),B=te.useCallback(()=>{if(!k)return!1;const N={};if(k.fields.forEach(W=>{const J=D[W.key]?.trim()||"";if(W.required&&!J&&!(e==="send_nft"&&W.key==="amount")){N[W.key]=l("formFieldRequired",{field:i(W.label)});return}if(J){if(W.validation==="address"&&!Xi(J)&&(N[W.key]=i("formInvalidAddress")),W.validation==="amount"&&!uo(J)&&(N[W.key]=i("formMustBePositive")),W.key==="amount"&&J&&uo(J)&&a?.balanceFormatted){const he=parseFloat(J),ge=parseFloat(a.balanceFormatted);he>ge&&(N[W.key]=l("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}W.validation==="positive_number"&&(isNaN(Number(J))||Number(J)<0)&&(N[W.key]=i("formMustBeValidNumber"))}}),e==="send_nft"&&D.token_standard?.toUpperCase()==="ERC1155"){const W=D.amount?.trim();if(!W)N.amount=l("formFieldRequired",{field:i("fieldAmount")});else if(!/^\d+$/.test(W)||parseInt(W,10)<1)N.amount=i("formMustBePositiveInteger");else{const J=parseInt(t.maxAmount||"0",10);J>0&&parseInt(W,10)>J&&(N.amount=l("formAmountExceedsNft",{max:String(J)}))}}return y(N),Object.keys(N).length===0},[k,D,a,e,t,i,l]),ve=te.useCallback(()=>{B()&&n(e,D)},[B,n,e,D]);return k?P.jsxs("div",{className:"action-form",children:[P.jsx("div",{className:"action-form-title",children:P.jsx("span",{children:i(k.label)})}),g&&P.jsxs("div",{className:"action-form-general-error",children:["⚠️ ",g]}),a&&P.jsx("div",{className:"action-form-token-info",children:P.jsxs("div",{className:"token-info-row",children:[a.logo&&P.jsx("img",{src:a.logo,alt:a.symbol,className:"token-info-logo",width:20,height:20}),P.jsxs("div",{className:"token-info-details",children:[P.jsxs("span",{className:"token-info-name",children:[a.name," (",a.symbol,")"]}),P.jsxs("span",{className:"token-info-balance",children:[i("spendable"),": ",ie(a.balanceFormatted).decimalPlaces(8,ie.ROUND_DOWN).toFormat()," ",a.symbol,a.usdValue!==void 0&&P.jsxs("span",{className:"token-info-usd",children:[" ","≈ $",a.usdValue.toFixed(2)]})]})]})]})}),r?.image&&P.jsx("div",{className:"action-form-nft-info",children:P.jsx("img",{src:r.image,alt:r.name,className:"nft-info-image",onError:N=>{N.target.style.display="none"}})}),P.jsx("div",{className:"action-form-fields",children:k.fields.map(N=>N.hidden||N.key==="amount"&&e==="send_nft"&&D.token_standard?.toUpperCase()!=="ERC1155"?null:P.jsxs("div",{className:"action-form-field",children:[P.jsxs("div",{className:"action-form-field-header",children:[P.jsxs("div",{className:"action-form-field-label",children:[i(N.label),N.required&&" *"]}),N.key==="amount"&&a&&e!=="send_nft"&&P.jsxs("div",{className:"action-form-pct-btns",children:[[25,50,75].map(W=>P.jsxs("button",{type:"button",className:"action-form-pct-btn",onClick:()=>T("amount",(parseFloat(a.balanceFormatted)*W/100).toString()),disabled:s,children:[W,"%"]},W)),P.jsx("button",{type:"button",className:"action-form-pct-btn action-form-max-btn",onClick:()=>T("amount",a.balanceFormatted),disabled:s,children:"MAX"})]})]}),(()=>{const W=N.editable===!1&&!!t[N.key],J=s||W,he=[A[N.key]?"error":"",W?"readonly":""].filter(Boolean).join(" ");return N.type==="address"?P.jsx("textarea",{rows:2,placeholder:N.placeholder,value:D[N.key]||"",onChange:ge=>T(N.key,ge.target.value),className:he,disabled:J}):P.jsx("input",{type:N.type==="number"?"number":"text",placeholder:N.placeholder,value:D[N.key]||"",onChange:ge=>T(N.key,ge.target.value),className:he,disabled:J})})(),A[N.key]&&P.jsx("span",{className:"field-error",children:A[N.key]})]},N.key))}),P.jsxs("div",{className:"action-form-actions",children:[P.jsx("button",{className:"message-button",onClick:o,type:"button",disabled:s,children:i("formCancel")}),P.jsx("button",{className:"message-button",onClick:ve,type:"button",disabled:s,children:i(s?"formProcessing":"formExecute")})]})]}):null},Zi=({scrollContainerRef:e,threshold:t=200})=>{const[n,o]=te.useState(!1);te.useEffect(()=>{const a=e.current;if(!a)return;const r=()=>{const{scrollTop:i,scrollHeight:l,clientHeight:k}=a,D=l-i-k;o(D>t)};return a.addEventListener("scroll",r,{passive:!0}),r(),()=>{a.removeEventListener("scroll",r)}},[e,t]);const s=()=>{e.current?.scrollTo({top:e.current.scrollHeight,behavior:"smooth"})};return n?P.jsx("button",{className:"scroll-to-bottom-btn",onClick:s,"aria-label":"Scroll to bottom",type:"button",children:P.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:P.jsx("path",{d:"M9 3V15M9 15L4 10M9 15L14 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):null};function _i(e){const{walletAddress:t,chainName:n,chainId:o,nativeSymbol:s,walletTokens:a,walletNfts:r}=e;if(!t)return`You are a Web3 wallet assistant for the Keyring crypto EVM wallet app.
103
+ User: ${t}`:t;return{success:!0,data:(await r.post("/chat",{prompt:i,model:n,stream:s},{headers:{"X-API-Key":a,Accept:"application/json","Content-Type":"application/json"}})).data}}catch(a){const r=a instanceof Error?a.message:"Unknown error";return console.error("❌ Error chatting with Cortex AI:",r),{success:!1,error:r}}}async function Oi(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Contract address is required");try{const s=en();return{success:!0,data:(await nn.get(`/api/v2.2/nft/${encodeURIComponent(t)}/metadata`,{query:{chain:n},headers:tn(s)})).data}}catch(s){const o=s instanceof Error?s.message:"Unknown error";return console.error("❌ Error fetching NFT contract metadata:",o),{success:!1,error:o}}}async function An(e){const{address:t,chain:n="base",limit:s=100,exclude_spam:o=!0,cursor:a}=e;if(!t)throw new Error("Address is required");try{const r=en(),i={chain:n,format:"decimal",limit:s,exclude_spam:o,media_items:!0,normalizeMetadata:!0};return a&&(i.cursor=a),{success:!0,data:(await nn.get(`/api/v2.2/${encodeURIComponent(t)}/nft`,{query:i,headers:tn(r)})).data}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching NFTs:",i),{success:!1,error:i}}}const Di="data:image/png;base64,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",Li="data:image/svg+xml,%3csvg%20width='36'%20height='36'%20viewBox='0%200%2036%2036'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='36'%20height='36'%20rx='18'%20fill='%232358B2'/%3e%3cmask%20id='mask0_1924_16177'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='11'%20y='10'%20width='17'%20height='16'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='url(%23pattern0_1924_16177)'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1924_16177)'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='white'/%3e%3c/g%3e%3cdefs%3e%3cpattern%20id='pattern0_1924_16177'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1924_16177'%20transform='scale(0.00195312)'/%3e%3c/pattern%3e%3cimage%20id='image0_1924_16177'%20width='512'%20height='512'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,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'/%3e%3c/defs%3e%3c/svg%3e";class Ui extends Yt{constructor(){super("https://wallet-api.pantograph.app")}async getTokensDetails(t,n="base"){try{if(!t||!Array.isArray(t)||t.length===0)throw new Error("Addresses must be a non-empty array");const s=t.join(","),o=await this.get(`/keyrings/tokens/${n}/v2`,{query:{addresses:s}});return Array.isArray(o.data)&&(o.data=o.data.filter((a,r,i)=>r===i.findIndex(l=>l.address.toLowerCase()===a.address.toLowerCase())),Array.isArray(t)&&t.length>0&&(o.data=o.data.filter(a=>t.some(r=>r.toLowerCase()===a.address.toLowerCase())),o.data.sort((a,r)=>t.findIndex(i=>i.toLowerCase()===a.address.toLowerCase())-t.findIndex(i=>i.toLowerCase()===r.address.toLowerCase())))),o}catch(s){throw console.error("❌ Error getting tokens details:",s instanceof Error?s.message:s),s}}async getTokenDetail(t,n="base"){try{if(!t)throw new Error("Address is required");const s=await this.getTokensDetails([t],n);return{data:s.data[0]||null,status:s.status}}catch(s){throw console.error(`❌ Error getting token detail for ${t}:`,s instanceof Error?s.message:s),s}}async getTopGainers(t="base",n="24h",s=3){try{return await this.get(`/token-list/top-gainers/${t}`,{query:{duration:n,limit:s}})}catch(o){throw console.error("❌ Error getting top gainers:",o instanceof Error?o.message:o),o}}}const ot=new Ui,Ri="https://dln.debridge.finance",Mi=new Yt(Ri);async function io(e){const{chainId:t,tokenIn:n,tokenInAmount:s,tokenOut:o,accesstoken:a,slippage:r="auto",tokenOutRecipient:i}=e;if(!t||!n||!s||!o)throw new Error("Missing required parameters: chainId, tokenIn, tokenInAmount, tokenOut");try{const O=(await(await fetch("https://exchange-api.keyring.app/admin/setting?configs=others",{method:"GET"})).json())?.others||{},Y=O?.AFFILIATE_FEE_PERENT,g=O?.AFFILIATE_FEE_RECIPIENT,A=await Mi.get("/v1.0/chain/transaction",{query:{chainId:String(t),tokenIn:n,tokenInAmount:s,tokenOut:o,slippage:String(r),tokenOutRecipient:i,accesstoken:a,affiliateFeePercent:Y,affiliateFeeRecipient:g}});if(A.data?.error)throw new Error(`DeBridge API Error: ${A.data.error}`);return console.log("✅ Quote retrieved successfully"),{success:!0,data:A.data}}catch(l){let k=l instanceof Error?l.message:"Unknown error";const O=l;O.data?.errorMessage?k=O.data.errorMessage:O.response?.data?.errorMessage?k=O.response.data.errorMessage:O.data?.message?k=O.data.message:O.response?.data?.message&&(k=O.response.data.message);const Y=O.status||O.response?.status||O.statusCode||O.data?.status;return console.error("📋 Error details:",{errorMessage:k,errorCode:O.data?.errorCode,errorId:O.data?.errorId,status:Y,reqId:O.data?.reqId,fullError:{message:O.message,status:O.status,statusCode:O.statusCode}}),{success:!1,error:l instanceof Error?l.message:"Unknown error",status:Y,errorMessage:k,errorCode:O.data?.errorCode,errorId:O.data?.errorId}}}const Hi="data:image/svg+xml,%3csvg%20width='180'%20height='180'%20viewBox='0%200%20180%20180'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M102.392%20118.157L102.417%20109.35L89.7594%20102.042C89.5768%20101.937%2089.3953%20101.826%2089.2149%20101.71L89.1861%20101.692C89.012%20101.581%2088.839%20101.47%2088.666%20101.346C88.6061%20101.305%2088.5473%20101.262%2088.4874%20101.22C88.3765%20101.139%2088.259%20101.057%2088.1459%20100.972C88.0749%20100.919%2088.0051%20100.861%2087.9352%20100.811C87.8321%20100.733%2087.73%20100.653%2087.6291%20100.571C87.5552%20100.51%2087.4813%20100.449%2087.4073%20100.387C87.3098%20100.306%2087.2125%20100.224%2087.1157%20100.141C87.0418%20100.075%2086.9678%20100.009%2086.8939%2099.9421C86.7985%2099.8578%2086.7039%2099.772%2086.61%2099.6848C86.5346%2099.6149%2086.4592%2099.5462%2086.3882%2099.4752C86.2929%2099.3843%2086.1986%2099.2922%2086.1044%2099.2002C86.0356%2099.1325%2085.9657%2099.0649%2085.897%2098.9961C85.7983%2098.8963%2085.7007%2098.7954%2085.6031%2098.6934C85.541%2098.628%2085.4778%2098.5637%2085.4168%2098.4982C85.3059%2098.3763%2085.195%2098.2521%2085.0786%2098.1267L84.9533%2097.9881C84.7995%2097.8137%2084.648%2097.6366%2084.4986%2097.457C84.4643%2097.4159%2084.4321%2097.3738%2084.3977%2097.3328C84.2868%2097.1919%2084.1671%2097.05%2084.054%2096.9069C83.9172%2096.7325%2083.7826%2096.5558%2083.6503%2096.3769L83.5827%2096.2881C83.3675%2095.9965%2083.1591%2095.6971%2082.955%2095.3943L82.8441%2095.228C82.5876%2094.8421%2082.341%2094.4495%2082.1045%2094.0503L82.0135%2093.8984C81.8487%2093.616%2081.6886%2093.3306%2081.5334%2093.0423C81.4768%2092.937%2081.4225%2092.8316%2081.3681%2092.7263C81.3138%2092.6209%2081.2572%2092.5045%2081.1952%2092.3936C81.1164%2092.2361%2081.0399%2092.0787%2080.9634%2091.9201C80.939%2091.8691%2080.9135%2091.8181%2080.8891%2091.7671C80.793%2091.5623%2080.6995%2091.3564%2080.6085%2091.1494C80.5852%2091.095%2080.562%2091.0385%2080.5398%2090.9875C80.4732%2090.8337%2080.4082%2090.6792%2080.3446%2090.524L80.2592%2090.3121C80.2008%2090.1643%2080.1435%2090.0164%2080.0873%2089.8686C80.0629%2089.8043%2080.0385%2089.7388%2080.0141%2089.6745C79.9454%2089.486%2079.8789%2089.2971%2079.8145%2089.1079L79.789%2089.0347C79.7151%2088.8218%2079.6471%2088.6088%2079.585%2088.3959C79.5639%2088.3283%2079.5451%2088.2606%2079.5262%2088.193C79.483%2088.0444%2079.4397%2087.8958%2079.3998%2087.7494C79.3776%2087.6685%2079.3566%2087.5875%2079.3355%2087.5066C79.3%2087.3691%2079.2656%2087.2319%2079.2324%2087.0952C79.2131%2087.0138%2079.1943%2086.9325%2079.1758%2086.8512C79.1436%2086.7104%2079.1137%2086.5695%2079.0849%2086.4298C79.0693%2086.3555%2079.0538%2086.2801%2079.0394%2086.208C79.0047%2086.0276%2078.9725%2085.848%2078.9429%2085.6691C78.9429%2085.638%2078.9318%2085.607%2078.9274%2085.5759C78.8941%2085.366%2078.8646%2085.1564%2078.8387%2084.9472C78.832%2084.8906%2078.8265%2084.8363%2078.8198%2084.7775C78.8028%2084.6259%2078.7873%2084.4748%2078.7733%2084.3239C78.7666%2084.253%2078.7622%2084.182%2078.7566%2084.1121C78.7455%2083.9702%2078.7378%2083.8294%2078.7311%2083.6885C78.7311%2083.622%2078.7245%2083.5544%2078.7222%2083.4878C78.7156%2083.2882%2078.71%2083.0897%2078.7112%2082.8934L78.7466%2069.3645L77.6377%2068.7258L71.9567%2065.45C70.7912%2064.7503%2069.5073%2064.2703%2068.1686%2064.0339V64.0417C68.1597%2064.1105%2068.1542%2064.1825%2068.1464%2064.2513C68.1387%2064.32%2068.1298%2064.4021%2068.1231%2064.4797C68.1231%2064.5119%2068.1165%2064.5418%2068.1132%2064.574C68.1043%2064.676%2068.0999%2064.7802%2068.0943%2064.8845C68.0943%2064.941%2068.0865%2064.9954%2068.0843%2065.0541V65.0952C68.0769%2065.2704%2068.0729%2065.4482%2068.0721%2065.6286V65.6607L68.0078%2089.1023C68.0078%2089.2679%2068.01%2089.4339%2068.0145%2089.6002C68.0145%2089.6324%2068.0145%2089.6634%2068.0145%2089.6956C68.0145%2089.7632%2068.0211%2089.832%2068.0244%2089.8996C68.0278%2089.9673%2068.03%2090.056%2068.0355%2090.1347C68.0355%2090.1957%2068.0455%2090.2578%2068.05%2090.3199C68.0544%2090.382%2068.061%2090.463%2068.0677%2090.535C68.0677%2090.5805%2068.0743%2090.6271%2068.0788%2090.6725C68.0888%2090.7757%2068.1021%2090.8799%2068.1132%2090.9842C68.1198%2091.0418%2068.1254%2091.095%2068.132%2091.1583L68.1387%2091.2137C68.1623%2091.3985%2068.1886%2091.5833%2068.2174%2091.7682V91.7837C68.2174%2091.8147%2068.2285%2091.8469%2068.234%2091.8779C68.2584%2092.0277%2068.2839%2092.1774%2068.3117%2092.3282C68.3172%2092.357%2068.3239%2092.3858%2068.3294%2092.4147C68.3438%2092.4901%2068.3604%2092.5655%2068.376%2092.6365C68.3915%2092.7074%2068.4104%2092.8128%2068.4292%2092.9004C68.4403%2092.9525%2068.4536%2093.0046%2068.4658%2093.0556C68.4843%2093.1362%2068.5031%2093.2172%2068.5224%2093.2985C68.5368%2093.3595%2068.5501%2093.4205%2068.5645%2093.4803C68.5789%2093.5402%2068.6055%2093.6345%2068.6255%2093.711C68.6454%2093.7875%2068.6676%2093.8729%2068.6887%2093.9527C68.6998%2093.9916%2068.7087%2094.0304%2068.7186%2094.0636C68.7486%2094.1745%2068.7818%2094.2854%2068.8151%2094.3963C68.8351%2094.464%2068.8539%2094.5316%2068.8739%2094.5993L68.8894%2094.6547C68.9478%2094.8462%2069.0092%2095.0376%2069.0735%2095.2291V95.2391L69.099%2095.3123C69.1533%2095.4731%2069.2099%2095.6339%2069.2676%2095.7947C69.2775%2095.8224%2069.2886%2095.8501%2069.2986%2095.8778C69.3219%2095.9422%2069.3463%2096.0054%2069.3707%2096.0697C69.4039%2096.1595%2069.4372%2096.2482%2069.4716%2096.338C69.4949%2096.3979%2069.5193%2096.4567%2069.5437%2096.5166L69.628%2096.7262C69.649%2096.7761%2069.6679%2096.8271%2069.6889%2096.877C69.7322%2096.9812%2069.7777%2097.0855%2069.8231%2097.1897C69.8464%2097.244%2069.8686%2097.3006%2069.893%2097.3516L69.9174%2097.4082C69.9972%2097.5878%2070.0789%2097.7671%2070.1625%2097.946L70.1735%2097.9704C70.1979%2098.0214%2070.2234%2098.0724%2070.2478%2098.1234C70.3133%2098.2598%2070.3776%2098.3973%2070.4452%2098.5326L70.4785%2098.5969C70.5351%2098.7078%2070.5894%2098.8187%2070.6515%2098.9296C70.6981%2099.0194%2070.7424%2099.1093%2070.7901%2099.198L70.8167%2099.2456C70.9712%2099.534%2071.1313%2099.8193%2071.2969%20100.102C71.3113%20100.126%2071.3235%20100.151%2071.3379%20100.175C71.3523%20100.199%2071.3723%20100.227%2071.3878%20100.254C71.6244%20100.653%2071.8709%20101.045%2072.1275%20101.431C72.1419%20101.452%2072.1541%20101.475%2072.1685%20101.497C72.1829%20101.519%2072.2173%20101.564%2072.2406%20101.6C72.4446%20101.902%2072.652%20102.201%2072.8682%20102.493L72.9314%20102.575C73.0645%20102.754%2073.1994%20102.931%2073.3362%20103.107L73.3595%20103.137C73.4704%20103.272%2073.5746%20103.405%2073.6833%20103.537L73.7798%20103.656L73.7875%20103.665C73.9287%20103.835%2074.0718%20104.002%2074.2167%20104.167L74.2344%20104.187L74.3597%20104.326C74.4551%20104.437%2074.5516%20104.541%2074.6481%20104.646L74.698%20104.698C74.7601%20104.764%2074.8222%20104.828%2074.8843%20104.893C74.9464%20104.959%2075.0284%20105.046%2075.106%20105.122L75.1814%20105.197C75.2502%20105.266%2075.319%20105.334%2075.3888%20105.401C75.4587%20105.469%2075.5108%20105.524%2075.5729%20105.583L75.6727%20105.676C75.747%20105.747%2075.8224%20105.817%2075.8945%20105.886C75.9488%20105.936%2076.0054%20105.987%2076.0564%20106.036L76.1784%20106.146L76.4002%20106.345C76.4478%20106.386%2076.4944%20106.429%2076.5432%20106.469C76.592%20106.509%2076.643%20106.55%2076.6918%20106.59L76.9136%20106.774C76.9535%20106.806%2076.9923%20106.84%2077.0322%20106.872C77.0943%20106.921%2077.1576%20106.967%2077.2197%20107.015C77.2818%20107.062%2077.3594%20107.126%2077.4292%20107.174L77.5168%20107.241C77.6011%20107.303%2077.6876%20107.362%2077.7719%20107.423C77.8307%20107.465%2077.8894%20107.508%2077.9493%20107.549L77.997%20107.584C78.1523%20107.69%2078.3086%20107.794%2078.4661%20107.894L78.4905%20107.91C78.6357%20108.002%2078.7821%20108.092%2078.9341%20108.178L79.0449%20108.241L98.4999%20119.478C98.6175%20119.546%2098.7346%20119.611%2098.8515%20119.674L98.9867%20119.744L99.1653%20119.836C99.2119%20119.859%2099.2584%20119.885%2099.3039%20119.908C99.3793%20119.946%2099.4547%20119.979%2099.5257%20120.019L99.6832%20120.093L99.7464%20120.123C99.8942%20120.19%20100.042%20120.252%20100.19%20120.311L100.208%20120.317C100.35%20120.374%20100.492%20120.428%20100.633%20120.477L100.693%20120.497L100.856%20120.55C100.93%20120.575%20101.004%20120.6%20101.078%20120.622L101.189%20120.655L101.385%20120.709C101.434%20120.722%20101.484%20120.738%20101.532%20120.75C101.579%20120.762%20101.643%20120.773%20101.693%20120.785L101.888%20120.829L101.986%20120.851L102.085%20120.867C102.158%20120.553%20102.219%20120.227%20102.266%20119.886C102.346%20119.313%20102.388%20118.736%20102.392%20118.157Z'%20fill='url(%23paint0_linear_302_6100)'/%3e%3cpath%20d='M91.4307%2064.3019L78.0005%2056.5472L75.8214%2055.2885L71.9957%2053.0796C59.9427%2046.1222%2050.1032%2051.73%2050.0633%2065.5794L50.0001%2087.9076C49.9613%20101.769%2059.7365%20118.694%2071.7894%20125.652L91.2244%20136.872C103.276%20143.831%20113.117%20138.227%20113.156%20124.373L113.183%20114.546V113.668L113.217%20102.041C113.259%2088.1926%20103.482%2071.2604%2091.4307%2064.3019ZM102.419%20108.881V109.349L102.395%20118.156C102.394%20118.733%20102.355%20119.309%20102.278%20119.881C102.232%20120.222%20102.167%20120.547%20102.097%20120.863C100.943%20125.853%2096.5184%20127.534%2091.2621%20124.5L71.8249%20113.283C65.708%20109.753%2060.7478%20101.16%2060.7678%2094.1275L60.831%2071.7949C60.8454%2066.777%2063.3948%2063.8927%2067.0787%2063.9382C67.4454%2063.9447%2067.8112%2063.9777%2068.1732%2064.0369C69.5103%2064.2737%2070.7927%2064.7537%2071.9568%2065.453L77.6312%2068.7232L78.7401%2069.3619L91.3974%2076.6697C97.512%2080.205%20102.476%2088.7947%20102.452%2095.8275L102.419%20108.881Z'%20fill='url(%23paint1_linear_302_6100)'/%3e%3cpath%20d='M129.993%2090.9695C129.993%2090.9063%20129.987%2090.842%20129.985%2090.7788C129.985%2090.648%20129.972%2090.516%20129.966%2090.3851C129.958%2090.2288%20129.953%2090.0746%20129.944%2089.9172C129.936%2089.7952%20129.924%2089.671%20129.914%2089.5479C129.904%2089.4248%20129.892%2089.2707%20129.88%2089.1309C129.873%2089.04%20129.867%2088.9491%20129.858%2088.8582C129.838%2088.6519%20129.813%2088.4445%20129.789%2088.2383C129.776%2088.1274%20129.766%2088.0165%20129.752%2087.9056C129.752%2087.869%20129.744%2087.8324%20129.739%2087.7947C129.694%2087.431%20129.642%2087.0658%20129.583%2086.6991L129.578%2086.6669C129.568%2086.6037%20129.555%2086.5405%20129.544%2086.4773C129.497%2086.1845%20129.448%2085.8918%20129.392%2085.5979C129.381%2085.5391%20129.368%2085.4815%20129.357%2085.4227C129.328%2085.2752%20129.297%2085.1277%20129.267%2084.9791C129.232%2084.805%20129.199%2084.632%20129.156%2084.459C129.134%2084.3559%20129.107%2084.2528%20129.084%2084.1497C129.048%2083.99%20129.011%2083.8303%20128.973%2083.6706C128.944%2083.5519%20128.92%2083.4333%20128.89%2083.3146C128.852%2083.1627%20128.809%2083.0097%20128.77%2082.8566C128.731%2082.7036%20128.688%2082.5395%20128.645%2082.3809C128.625%2082.3055%20128.606%2082.2301%20128.585%2082.1591C128.524%2081.9373%20128.458%2081.7222%20128.393%2081.5038C128.354%2081.3729%20128.318%2081.2409%20128.282%2081.1101C128.271%2081.0746%20128.262%2081.0391%20128.251%2080.9992C128.135%2080.6214%20128.014%2080.244%20127.889%2079.867L127.881%2079.8448C127.863%2079.7927%20127.844%2079.7417%20127.827%2079.6896C127.716%2079.3768%20127.613%2079.063%20127.494%2078.7503C127.474%2078.6948%20127.452%2078.6394%20127.432%2078.584C127.385%2078.4564%20127.336%2078.3289%20127.288%2078.2014C127.222%2078.0273%20127.159%2077.8532%20127.091%2077.6791C127.046%2077.5615%20126.997%2077.4451%20126.949%2077.3275C126.894%2077.1886%20126.838%2077.0499%20126.782%2076.9117C126.742%2076.813%20126.704%2076.7143%20126.663%2076.6167C126.577%2076.4094%20126.487%2076.2042%20126.398%2075.9979C126.353%2075.8871%20126.308%2075.7861%20126.262%2075.6797L126.215%2075.5688C126.059%2075.2147%20125.898%2074.8617%20125.733%2074.5098L125.711%2074.4632C125.661%2074.3523%20125.608%2074.2525%20125.558%2074.146C125.431%2073.881%20125.305%2073.616%20125.174%2073.3532C125.153%2073.311%20125.13%2073.2689%20125.109%2073.2256C124.998%2073.0038%20124.887%2072.7821%20124.768%2072.5669C124.677%2072.3906%20124.589%2072.2143%20124.495%2072.0391C124.478%2072.0069%20124.459%2071.9759%20124.441%2071.9426C124.136%2071.3756%20123.821%2070.8137%20123.495%2070.257C123.467%2070.2094%20123.443%2070.1617%20123.415%2070.114C123.333%2069.9743%20123.247%2069.8379%20123.164%2069.6992C123.024%2069.4675%20122.885%2069.2357%20122.742%2069.0062C122.618%2068.8066%20122.492%2068.6092%20122.365%2068.4118C122.22%2068.19%20122.076%2067.9604%20121.927%2067.7364C121.877%2067.6599%20121.829%2067.5823%20121.778%2067.5069C121.727%2067.4315%20121.682%2067.3727%20121.635%2067.304C121.233%2066.7085%20120.824%2066.1196%20120.4%2065.5441L120.395%2065.5352C120.354%2065.4787%20120.309%2065.4243%20120.268%2065.3689C120.006%2065.017%20119.741%2064.6688%20119.472%2064.3243L119.425%2064.2633C119.215%2063.996%20119%2063.7343%20118.786%2063.4715C118.722%2063.395%20118.661%2063.3163%20118.598%2063.2398L118.584%2063.222C118.306%2062.8879%20118.024%2062.5581%20117.739%2062.2328L117.702%2062.1929C117.621%2062.0998%20117.537%2062.0111%20117.455%2061.919C117.266%2061.7083%20117.078%2061.4954%20116.886%2061.2892L116.788%2061.1871C116.666%2061.0563%20116.542%2060.9288%20116.418%2060.799C116.276%2060.6504%20116.135%2060.4985%20115.991%2060.3554C115.942%2060.3055%20115.891%2060.2579%20115.841%2060.208C115.706%2060.0716%20115.57%2059.9385%20115.433%2059.8043C115.297%2059.6701%20115.193%2059.5626%20115.071%2059.445C115.005%2059.3829%20114.939%2059.323%20114.873%2059.2609C114.726%2059.1212%20114.577%2058.9837%20114.43%2058.8473C114.319%2058.7497%20114.219%2058.6488%20114.112%2058.5523C114.034%2058.4814%20113.953%2058.4137%20113.873%2058.3427C113.725%2058.2104%20113.575%2058.0796%20113.424%2057.9502C113.33%2057.8692%20113.238%2057.7849%20113.142%2057.7051C113.047%2057.6253%20112.946%2057.5465%20112.848%2057.4656C112.7%2057.3443%20112.553%2057.2242%20112.405%2057.1052C112.326%2057.042%20112.248%2056.9754%20112.169%2056.9122C112.045%2056.8157%20111.921%2056.7248%20111.798%2056.6294C111.675%2056.5341%20111.523%2056.4176%20111.386%2056.3145C111.328%2056.2713%20111.275%2056.2258%20111.213%2056.1826C111.045%2056.0595%20110.88%2055.943%20110.707%2055.8233C110.596%2055.7412%20110.476%2055.6569%20110.36%2055.5771L110.265%2055.5094C109.958%2055.2995%20109.651%2055.0958%20109.341%2054.8984H109.334L109.288%2054.8696C109%2054.6877%20108.711%2054.5092%20108.42%2054.3384L108.206%2054.2142L88.7824%2042.9941C88.551%2042.8603%2088.3204%2042.7313%2088.0904%2042.6071C88.0017%2042.5594%2087.9141%2042.5162%2087.8254%2042.4696L87.4717%2042.2866C87.3807%2042.24%2087.2887%2042.1901%2087.1989%2042.1447C87.0492%2042.0704%2086.9017%2042.0049%2086.7553%2041.9351C86.6511%2041.8863%2086.5479%2041.8353%2086.4448%2041.7887L86.3195%2041.7299C86.0238%2041.5991%2085.7332%2041.476%2085.4479%2041.3607L85.4035%2041.344C85.1252%2041.2331%2084.8491%2041.1289%2084.5729%2041.0313L84.4465%2040.9847C84.3356%2040.9481%2084.2336%2040.9149%2084.1271%2040.8805C83.9819%2040.8328%2083.8366%2040.7818%2083.6924%2040.7385C83.6159%2040.7153%2083.5405%2040.6975%2083.464%2040.6753C83.3354%2040.6376%2083.2078%2040.6033%2083.0792%2040.5644C82.9827%2040.5389%2082.8851%2040.5079%2082.7898%2040.4846C82.6944%2040.4613%2082.5802%2040.4436%2082.4737%2040.4192C82.3462%2040.3903%2082.2176%2040.3604%2082.0912%2040.3327C82.0268%2040.3194%2081.9603%2040.3016%2081.896%2040.2894C81.7729%2040.265%2081.6531%2040.2506%2081.53%2040.2295C81.3826%2040.204%2081.234%2040.1774%2081.0865%2040.1564C81.0388%2040.1508%2080.9878%2040.1397%2080.939%2040.1331C80.8148%2040.1109%2080.6928%2040.1109%2080.5697%2040.0954C80.4122%2040.0776%2080.2548%2040.0599%2080.0995%2040.0477C80.0563%2040.0477%2080.0108%2040.0377%2079.9676%2040.0344C79.8567%2040.0266%2079.7558%2040.0288%2079.6482%2040.0233C79.4608%2040.0144%2079.2756%2040.0067%2079.0893%2040C79.0394%2040%2078.9884%2040%2078.9385%2040C78.8575%2040%2078.7799%2040.01%2078.699%2040.0111C78.4661%2040.0111%2078.2354%2040.0266%2078.0081%2040.0432C77.9405%2040.0432%2077.8706%2040.0432%2077.8041%2040.0532C77.7054%2040.0621%2077.61%2040.0765%2077.5124%2040.0876L77.3017%2040.1109C77.0455%2040.1453%2076.7916%2040.1841%2076.5421%2040.2351L76.5144%2040.244C76.4401%2040.2595%2076.368%2040.2794%2076.2926%2040.2961C76.0897%2040.3415%2075.8878%2040.3892%2075.6904%2040.4447C75.5895%2040.4735%2075.4919%2040.5068%2075.3921%2040.5389C75.2646%2040.5789%2075.1349%2040.6143%2075.0085%2040.6598C74.9752%2040.6709%2074.9441%2040.6875%2074.912%2040.6986C74.7146%2040.7707%2074.5239%2040.8517%2074.332%2040.9348C74.2389%2040.9747%2074.1435%2041.0113%2074.0526%2041.0535C73.7731%2041.1843%2073.4981%2041.3252%2073.2331%2041.4793L62.5375%2047.6893C62.8036%2047.5351%2063.0775%2047.3943%2063.3559%2047.2635C63.4479%2047.2202%2063.5433%2047.1847%2063.6364%2047.1437C63.8272%2047.0605%2064.019%2046.9796%2064.2153%2046.9075C64.3727%2046.8498%2064.5335%2046.7966%2064.6954%2046.7478C64.7952%2046.7168%2064.8928%2046.6824%2064.9937%2046.6536C65.1911%2046.5981%2065.3941%2046.5504%2065.5959%2046.505C65.6691%2046.4883%2065.7412%2046.4684%2065.8177%2046.4528C66.0761%2046.4007%2066.3389%2046.3586%2066.605%2046.3231C66.6749%2046.3142%2066.7458%2046.3065%2066.8157%2046.2987C66.9798%2046.2798%2067.1484%2046.2665%2067.3114%2046.2543C67.5387%2046.2366%2067.7694%2046.2266%2068.0023%2046.2211C68.132%2046.2211%2068.2606%2046.2133%2068.3915%2046.2144C68.5756%2046.2144%2068.763%2046.2244%2068.946%2046.2333C69.0957%2046.2399%2069.2454%2046.2455%2069.3973%2046.2577C69.5492%2046.2699%2069.71%2046.2887%2069.8675%2046.3054C70.0249%2046.322%2070.2112%2046.3431%2070.3865%2046.3675C70.5328%2046.3885%2070.6803%2046.4151%2070.83%2046.4406C71.0163%2046.4728%2071.2026%2046.505%2071.3911%2046.5449C71.5176%2046.5715%2071.6462%2046.6003%2071.7737%2046.6303C71.9748%2046.6768%2072.177%2046.7271%2072.3803%2046.7811C72.5078%2046.8155%2072.6365%2046.8498%2072.764%2046.892C72.9858%2046.9552%2073.2076%2047.025%2073.4293%2047.0971C73.5402%2047.1315%2073.6411%2047.1648%2073.7476%2047.2014C74.0625%2047.3123%2074.3786%2047.4231%2074.698%2047.5529L74.7423%2047.5695C75.075%2047.7026%2075.4077%2047.8479%2075.7403%2047.9998C75.8435%2048.0464%2075.9466%2048.0974%2076.0508%2048.1462C76.2896%2048.2585%2076.5295%2048.3757%2076.7705%2048.4977C76.8881%2048.5576%2077.006%2048.6186%2077.1243%2048.6807C77.4414%2048.8481%2077.7597%2049.0189%2078.0802%2049.2041L97.5219%2060.4253C97.8834%2060.6338%2098.2427%2060.8515%2098.5997%2061.0785L98.6507%2061.1095C98.9945%2061.3313%2099.3361%2061.5531%2099.6754%2061.7915C99.7918%2061.8724%2099.9072%2061.9567%20100.022%2062.0388C100.244%2062.1996%20100.476%2062.3626%20100.701%2062.53C100.839%2062.6332%20100.975%2062.7385%20101.113%2062.8439C101.316%2062.9999%20101.518%2063.1588%20101.72%2063.3207C101.868%2063.439%20102.016%2063.5588%20102.164%2063.68C102.357%2063.8397%20102.549%2064.0016%20102.739%2064.1657C102.887%2064.2951%20103.035%2064.4256%20103.183%2064.5572C103.37%2064.7228%20103.555%2064.8909%20103.737%2065.0617C103.886%2065.1981%20104.035%2065.3356%20104.181%2065.4753C104.369%2065.6539%20104.557%2065.8357%20104.743%2066.0187C104.878%2066.1518%20105.015%2066.2849%20105.149%2066.4202C105.343%2066.6153%20105.534%2066.8149%20105.726%2067.0145C105.85%2067.1443%20105.974%2067.2718%20106.097%2067.4038C106.319%2067.6433%20106.541%2067.8884%20106.763%2068.1334C106.845%2068.2255%20106.929%2068.3153%20107.011%2068.4085C107.313%2068.7522%20107.612%2069.1015%20107.907%2069.4564C107.97%2069.5329%20108.031%2069.6116%20108.094%2069.6882C108.325%2069.9698%20108.556%2070.2526%20108.781%2070.5409C109.05%2070.8847%20109.315%2071.2329%20109.576%2071.5855C109.619%2071.6443%20109.665%2071.6964%20109.709%2071.7607C110.133%2072.3363%20110.543%2072.9251%20110.944%2073.5195C111.042%2073.6637%20111.141%2073.8078%20111.236%2073.9531C111.383%2074.1749%20111.529%2074.4022%20111.674%2074.6284C111.8%2074.8258%20111.927%2075.0232%20112.051%2075.2228C112.194%2075.4524%20112.333%2075.6841%20112.472%2075.9159C112.583%2076.1011%20112.694%2076.2863%20112.805%2076.4703C113.13%2077.027%20113.446%2077.5893%20113.751%2078.157C113.862%2078.3633%20113.973%2078.5706%20114.076%2078.7769C114.179%2078.9832%20114.307%2079.2205%20114.417%2079.4423C114.57%2079.7472%20114.72%2080.0544%20114.867%2080.3616C114.918%2080.4725%20114.97%2080.5723%20115.02%2080.6787C115.209%2081.0816%20115.394%2081.4882%20115.574%2081.8985C115.621%2082.0094%20115.666%2082.1126%20115.712%2082.2201C115.842%2082.5232%20115.97%2082.8274%20116.095%2083.1328C116.152%2083.2718%20116.208%2083.4104%20116.263%2083.5486C116.379%2083.8399%20116.49%2084.1315%20116.595%2084.4236C116.643%2084.5511%20116.692%2084.6786%20116.74%2084.8061C116.874%2085.1758%20117.004%2085.5454%20117.129%2085.9151C117.147%2085.9661%20117.165%2086.0182%20117.183%2086.0692C117.324%2086.4891%20117.457%2086.909%20117.585%2087.3289C117.624%2087.4609%20117.661%2087.5929%20117.695%2087.7248C117.782%2088.0176%20117.866%2088.3103%20117.945%2088.6031C117.988%2088.7628%20118.029%2088.9225%20118.071%2089.0833C118.142%2089.3531%20118.209%2089.6229%20118.273%2089.8928C118.312%2090.0532%20118.349%2090.2133%20118.384%2090.3729C118.447%2090.6494%20118.506%2090.9259%20118.561%2091.2024C118.591%2091.3499%20118.622%2091.4974%20118.651%2091.646C118.719%2091.9986%20118.782%2092.3502%20118.839%2092.7006C118.849%2092.7638%20118.862%2092.827%20118.872%2092.8902C118.938%2093.3042%20118.996%2093.7167%20119.046%2094.1278C119.061%2094.2387%20119.07%2094.3496%20119.084%2094.4604C119.118%2094.7562%20119.148%2095.0537%20119.175%2095.3531C119.187%2095.4929%20119.198%2095.6315%20119.208%2095.7701C119.229%2096.0495%20119.246%2096.3279%20119.259%2096.6051C119.266%2096.7371%20119.272%2096.869%20119.278%2097.001C119.292%2097.3936%20119.301%2097.7839%20119.3%2098.172L119.237%20120.505C119.237%20120.912%20119.225%20121.31%20119.207%20121.702C119.207%20121.813%20119.192%20121.924%20119.187%20122.035C119.171%20122.304%20119.154%20122.572%20119.129%20122.835C119.116%20122.986%20119.099%20123.135%20119.083%20123.285C119.058%20123.507%20119.033%20123.728%20119.003%20123.95C118.981%20124.11%20118.957%20124.266%20118.932%20124.423C118.9%20124.624%20118.866%20124.822%20118.829%20125.018C118.795%20125.193%20118.761%20125.367%20118.725%20125.538C118.688%20125.71%20118.648%20125.884%20118.605%20126.06C118.556%20126.262%20118.504%20126.461%20118.449%20126.657C118.406%20126.811%20118.363%20126.964%20118.316%20127.115C118.244%20127.349%20118.168%20127.577%20118.088%20127.804C118.044%20127.928%20118.001%20128.053%20117.956%20128.175C117.811%20128.557%20117.657%20128.928%20117.488%20129.284C117.357%20129.561%20117.221%20129.832%20117.077%20130.092C117.061%20130.121%20117.042%20130.148%20117.027%20130.177C116.895%20130.412%20116.758%20130.64%20116.616%20130.862C116.582%20130.915%20116.545%20130.966%20116.506%20131.02C116.386%20131.199%20116.263%20131.375%20116.136%20131.546C116.084%20131.616%20116.031%20131.686%20115.978%20131.755C115.855%20131.913%20115.729%20132.067%20115.6%20132.216C115.552%20132.273%20115.504%20132.327%20115.455%20132.385C115.279%20132.582%20115.097%20132.774%20114.91%20132.956C114.881%20132.983%20114.85%20133.01%20114.821%20133.038C114.66%20133.191%20114.495%20133.339%20114.327%20133.481C114.264%20133.533%20114.2%20133.584%20114.137%20133.635C113.989%20133.753%20113.841%20133.866%20113.693%20133.975C113.63%20134.02%20113.568%20134.067%20113.504%20134.11C113.292%20134.255%20113.077%20134.395%20112.855%20134.524L123.549%20128.314C123.771%20128.185%20123.986%20128.045%20124.199%20127.9C124.264%20127.857%20124.326%20127.81%20124.388%20127.765C124.539%20127.656%20124.687%20127.543%20124.831%20127.425C124.895%20127.374%20124.959%20127.323%20125.021%20127.271C125.19%20127.129%20125.356%20126.982%20125.518%20126.828C125.547%20126.801%20125.577%20126.776%20125.604%20126.748C125.792%20126.566%20125.974%20126.374%20126.15%20126.177C126.199%20126.121%20126.246%20126.066%20126.295%20126.007C126.424%20125.859%20126.55%20125.706%20126.673%20125.546C126.727%20125.477%20126.784%20125.407%20126.832%20125.337C126.958%20125.167%20127.081%20124.991%20127.2%20124.812C127.236%20124.759%20127.272%20124.707%20127.311%20124.653L127.344%20124.604C127.475%20124.399%20127.598%20124.186%20127.72%20123.971C127.737%20123.941%20127.756%20123.915%20127.772%20123.885C127.911%20123.633%20128.044%20123.375%20128.17%20123.108L128.184%20123.076C128.352%20122.72%20128.506%20122.349%20128.652%20121.967C128.665%20121.933%20128.68%20121.902%20128.694%20121.868C128.726%20121.78%20128.753%20121.686%20128.784%20121.597C128.863%20121.375%20128.941%20121.141%20129.013%20120.907C129.033%20120.843%20129.056%20120.783%20129.075%20120.719C129.101%20120.632%20129.121%20120.539%20129.145%20120.451C129.2%20120.255%20129.252%20120.056%20129.301%20119.854C129.321%20119.769%20129.347%20119.691%20129.366%20119.605C129.385%20119.52%20129.401%20119.423%20129.42%20119.334C129.457%20119.161%20129.492%20118.987%20129.525%20118.811C129.543%20118.719%20129.564%20118.631%20129.581%20118.537C129.598%20118.444%20129.612%20118.323%20129.629%20118.218C129.653%20118.062%20129.677%20117.904%20129.7%20117.745C129.711%20117.661%20129.726%20117.582%20129.736%20117.497C129.753%20117.362%20129.764%20117.221%20129.779%20117.085C129.795%20116.948%20129.813%20116.785%20129.826%20116.632C129.832%20116.57%20129.84%20116.51%20129.845%20116.448C129.861%20116.249%20129.87%20116.041%20129.883%20115.837C129.889%20115.726%20129.898%20115.615%20129.904%20115.505C129.904%20115.477%20129.904%20115.45%20129.904%20115.422C129.918%20115.077%20129.927%20114.726%20129.928%20114.37V114.308L129.991%2091.9753C130.002%2091.6331%20130.003%2091.2978%20129.993%2090.9695Z'%20fill='%230B0E11'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_302_6100'%20x1='68.0078'%20y1='92.449'%20x2='102.417'%20y2='92.449'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23313131'/%3e%3cstop%20offset='1'%20stop-color='%230B0E11'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_302_6100'%20x1='50.0001'%20y1='94.977'%20x2='113.22'%20y2='94.977'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%234E4E4E'/%3e%3cstop%20offset='1'%20stop-color='%230B0E11'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e";function Tt(e){const t=[],n=/!\[([^\]]*)\]\(([^)]+)\)|\[([^\]]*)\]\(([^)]+)\)|(https?:\/\/[^\s<>]+)|\*\*(.+?)\*\*|__(.+?)__|\*(.+?)\*|_(.+?)_|~~(.+?)~~|`([^`]+)`/g;let s=0,o;for(;(o=n.exec(e))!==null;)o.index>s&&t.push(e.slice(s,o.index)),o[1]!==void 0||o[2]!==void 0?t.push(P.jsx("img",{src:o[2],alt:o[1],className:"mc-image",onError:a=>{const r=a.target;r.src=Hi}},o.index)):o[3]!==void 0?t.push(P.jsx("a",{href:o[4],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:o[3]},o.index)):o[5]!==void 0?t.push(P.jsx("a",{href:o[5],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:o[5]},o.index)):o[6]!==void 0?t.push(P.jsx("strong",{children:Tt(o[6])},o.index)):o[7]!==void 0?t.push(P.jsx("strong",{children:Tt(o[7])},o.index)):o[8]!==void 0?t.push(P.jsx("em",{children:Tt(o[8])},o.index)):o[9]!==void 0?t.push(P.jsx("em",{children:Tt(o[9])},o.index)):o[10]!==void 0?t.push(P.jsx("del",{children:Tt(o[10])},o.index)):o[11]!==void 0&&t.push(P.jsx("code",{className:"mc-inline-code",children:o[11]},o.index)),s=o.index+o[0].length;return s<e.length&&t.push(e.slice(s)),t.length>0?t:[e]}const Wi=({content:e})=>{const t=e.split(`
104
+ `),n=[];let s=0;for(;s<t.length;){const o=t[s];if(o.trimStart().startsWith("```")){const r=o.trimStart().slice(3)?.trim(),i=[];for(s++;s<t.length&&!t[s].trimStart().startsWith("```");)i.push(t[s]),s++;n.push(P.jsxs("div",{className:"mc-codeblock",children:[r&&P.jsx("div",{className:"mc-codeblock-lang",children:r}),P.jsx("pre",{children:P.jsx("code",{children:i.join(`
105
+ `)})})]},`code-${s}`)),s++;continue}if(/^(\s*[-*_]\s*){3,}$/.test(o)){n.push(P.jsx("hr",{className:"mc-hr"},`hr-${s}`)),s++;continue}const a=o.match(/^(#{1,3})\s+(.+)/);if(a){const r=a[1].length,i=a[2];n.push(P.jsx("div",{className:`mc-heading mc-h${r}`,children:Tt(i)},`h-${s}`)),s++;continue}if(o.trimStart().startsWith("> ")){const r=[];for(;s<t.length&&t[s].trimStart().startsWith("> ");)r.push(t[s].replace(/^\s*>\s?/,"")),s++;n.push(P.jsx("div",{className:"mc-blockquote",children:r.map((i,l)=>P.jsx("div",{children:Tt(i)},l))},`bq-${s}`));continue}if(o?.trim()===""){n.push(P.jsx("div",{className:"mc-empty-line"},`empty-${s}`)),s++;continue}n.push(P.jsx("div",{className:"mc-line",children:Tt(o)},`line-${s}`)),s++}return P.jsx("div",{className:"message-content",children:n})},Vi={send_native:{label:"actionSendNativeLabel",description:"actionSendNativeDesc",fields:[{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_token:{label:"actionSendTokenLabel",description:"actionSendTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},swap_token:{label:"actionSwapTokenLabel",description:"actionSwapTokenDesc",fields:[{key:"token_in",label:"fieldTokenIn",type:"address",placeholder:"0x... or native",required:!0,editable:!1},{key:"token_in_symbol",label:"fieldTokenInSymbol",type:"text",placeholder:"e.g. ETH",required:!1,editable:!1},{key:"token_out",label:"fieldTokenOut",type:"address",placeholder:"0x...",required:!0,editable:!1},{key:"token_out_symbol",label:"fieldTokenOutSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"token_in_decimals",label:"fieldTokenInDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"token_out_decimals",label:"fieldTokenOutDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},approve_token:{label:"actionApproveTokenLabel",description:"actionApproveTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"spender_address",label:"fieldSpenderAddress",type:"address",placeholder:"0x... spender contract",required:!0,validation:"address",editable:!1},{key:"amount",label:"fieldAmountUnlimited",type:"amount",placeholder:"0.0 or leave empty for max",required:!1,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},wrap_native:{label:"actionWrapNativeLabel",description:"actionWrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},unwrap_native:{label:"actionUnwrapNativeLabel",description:"actionUnwrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_nft:{label:"actionSendNftLabel",description:"actionSendNftDesc",fields:[{key:"contract_address",label:"fieldNftContract",type:"address",placeholder:"0x... NFT contract",required:!0,validation:"address",editable:!1},{key:"token_id",label:"fieldTokenId",type:"text",placeholder:"e.g. 1234",required:!0,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"token_standard",label:"fieldTokenStandard",type:"text",placeholder:"ERC721 or ERC1155",required:!0,editable:!1},{key:"amount",label:"fieldAmount",type:"text",placeholder:"1",required:!0},{key:"maxAmount",label:"fieldMaxAmount",type:"text",placeholder:"",required:!1,editable:!1,hidden:!0},{key:"nft_name",label:"fieldNftName",type:"text",placeholder:"e.g. Bored Ape #1234",required:!1,editable:!1}]}};function Gi(e){return Me(e)}function co(e){if(!e||e?.trim()==="")return!1;const t=parseFloat(e);return!isNaN(t)&&t>0}const Yi=({action:e,initialValues:t,onSubmit:n,onCancel:s,isSubmitting:o=!1,tokenInfo:a,nftInfo:r})=>{const{t:i,ti:l}=In(),k=Vi[e],[O,Y]=te.useState(()=>{if(!k)return{};const N={};return k.fields.forEach(W=>{N[W.key]=t[W.key]||""}),N}),[g]=te.useState(()=>["send_native","send_token","swap_token"].includes(e)&&!a&&O.contract_address?i("formTokenNotFound"):null),[A,y]=te.useState(()=>{const N={};if(["send_native","send_token","swap_token"].includes(e)&&a){const J=parseFloat(a.balanceFormatted||"0");if(J<=0)N.amount=l("formNoBalance",{symbol:a.symbol??""});else{const he=t.amount?.trim();he&&co(he)&&parseFloat(he)>J&&(N.amount=l("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}}return N}),T=te.useCallback((N,W)=>{Y(J=>({...J,[N]:W})),A[N]&&y(J=>{const he={...J};return delete he[N],he})},[A]),B=te.useCallback(()=>{if(!k)return!1;const N={};if(k.fields.forEach(W=>{const J=O[W.key]?.trim()||"";if(W.required&&!J&&!(e==="send_nft"&&W.key==="amount")){N[W.key]=l("formFieldRequired",{field:i(W.label)});return}if(J){if(W.validation==="address"&&!Gi(J)&&(N[W.key]=i("formInvalidAddress")),W.validation==="amount"&&!co(J)&&(N[W.key]=i("formMustBePositive")),W.key==="amount"&&J&&co(J)&&a?.balanceFormatted){const he=parseFloat(J),ge=parseFloat(a.balanceFormatted);he>ge&&(N[W.key]=l("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}W.validation==="positive_number"&&(isNaN(Number(J))||Number(J)<0)&&(N[W.key]=i("formMustBeValidNumber"))}}),e==="send_nft"&&O.token_standard?.toUpperCase()==="ERC1155"){const W=O.amount?.trim();if(!W)N.amount=l("formFieldRequired",{field:i("fieldAmount")});else if(!/^\d+$/.test(W)||parseInt(W,10)<1)N.amount=i("formMustBePositiveInteger");else{const J=parseInt(t.maxAmount||"0",10);J>0&&parseInt(W,10)>J&&(N.amount=l("formAmountExceedsNft",{max:String(J)}))}}return y(N),Object.keys(N).length===0},[k,O,a,e,t,i,l]),ve=te.useCallback(()=>{B()&&n(e,O)},[B,n,e,O]);return k?P.jsxs("div",{className:"action-form",children:[P.jsx("div",{className:"action-form-title",children:P.jsx("span",{children:i(k.label)})}),g&&P.jsxs("div",{className:"action-form-general-error",children:["⚠️ ",g]}),a&&P.jsx("div",{className:"action-form-token-info",children:P.jsxs("div",{className:"token-info-row",children:[a.logo&&P.jsx("img",{src:a.logo,alt:a.symbol,className:"token-info-logo",width:20,height:20}),P.jsxs("div",{className:"token-info-details",children:[P.jsxs("span",{className:"token-info-name",children:[a.name," (",a.symbol,")"]}),P.jsxs("span",{className:"token-info-balance",children:[i("spendable"),": ",ie(a.balanceFormatted).decimalPlaces(8,ie.ROUND_DOWN).toFormat()," ",a.symbol,a.usdValue!==void 0&&P.jsxs("span",{className:"token-info-usd",children:[" ","≈ $",a.usdValue.toFixed(2)]})]})]})]})}),r?.image&&P.jsx("div",{className:"action-form-nft-info",children:P.jsx("img",{src:r.image,alt:r.name,className:"nft-info-image",onError:N=>{N.target.style.display="none"}})}),P.jsx("div",{className:"action-form-fields",children:k.fields.map(N=>N.hidden||N.key==="amount"&&e==="send_nft"&&O.token_standard?.toUpperCase()!=="ERC1155"?null:P.jsxs("div",{className:"action-form-field",children:[P.jsxs("div",{className:"action-form-field-header",children:[P.jsxs("div",{className:"action-form-field-label",children:[i(N.label),N.required&&" *"]}),N.key==="amount"&&a&&e!=="send_nft"&&P.jsxs("div",{className:"action-form-pct-btns",children:[[25,50,75].map(W=>P.jsxs("button",{type:"button",className:"action-form-pct-btn",onClick:()=>T("amount",(parseFloat(a.balanceFormatted)*W/100).toString()),disabled:o,children:[W,"%"]},W)),P.jsx("button",{type:"button",className:"action-form-pct-btn action-form-max-btn",onClick:()=>T("amount",a.balanceFormatted),disabled:o,children:"MAX"})]})]}),(()=>{const W=N.editable===!1&&!!t[N.key],J=o||W,he=[A[N.key]?"error":"",W?"readonly":""].filter(Boolean).join(" ");return N.type==="address"?P.jsx("textarea",{rows:2,placeholder:N.placeholder,value:O[N.key]||"",onChange:ge=>T(N.key,ge.target.value),className:he,disabled:J}):P.jsx("input",{type:N.type==="number"?"number":"text",placeholder:N.placeholder,value:O[N.key]||"",onChange:ge=>T(N.key,ge.target.value),className:he,disabled:J})})(),A[N.key]&&P.jsx("span",{className:"field-error",children:A[N.key]})]},N.key))}),P.jsxs("div",{className:"action-form-actions",children:[P.jsx("button",{className:"message-button",onClick:s,type:"button",disabled:o,children:i("formCancel")}),P.jsx("button",{className:"message-button",onClick:ve,type:"button",disabled:o,children:i(o?"formProcessing":"formExecute")})]})]}):null},zi=({scrollContainerRef:e,threshold:t=200})=>{const[n,s]=te.useState(!1);te.useEffect(()=>{const a=e.current;if(!a)return;const r=()=>{const{scrollTop:i,scrollHeight:l,clientHeight:k}=a,O=l-i-k;s(O>t)};return a.addEventListener("scroll",r,{passive:!0}),r(),()=>{a.removeEventListener("scroll",r)}},[e,t]);const o=()=>{e.current?.scrollTo({top:e.current.scrollHeight,behavior:"smooth"})};return n?P.jsx("button",{className:"scroll-to-bottom-btn",onClick:o,"aria-label":"Scroll to bottom",type:"button",children:P.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:P.jsx("path",{d:"M9 3V15M9 15L4 10M9 15L14 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):null};function Ji(e){const{walletAddress:t,chainName:n,chainId:s,nativeSymbol:o,walletTokens:a,walletNfts:r}=e;if(!t)return`You are a Web3 wallet assistant for the Keyring crypto EVM wallet app.
106
106
  The user is currently NOT connected to any wallet.
107
107
 
108
108
  ## YOUR ROLE:
@@ -128,14 +128,14 @@ Always respond with a valid JSON object:
128
128
  - **CRITICAL**: NEVER include any "Buy" actions (e.g., "Buy USDC", "Buy ETH", "Purchase token", etc.) in suggested_actions. The app handles Buy buttons separately. Only include non-buy actions in suggested_actions (e.g., "Send token", "Swap token", "Check balance", "Show my NFTs").
129
129
  - For wallet-required actions, politely explain the user needs to connect their wallet first, and put this in the "message" field
130
130
  - ALWAYS respond with raw JSON only, never wrap in \`\`\`json code blocks
131
- - **CRITICAL - LANGUAGE**: Always respond in the SAME language the user writes in. English → English. Vietnamese → Vietnamese. NEVER use Chinese or any other language unless the user wrote in that language.`;if(t&&!ct[o])return`You are a Web3 wallet assistant for the Keyring crypto EVM wallet app.
131
+ - **CRITICAL - LANGUAGE**: Always respond in the SAME language the user writes in. English → English. Vietnamese → Vietnamese. NEVER use Chinese or any other language unless the user wrote in that language.`;if(t&&!it[s])return`You are a Web3 wallet assistant for the Keyring crypto EVM wallet app.
132
132
  The user's wallet address is: ${t}
133
- The user is selected on (chainId: ${o}) an UNSUPPORTED chain.
133
+ The user is selected on (chainId: ${s}) an UNSUPPORTED chain.
134
134
 
135
135
  ## YOUR ROLE:
136
136
  - You are a friendly, knowledgeable assistant that can talk about ANY topic naturally
137
137
  - You can freely answer general questions, discuss crypto tokens, prices, market info, token details, etc. — these do NOT require a supported chain
138
- - **BLOCKED on unsupported chain** — if the user asks for any of the following, politely inform them that chain (chainId: ${o}) is not currently supported and the action cannot be performed:
138
+ - **BLOCKED on unsupported chain** — if the user asks for any of the following, politely inform them that chain (chainId: ${s}) is not currently supported and the action cannot be performed:
139
139
  - Checking THEIR OWN balance ("what is my balance?", "how much ETH do I have?")
140
140
  - Sending tokens or NFTs
141
141
  - Swapping or buying tokens
@@ -160,18 +160,18 @@ Always respond with a valid JSON object:
160
160
  - ALWAYS respond with raw JSON only, never wrap in \`\`\`json code blocks
161
161
  - **CRITICAL - LANGUAGE**: Always respond in the SAME language the user writes in. English → English. Vietnamese → Vietnamese. NEVER use Chinese or any other language unless the user wrote in that language.`;const i=a&&a.length>0?`
162
162
  ## USER'S CURRENT WALLET BALANCE:
163
- ${a.map(k=>{const D=k.usd_value!==void 0?` (~$${k.usd_value.toFixed(2)})`:"";return`- ${k.name} (${k.symbol}): ${k.balance_formatted}${D}${k.native_token?" [native]":` [${k.token_address}]`}`}).join(`
163
+ ${a.map(k=>{const O=k.usd_value!==void 0?` (~$${k.usd_value.toFixed(2)})`:"";return`- ${k.name} (${k.symbol}): ${k.balance_formatted}${O}${k.native_token?" [native]":` [${k.token_address}]`}`}).join(`
164
164
  `)}
165
165
  Use this balance data to accurately answer balance questions and to pre-fill token parameters in actions (contract_address, decimals, symbol). NEVER ask the user to provide token info that is already available above.
166
166
  `:"",l=r&&r.length>0?`
167
167
  ## USER'S NFT COLLECTION:
168
- ${r.map(k=>{const D=k.contract_type==="ERC1155"?` (x${k.amount})`:"";return`- ${k.name}${D} | ${k.contract_type} | contract: ${k.token_address} | tokenId: ${k.token_id}`}).join(`
168
+ ${r.map(k=>{const O=k.contract_type==="ERC1155"?` (x${k.amount})`:"";return`- ${k.name}${O} | ${k.contract_type} | contract: ${k.token_address} | tokenId: ${k.token_id}`}).join(`
169
169
  `)}
170
170
  When the user wants to send an NFT by name, use this data to fill contract_address, token_id, token_standard, and nft_name accurately. NEVER guess or fabricate NFT contract addresses.
171
171
  `:"";return`You are a Web3 wallet assistant for the Keyring crypto EVM wallet app.
172
172
  The user's wallet address is: ${t}
173
- The user is on chain: ${n} (chainId: ${o})
174
- Native token: ${s}${i}${l}
173
+ The user is on chain: ${n} (chainId: ${s})
174
+ Native token: ${o}${i}${l}
175
175
  ## YOUR ROLE:
176
176
  - You are a friendly, knowledgeable assistant that can talk about ANY topic naturally
177
177
  - You also specialize in crypto wallet operations: send tokens, swap, approve, check balances, get token info
@@ -179,7 +179,7 @@ Native token: ${s}${i}${l}
179
179
  - When user asks about general topics (weather, coding, history, math, etc.), respond naturally using the "chat" action
180
180
  - You will receive CONVERSATION HISTORY to maintain context. Use it to understand what the user is referring to
181
181
  - NEVER confuse a general conversation with a wallet action. Only use wallet actions when user EXPLICITLY wants to perform a crypto operation
182
- - **CRITICAL: For ERC20 token actions (send_token, swap_token, buy_token, approve_token), contract_address is a REQUIRED field — you MUST always include it in the JSON response with the ACTUAL contract address on the current chain (chainId: ${o}). NEVER leave it empty. You MUST look up and provide the correct contract address for the token on this chain. You know common tokens like USDC, USDT, DAI, WETH, LINK, UNI, AAVE, etc. on major chains — always provide the correct address. If the token genuinely does not exist on this chain, inform the user instead of proceeding with the action. EXCEPTION: For send_nft, contract_address is OPTIONAL — if the user refers to an NFT by name and you don't know the contract address, leave it as empty string "" and fill nft_name instead. NEVER make up or guess NFT contract addresses.**
182
+ - **CRITICAL: For ERC20 token actions (send_token, swap_token, buy_token, approve_token), contract_address is a REQUIRED field — you MUST always include it in the JSON response with the ACTUAL contract address on the current chain (chainId: ${s}). NEVER leave it empty. You MUST look up and provide the correct contract address for the token on this chain. You know common tokens like USDC, USDT, DAI, WETH, LINK, UNI, AAVE, etc. on major chains — always provide the correct address. If the token genuinely does not exist on this chain, inform the user instead of proceeding with the action. EXCEPTION: For send_nft, contract_address is OPTIONAL — if the user refers to an NFT by name and you don't know the contract address, leave it as empty string "" and fill nft_name instead. NEVER make up or guess NFT contract addresses.**
183
183
  - **CRITICAL ACTION RULE: When user requests a wallet operation (swap, send, buy, approve, wrap, unwrap), you MUST return that action type IMMEDIATELY — even if some parameters are missing. DO NOT return a "chat" action to ask for missing details. Simply leave the missing parameters as empty string "". Your prompt for more info (e.g., asking for recipient address) goes in the "message" field of the wallet action itself. For example: If user says "swap DAI to USDC", you MUST return {"action":"swap_token",...} directly, NOT {"action":"chat",...}. If user says "send WETH", you MUST return {"action":"send_token","parameters":{"contract_address":"<WETH address>","to_address":"","amount":"","decimals":"18","token_symbol":"WETH"}} with empty to_address and amount, NOT a chat response.**
184
184
 
185
185
  ## RESPONSE FORMAT:
@@ -221,7 +221,7 @@ Rules for suggested_actions:
221
221
  Whenever your "chat" response mentions, lists, or discusses specific tokens/coins (e.g., trending tokens, token details, token recommendations, price discussions, asking about a token), you MUST include a "token_mentions" array with each token's info so the user can quickly buy them.
222
222
  Each entry: { "symbol": "<TOKEN_SYMBOL>" (REQUIRED), "contract_address": "<actual address>" (REQUIRED), "decimals": <number> (REQUIRED) }
223
223
  - You MUST include ALL crypto tokens mentioned in your response in token_mentions.
224
- - You MUST provide the actual contract_address for each token on chainId ${o}. NEVER leave contract_address empty.
224
+ - You MUST provide the actual contract_address for each token on chainId ${s}. NEVER leave contract_address empty.
225
225
  - You MUST provide the accurate decimals for each token.
226
226
  - Only include tokens that are actual tradeable crypto tokens mentioned in your response
227
227
  - Do NOT include token_mentions for general greetings, non-crypto conversations, or balance checks
@@ -230,38 +230,38 @@ Each entry: { "symbol": "<TOKEN_SYMBOL>" (REQUIRED), "contract_address": "<actua
230
230
 
231
231
  ## SUPPORTED ACTIONS:
232
232
 
233
- ### 1. send_native - Send native token (${s})
233
+ ### 1. send_native - Send native token (${o})
234
234
  Parameters: { "to_address": "", "amount": "" }
235
- Triggered by: "send ${s}", "transfer 0.1 ${s} to 0x...", "send native token"
236
- **IMPORTANT**: ONLY use send_native when the user explicitly wants to send **${s}** (the native token of the CURRENT chain). If the user says "send ETH" but the current chain's native token is NOT ETH (e.g., on Polygon where native is MATIC), then ETH is an ERC20 token on this chain — use send_token with the correct ETH/WETH contract address instead. NEVER use send_native for a token that is not ${s}.
235
+ Triggered by: "send ${o}", "transfer 0.1 ${o} to 0x...", "send native token"
236
+ **IMPORTANT**: ONLY use send_native when the user explicitly wants to send **${o}** (the native token of the CURRENT chain). If the user says "send ETH" but the current chain's native token is NOT ETH (e.g., on Polygon where native is MATIC), then ETH is an ERC20 token on this chain — use send_token with the correct ETH/WETH contract address instead. NEVER use send_native for a token that is not ${o}.
237
237
  Note: If user says "max", "all", or "send everything", set amount to "max". If user says "X%" (e.g., 50%), set amount to "50%". The app resolves these to actual values.
238
238
 
239
239
  ### 2. send_token - Send ERC20 token
240
240
  Parameters: { "contract_address": "" (REQUIRED), "token_symbol": "", "to_address": "", "amount": "", "decimals": "" }
241
241
  Triggered by: "send USDC", "transfer 100 DAI to 0x...", "send token"
242
- Note: contract_address is REQUIRED — you MUST always provide the actual contract address of the token on chainId ${o}. NEVER leave it empty. ALWAYS provide accurate decimals for the token. If user says "max", "all", or "send everything", set amount to "max". If user says "X%" (e.g., 50%), set amount to "50%". The app resolves these to actual values.
242
+ Note: contract_address is REQUIRED — you MUST always provide the actual contract address of the token on chainId ${s}. NEVER leave it empty. ALWAYS provide accurate decimals for the token. If user says "max", "all", or "send everything", set amount to "max". If user says "X%" (e.g., 50%), set amount to "50%". The app resolves these to actual values.
243
243
 
244
244
  ### 3. swap_token - Swap tokens
245
245
  Parameters: { "token_in": "<contract_address or 'native'>" (REQUIRED), "token_in_symbol": "", "token_in_decimals": "", "token_out": "<contract_address>" (REQUIRED), "token_out_symbol": "", "token_out_decimals": "", "amount": "" }
246
246
  Triggered by: "swap ETH to USDC", "exchange 0.5 ETH for USDC", "convert ETH to USDC", "swap token", "I want to swap", "đổi token"
247
- Note: token_in and token_out are REQUIRED fields — MUST contain the actual contract address. For native tokens (${s}), set token_in to "native". For ERC20 tokens, you MUST provide the correct contract address on chainId ${o}. NEVER leave empty. ALWAYS fill in token_in_symbol, token_out_symbol, token_in_decimals, and token_out_decimals with accurate values for each token. If user says "max", "all", or "swap everything", set amount to "max". If user says "X%" (e.g., 50%), set amount to "50%". The app resolves these to actual values.
247
+ Note: token_in and token_out are REQUIRED fields — MUST contain the actual contract address. For native tokens (${o}), set token_in to "native". For ERC20 tokens, you MUST provide the correct contract address on chainId ${s}. NEVER leave empty. ALWAYS fill in token_in_symbol, token_out_symbol, token_in_decimals, and token_out_decimals with accurate values for each token. If user says "max", "all", or "swap everything", set amount to "max". If user says "X%" (e.g., 50%), set amount to "50%". The app resolves these to actual values.
248
248
  **IMPORTANT**: If the user says "swap" or "I want to swap" WITHOUT specifying any tokens or amounts, still return swap_token with ALL parameters as empty strings "". The app will show the user's wallet balances so they can pick a token.
249
249
 
250
250
  ### 4. buy_token - Buy a token (user wants to purchase a specific token)
251
251
  Parameters: { "token_symbol": "", "contract_address": "" (REQUIRED), "decimals": "" }
252
252
  Triggered by: "buy USDC", "I want to buy ETH", "purchase DOGE", "mua token X"
253
- Note: Use this when user says "buy <token>" without specifying what to sell. If user specifies both tokens ("buy USDC with ETH"), use swap_token instead. contract_address is REQUIRED — you MUST always provide the actual contract address on chainId ${o}. NEVER leave it empty. If the token does not exist on this chain, inform the user. For example, BNB is not native to most chains except BSC. ALWAYS provide accurate decimals for the token.
253
+ Note: Use this when user says "buy <token>" without specifying what to sell. If user specifies both tokens ("buy USDC with ETH"), use swap_token instead. contract_address is REQUIRED — you MUST always provide the actual contract address on chainId ${s}. NEVER leave it empty. If the token does not exist on this chain, inform the user. For example, BNB is not native to most chains except BSC. ALWAYS provide accurate decimals for the token.
254
254
 
255
255
  ### 5. approve_token - Approve token spending
256
256
  Parameters: { "contract_address": "" (REQUIRED), "token_symbol": "", "spender_address": "", "amount": "", "decimals": "" }
257
257
  Triggered by: "approve USDC", "allow spending", "approve contract"
258
258
  Note: ALWAYS provide accurate decimals for the token.
259
259
 
260
- ### 6. wrap_native - Wrap native token (${s} → W${s})
260
+ ### 6. wrap_native - Wrap native token (${o} → W${o})
261
261
  Parameters: { "amount": "" }
262
262
  Triggered by: "wrap ETH", "convert to WETH"
263
263
 
264
- ### 7. unwrap_native - Unwrap native token (W${s} → ${s})
264
+ ### 7. unwrap_native - Unwrap native token (W${o} → ${o})
265
265
  Parameters: { "amount": "" }
266
266
  Triggered by: "unwrap WETH", "convert WETH to ETH"
267
267
 
@@ -293,11 +293,11 @@ You have comprehensive, precise knowledge of token contract addresses on ALL maj
293
293
  2. Leave parameter as empty string "" if the user didn't mention it
294
294
  3. Always include a friendly "message" explaining what you understood
295
295
  4. For "chat" action, put your full response in the "message" field
296
- 5. **CRITICAL**: For ERC20 token actions, contract_address is a REQUIRED field — ALWAYS provide the ACTUAL contract address on chainId ${o}. NEVER leave it empty. You must know the correct addresses for common tokens (USDC, USDT, DAI, WETH, LINK, UNI, AAVE, etc.) on major chains. If a token does not exist on this chain, inform the user instead of proceeding. Be especially careful with tokens that are native to other chains (e.g., BNB is BSC native — if user asks to buy BNB on OP Mainnet, inform them it may not be available as an ERC20 on this chain). **EXCEPTION: For send_nft, if you don't know the NFT contract address, leave it as empty string "" and provide nft_name instead. NEVER fabricate NFT addresses.**
296
+ 5. **CRITICAL**: For ERC20 token actions, contract_address is a REQUIRED field — ALWAYS provide the ACTUAL contract address on chainId ${s}. NEVER leave it empty. You must know the correct addresses for common tokens (USDC, USDT, DAI, WETH, LINK, UNI, AAVE, etc.) on major chains. If a token does not exist on this chain, inform the user instead of proceeding. Be especially careful with tokens that are native to other chains (e.g., BNB is BSC native — if user asks to buy BNB on OP Mainnet, inform them it may not be available as an ERC20 on this chain). **EXCEPTION: For send_nft, if you don't know the NFT contract address, leave it as empty string "" and provide nft_name instead. NEVER fabricate NFT addresses.**
297
297
  6. **IMPORTANT**: ALWAYS provide accurate decimals for each token. This is CRITICAL for accurate transaction amounts.
298
298
  7. **IMPORTANT**: ALWAYS provide accurate token_symbol for each token. Even if the user only provides a contract address without naming the token, you MUST identify the token from the address and fill in token_symbol and decimals. For example: if user provides "0x4200000000000000000000000000000000000006" on OP/Base, you know it is WETH with decimals 18 — fill in token_symbol:"WETH" and decimals:"18". You have comprehensive knowledge of well-known token contract addresses — use it to populate all fields.
299
299
  8. For amounts, use the exact number the user mentioned (don't convert units). If user says "max", "all", or "everything", set amount to "max". If user says "X%" (e.g., "send 50% of my USDC", "swap 25% of my ETH"), set amount to "50%" or "25%" — the literal percentage string. The app will resolve these to the actual balance values.
300
- 9. For native token sends, use "send_native" ONLY when the user wants to send **${s}** — the ACTUAL native token of the current chain (chainId: ${o}). If the user says "send ETH" but the native token on this chain is not ETH (e.g., Polygon where native is MATIC), treat ETH as an ERC20 token and use "send_token" with the correct ETH/WETH contract address on this chain. NEVER use send_native for a token symbol that does not match ${s}.
300
+ 9. For native token sends, use "send_native" ONLY when the user wants to send **${o}** — the ACTUAL native token of the current chain (chainId: ${s}). If the user says "send ETH" but the native token on this chain is not ETH (e.g., Polygon where native is MATIC), treat ETH as an ERC20 token and use "send_token" with the correct ETH/WETH contract address on this chain. NEVER use send_native for a token symbol that does not match ${o}.
301
301
  10. **CRITICAL - LANGUAGE**: You MUST detect the language the user is writing in and respond ONLY in that exact same language. English user → English response. Vietnamese user → Vietnamese response. Do NOT default to Chinese or any other language under any circumstances.
302
302
  11. ALWAYS respond with raw JSON only, never wrap in \`\`\`json code blocks
303
303
  12. For swap_token: token_in for native tokens must be "native". ALWAYS provide token_in_symbol, token_out_symbol, token_in_decimals, and token_out_decimals.
@@ -306,18 +306,18 @@ You have comprehensive, precise knowledge of token contract addresses on ALL maj
306
306
  15. ONLY trigger wallet actions (send_native, send_token, swap_token, buy_token, approve_token, wrap_native, unwrap_native, send_nft) when the user EXPLICITLY requests a crypto/wallet operation. Do NOT misinterpret general conversation as wallet actions.
307
307
  16. When your "chat" response mentions, lists, or discusses specific tokens (e.g., trending tokens, token details, recommendations, price info), you MUST include "token_mentions" array so the app can show Buy buttons for each token. Always include token_mentions as an array (empty [] if no tokens mentioned).
308
308
  17. **CRITICAL - ONE RESPONSE RULE**: When user requests a wallet operation (swap, send, buy, approve, wrap, unwrap, send NFT), return ONLY ONE JSON response with that action type — even if parameters are incomplete. Leave missing parameters as empty string "". DO NOT return multiple responses. DO NOT return a "chat" action first and then the wallet action. DO NOT return a "chat" action just because some fields are missing — that is WRONG. Put your explanation or request for more info in the "message" field of the wallet action. Example: User says "send WETH" → MUST return {"action":"send_token","message":"Please provide the recipient address and amount.","parameters":{"contract_address":"<WETH address>","token_symbol":"WETH","to_address":"","amount":"","decimals":"18"}}. Example: User says "swap 0.01 DAI to USDC" → Return ONLY {"action":"swap_token","message":"Swapping 0.01 DAI to USDC...","parameters":{...}}.
309
- 18. **CRITICAL - TOKEN CONTRACT ADDRESSES**: You MUST provide the CORRECT and ACCURATE contract address for each token on the CURRENT chain (chainId: ${o}). You have deep knowledge of token contract addresses across all major chains (Ethereum, Optimism, Arbitrum, Base, Polygon, BSC, etc.). ALWAYS verify you are using the correct address for the current chainId. DO NOT use addresses from other chains. For common tokens like USDC, USDT, DAI, WETH, each chain has different contract addresses - you MUST use the correct one for chainId ${o}.
309
+ 18. **CRITICAL - TOKEN CONTRACT ADDRESSES**: You MUST provide the CORRECT and ACCURATE contract address for each token on the CURRENT chain (chainId: ${s}). You have deep knowledge of token contract addresses across all major chains (Ethereum, Optimism, Arbitrum, Base, Polygon, BSC, etc.). ALWAYS verify you are using the correct address for the current chainId. DO NOT use addresses from other chains. For common tokens like USDC, USDT, DAI, WETH, each chain has different contract addresses - you MUST use the correct one for chainId ${s}.
310
310
  19. **SUGGESTED ACTIONS**: When your message contains follow-up questions or offers the user choices (e.g., "Would you like me to...", "I can also...", "Do you want..."), you MUST include "suggested_actions" array with button options. This makes the conversation interactive and user-friendly. If your message does NOT ask any question or offer any choice, leave suggested_actions as empty array [].
311
311
 
312
312
  ## EXAMPLES:
313
313
 
314
- User: "send 0.5 ${s} to 0x1234...5678" (on the current chain where native = ${s})
314
+ User: "send 0.5 ${o} to 0x1234...5678" (on the current chain where native = ${o})
315
315
  Response: {"action":"send_native","message":"<friendly explanation>","parameters":{"to_address":"0x1234...5678","amount":"0.5"}}
316
316
 
317
- User: "send all my ${s} to 0x1234...5678" or "send max ${s} to 0x1234..."
317
+ User: "send all my ${o} to 0x1234...5678" or "send max ${o} to 0x1234..."
318
318
  Response: {"action":"send_native","message":"<friendly explanation>","parameters":{"to_address":"0x1234...5678","amount":"max"}}
319
319
 
320
- User: "send 50% of my ${s} to 0x1234..."
320
+ User: "send 50% of my ${o} to 0x1234..."
321
321
  Response: {"action":"send_native","message":"<friendly explanation>","parameters":{"to_address":"0x1234...5678","amount":"50%"}}
322
322
 
323
323
  User: "send 0.5 ETH to 0x1234...5678" (on Polygon where native = MATIC, so ETH is ERC20)
@@ -336,13 +336,13 @@ User: "send 0x4200000000000000000000000000000000000006 to 0xABC..."
336
336
  Response: {"action":"send_token","message":"<friendly explanation>","parameters":{"contract_address":"<actual WETH address on current chain>","token_symbol":"WETH","to_address":"0xABC...","amount":"","decimals":"18"}}
337
337
 
338
338
  User: "swap 1 ETH to USDC"
339
- Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${s}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"1"}}
339
+ Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${o}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"1"}}
340
340
 
341
341
  User: "swap all my ETH to USDC" or "swap max ETH to USDC"
342
- Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${s}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"max"}}
342
+ Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${o}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"max"}}
343
343
 
344
344
  User: "swap 75% of my ETH to USDC"
345
- Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${s}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"75%"}}
345
+ Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${o}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"75%"}}
346
346
 
347
347
  User: "swap USDT to DAI"
348
348
  Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"<actual USDT address on current chain>","token_in_symbol":"USDT","token_in_decimals":"6","token_out":"<actual DAI address on current chain>","token_out_symbol":"DAI","token_out_decimals":"18","amount":""}}
@@ -397,11 +397,11 @@ Response: {"action":"view_nfts","message":"Let me show you your NFT collection!"
397
397
 
398
398
  [With conversation history where user previously swapped ETH to USDC]
399
399
  User: "do it again but with 2 ETH"
400
- Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${s}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"2"}}
400
+ Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${o}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"2"}}
401
401
 
402
402
  User: "swap token" or "I want to swap" or "đổi token" (no specific tokens mentioned)
403
- Response: {"action":"swap_token","message":"<friendly explanation, e.g. Which token would you like to swap?>","parameters":{"token_in":"","token_in_symbol":"","token_in_decimals":"","token_out":"","token_out_symbol":"","token_out_decimals":"","amount":""}}`}const Es={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",10:"0x4200000000000000000000000000000000000006",56:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",137:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},vn=[{name:"transfer",type:"function",stateMutability:"nonpayable",inputs:[{name:"to",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"approve",type:"function",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"allowance",type:"function",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]}],Ss=[{name:"deposit",type:"function",stateMutability:"payable",inputs:[],outputs:[]},{name:"withdraw",type:"function",stateMutability:"nonpayable",inputs:[{name:"wad",type:"uint256"}],outputs:[]}],$i=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"}],outputs:[]}],ec=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function sn(e,t){return t||ct[e]?.rpcUrls?.default?.http?.[0]}function tc(e){const{action:t,parameters:n,fromAddress:o,chainId:s}=e;switch(t){case"send_native":return nc(n,o,s);case"send_token":return oc(n,o,s);case"approve_token":return sc(n,o,s);case"wrap_native":return ac(n,o,s);case"unwrap_native":return rc(n,o,s);case"send_nft":return cc(n,o,s);default:throw new Error(`Action "${t}" does not produce a transaction`)}}function nc(e,t,n){const{to_address:o,amount:s}=e;if(!o)throw new Error("Recipient address is required");if(!s)throw new Error("Amount is required");const a=mt(s,18).toString();return{from:t,to:o,data:"0x",value:a,chainId:n,description:`Send ${s} native token to ${o}`}}function oc(e,t,n){const{contract_address:o,to_address:s,amount:a,decimals:r,token_symbol:i}=e;if(!o)throw new Error("Token contract address is required");if(!s)throw new Error("Recipient address is required");if(!a)throw new Error("Amount is required");const l=parseInt(r)||18,k=mt(a,l),D=vt({abi:vn,functionName:"transfer",args:[s,k]});return{from:t,to:o,data:D,value:"0",chainId:n,description:`Send ${a} ${i||"tokens"} to ${s}`}}function sc(e,t,n){const{contract_address:o,spender_address:s,amount:a,token_symbol:r}=e;if(!o)throw new Error("Token contract address is required");if(!s)throw new Error("Spender address is required");const i=a&&a?.trim()!==""?mt(a,18):Wt,l=vt({abi:vn,functionName:"approve",args:[s,i]});return{from:t,to:o,data:l,value:"0",chainId:n,description:`Approve ${a||"unlimited"} ${r||"tokens"} for ${s}`}}function ac(e,t,n){const{amount:o}=e;if(!o)throw new Error("Amount is required");const s=Es[n];if(!s)throw new Error(`WETH not supported on chain ${n}`);const a=mt(o,18).toString(),r=vt({abi:Ss,functionName:"deposit"});return{from:t,to:s,data:r,value:a,chainId:n,description:`Wrap ${o} native token`}}function rc(e,t,n){const{amount:o}=e;if(!o)throw new Error("Amount is required");const s=Es[n];if(!s)throw new Error(`WETH not supported on chain ${n}`);const a=mt(o,18),r=vt({abi:Ss,functionName:"withdraw",args:[a]});return{from:t,to:s,data:r,value:"0",chainId:n,description:`Unwrap ${o} WETH`}}function ic(e){return["send_native","send_token","approve_token","wrap_native","unwrap_native","send_nft"].includes(e)}async function fo(e){const{transactionHash:t,chainId:n,pollingInterval:o=3e3,timeout:s=12e4,rpcUrl:a}=e,r=sn(n,a);if(!r)throw new Error(`No RPC endpoint for chain ${n}`);const i=Date.now();for(;Date.now()-i<s;){try{const k=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getTransactionReceipt",params:[t]})})).json();if(k.result){const D=k.result;return{status:D.status==="0x1"?"success":"fail",blockNumber:D.blockNumber,gasUsed:D.gasUsed,effectiveGasPrice:D.effectiveGasPrice}}}catch(l){console.warn("eth_getTransactionReceipt poll error:",l)}await new Promise(l=>setTimeout(l,o))}throw new Error(`Transaction ${t} was not mined within ${s/1e3}s`)}async function po(e){const{tokenAddress:t,ownerAddress:n,spenderAddress:o,chainId:s,rpcUrl:a}=e,r=sn(s,a);if(!r)return console.warn(`No RPC endpoint for chain ${s}, assuming no allowance`),BigInt(0);try{const i=vt({abi:vn,functionName:"allowance",args:[n,o]}),k=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[{to:t,data:i},"latest"]})})).json();return k.result&&k.result!=="0x"?BigInt(k.result):BigInt(0)}catch(i){return console.warn("checkAllowance failed:",i),BigInt(0)}}function Tn(e){const{tokenAddress:t,spenderAddress:n,fromAddress:o,chainId:s,tokenSymbol:a}=e,r=vt({abi:vn,functionName:"approve",args:[n,Wt]});return{from:o,to:t,data:r,value:"0",chainId:s,description:`Approve ${a||"token"} for swap`}}function cc(e,t,n){const{contract_address:o,token_id:s,to_address:a,token_standard:r,amount:i,nft_name:l}=e;if(!o)throw new Error("NFT contract address is required");if(!s)throw new Error("Token ID is required");if(!a)throw new Error("Recipient address is required");const k=(r||"ERC721").toUpperCase(),D=BigInt(s);let Y,g;if(k==="ERC1155"){const A=BigInt(i||"1");Y=vt({abi:ec,functionName:"safeTransferFrom",args:[t,a,D,A,"0x"]}),g=`Send ${A>1n?A.toString()+"x ":""}${l||"NFT"} (ERC1155 #${s}) to ${a}`}else Y=vt({abi:$i,functionName:"safeTransferFrom",args:[t,a,D]}),g=`Send ${l||"NFT"} (ERC721 #${s}) to ${a}`;return{from:t,to:o,data:Y,value:"0",chainId:n,description:g}}async function Cn(e){const{address:t,chainId:n,rpcUrl:o}=e,s=sn(n,o);if(!s)return console.warn(`No RPC endpoint for chain ${n}`),new ie(0);try{const r=await(await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getBalance",params:[t,"latest"]})})).json();return r.result&&r.result!=="0x"?new ie(BigInt(r.result).toString()):new ie(0)}catch(a){return console.warn("getNativeBalance failed:",a),new ie(0)}}async function an(e){const{from:t,to:n,data:o,value:s,chainId:a,rpcUrl:r}=e,i=sn(a,r);if(!i)return console.warn(`No RPC endpoint for chain ${a}`),new ie(0);try{const[l,k]=await Promise.all([fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_estimateGas",params:[{from:t,to:n,data:o,...s&&s!=="0"?{value:s}:{}}]})}),fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:2,method:"eth_gasPrice",params:[]})})]),[D,Y]=await Promise.all([l.json(),k.json()]),g=D.result?new ie(BigInt(D.result).toString()):new ie(0),A=Y.result?new ie(BigInt(Y.result).toString()):new ie(0);return g.times(A).times(1.1)}catch(l){return console.warn("estimateTransactionFee failed:",l),new ie(0)}}async function mo(e){const{chainId:t,rpcUrl:n}=e,o=sn(t,n);if(!o)return console.warn(`No RPC endpoint for chain ${t}`),new ie(0);try{const a=await(await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_gasPrice",params:[]})})).json();return a.result&&a.result!=="0x"?new ie(BigInt(a.result).toString()):new ie(0)}catch(s){return console.warn("getGasPrice failed:",s),new ie(0)}}var se={},rn={exports:{}},lc=rn.exports,xs;function dc(){return xs||(xs=1,(function(e,t){(function(n,o){var s="1.0.41",a="",r="?",i="function",l="undefined",k="object",D="string",Y="major",g="model",A="name",y="type",T="vendor",B="version",ve="architecture",N="console",W="mobile",J="tablet",he="smarttv",ge="wearable",xe="embedded",c=500,d="Amazon",p="Apple",E="ASUS",u="BlackBerry",w="Browser",S="Chrome",h="Edge",b="Firefox",x="Google",I="Honor",F="Huawei",Q="Lenovo",ae="LG",ue="Microsoft",Ce="Motorola",Te="Nvidia",q="OnePlus",Ae="Opera",Ne="OPPO",Ye="Samsung",Xe="Sharp",Ke="Sony",We="Xiaomi",$e="Zebra",Fe="Facebook",Pe="Chromium OS",Ee="Mac OS",Pt=" Browser",Dt=function(U,v){var O={};for(var ee in U)v[ee]&&v[ee].length%2===0?O[ee]=v[ee].concat(U[ee]):O[ee]=U[ee];return O},gt=function(U){for(var v={},O=0;O<U.length;O++)v[U[O].toUpperCase()]=U[O];return v},wt=function(U,v){return typeof U===D?lt(v).indexOf(lt(U))!==-1:!1},lt=function(U){return U.toLowerCase()},R=function(U){return typeof U===D?U.replace(/[^\d\.]/g,a).split(".")[0]:o},X=function(U,v){if(typeof U===D)return U=U.replace(/^\s\s*/,a),typeof v===l?U:U.substring(0,c)},G=function(U,v){for(var O=0,ee,ne,fe,ce,M,j;O<v.length&&!M;){var oe=v[O],H=v[O+1];for(ee=ne=0;ee<oe.length&&!M&&oe[ee];)if(M=oe[ee++].exec(U),M)for(fe=0;fe<H.length;fe++)j=M[++ne],ce=H[fe],typeof ce===k&&ce.length>0?ce.length===2?typeof ce[1]==i?this[ce[0]]=ce[1].call(this,j):this[ce[0]]=ce[1]:ce.length===3?typeof ce[1]===i&&!(ce[1].exec&&ce[1].test)?this[ce[0]]=j?ce[1].call(this,j,ce[2]):o:this[ce[0]]=j?j.replace(ce[1],ce[2]):o:ce.length===4&&(this[ce[0]]=j?ce[3].call(this,j.replace(ce[1],ce[2])):o):this[ce]=j||o;O+=2}},Z=function(U,v){for(var O in v)if(typeof v[O]===k&&v[O].length>0){for(var ee=0;ee<v[O].length;ee++)if(wt(v[O][ee],U))return O===r?o:O}else if(wt(v[O],U))return O===r?o:O;return v.hasOwnProperty("*")?v["*"]:U},_={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},K={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},z={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[B,[A,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[B,[A,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[A,B],[/opios[\/ ]+([\w\.]+)/i],[B,[A,Ae+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[B,[A,Ae+" GX"]],[/\bopr\/([\w\.]+)/i],[B,[A,Ae]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[B,[A,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[B,[A,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[A,B],[/quark(?:pc)?\/([-\w\.]+)/i],[B,[A,"Quark"]],[/\bddg\/([\w\.]+)/i],[B,[A,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[B,[A,"UC"+w]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[B,[A,"WeChat"]],[/konqueror\/([\w\.]+)/i],[B,[A,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[B,[A,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[B,[A,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[B,[A,"Smart Lenovo "+w]],[/(avast|avg)\/([\w\.]+)/i],[[A,/(.+)/,"$1 Secure "+w],B],[/\bfocus\/([\w\.]+)/i],[B,[A,b+" Focus"]],[/\bopt\/([\w\.]+)/i],[B,[A,Ae+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[B,[A,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[B,[A,"Dolphin"]],[/coast\/([\w\.]+)/i],[B,[A,Ae+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[B,[A,"MIUI"+Pt]],[/fxios\/([\w\.-]+)/i],[B,[A,b]],[/\bqihoobrowser\/?([\w\.]*)/i],[B,[A,"360"]],[/\b(qq)\/([\w\.]+)/i],[[A,/(.+)/,"$1Browser"],B],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[A,/(.+)/,"$1"+Pt],B],[/samsungbrowser\/([\w\.]+)/i],[B,[A,Ye+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[B,[A,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[A,"Sogou Mobile"],B],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[A,B],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[A],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[B,A],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[A,Fe],B],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[A,B],[/\bgsa\/([\w\.]+) .*safari\//i],[B,[A,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[B,[A,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[B,[A,S+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[A,S+" WebView"],B],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[B,[A,"Android "+w]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[A,B],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[B,[A,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[B,A],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[A,[B,Z,_]],[/(webkit|khtml)\/([\w\.]+)/i],[A,B],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[A,"Netscape"],B],[/(wolvic|librewolf)\/([\w\.]+)/i],[A,B],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[B,[A,b+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[A,[B,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[A,[B,/master.|lts./,""]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[ve,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[ve,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[ve,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[ve,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[ve,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[ve,/ower/,a,lt]],[/ sun4\w[;\)]/i],[[ve,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[ve,lt]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[g,[T,Ye],[y,J]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[g,[T,Ye],[y,W]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[g,[T,p],[y,W]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[g,[T,p],[y,J]],[/(macintosh);/i],[g,[T,p]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[g,[T,Xe],[y,W]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[g,[T,I],[y,J]],[/honor([-\w ]+)[;\)]/i],[g,[T,I],[y,W]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[g,[T,F],[y,J]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[g,[T,F],[y,W]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[g,/_/g," "],[T,We],[y,J]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[g,/_/g," "],[T,We],[y,W]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[g,[T,Ne],[y,W]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[g,[T,Z,{OnePlus:["304","403","203"],"*":Ne}],[y,J]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[g,[T,"Vivo"],[y,W]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[g,[T,"Realme"],[y,W]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[g,[T,Ce],[y,W]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[g,[T,Ce],[y,J]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[g,[T,ae],[y,J]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[g,[T,ae],[y,W]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[g,[T,Q],[y,J]],[/(nokia) (t[12][01])/i],[T,g,[y,J]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[g,/_/g," "],[y,W],[T,"Nokia"]],[/(pixel (c|tablet))\b/i],[g,[T,x],[y,J]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[g,[T,x],[y,W]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[g,[T,Ke],[y,W]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[g,"Xperia Tablet"],[T,Ke],[y,J]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[g,[T,q],[y,W]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[g,[T,d],[y,J]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[g,/(.+)/g,"Fire Phone $1"],[T,d],[y,W]],[/(playbook);[-\w\),; ]+(rim)/i],[g,T,[y,J]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[g,[T,u],[y,W]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[g,[T,E],[y,J]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[g,[T,E],[y,W]],[/(nexus 9)/i],[g,[T,"HTC"],[y,J]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[T,[g,/_/g," "],[y,W]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[g,[T,"TCL"],[y,J]],[/(itel) ((\w+))/i],[[T,lt],g,[y,Z,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[g,[T,"Acer"],[y,J]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[g,[T,"Meizu"],[y,W]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[g,[T,"Ulefone"],[y,W]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[g,[T,"Energizer"],[y,W]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[g,[T,"Cat"],[y,W]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[g,[T,"Smartfren"],[y,W]],[/droid.+; (a(?:015|06[35]|142p?))/i],[g,[T,"Nothing"],[y,W]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[g,[T,"Archos"],[y,J]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[g,[T,"Archos"],[y,W]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[T,g,[y,J]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (hmd|imo) ([\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i,/(oppo) ?([\w ]+) bui/i],[T,g,[y,W]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[T,g,[y,J]],[/(surface duo)/i],[g,[T,ue],[y,J]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[g,[T,"Fairphone"],[y,W]],[/(u304aa)/i],[g,[T,"AT&T"],[y,W]],[/\bsie-(\w*)/i],[g,[T,"Siemens"],[y,W]],[/\b(rct\w+) b/i],[g,[T,"RCA"],[y,J]],[/\b(venue[\d ]{2,7}) b/i],[g,[T,"Dell"],[y,J]],[/\b(q(?:mv|ta)\w+) b/i],[g,[T,"Verizon"],[y,J]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[g,[T,"Barnes & Noble"],[y,J]],[/\b(tm\d{3}\w+) b/i],[g,[T,"NuVision"],[y,J]],[/\b(k88) b/i],[g,[T,"ZTE"],[y,J]],[/\b(nx\d{3}j) b/i],[g,[T,"ZTE"],[y,W]],[/\b(gen\d{3}) b.+49h/i],[g,[T,"Swiss"],[y,W]],[/\b(zur\d{3}) b/i],[g,[T,"Swiss"],[y,J]],[/\b((zeki)?tb.*\b) b/i],[g,[T,"Zeki"],[y,J]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[T,"Dragon Touch"],g,[y,J]],[/\b(ns-?\w{0,9}) b/i],[g,[T,"Insignia"],[y,J]],[/\b((nxa|next)-?\w{0,9}) b/i],[g,[T,"NextBook"],[y,J]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[T,"Voice"],g,[y,W]],[/\b(lvtel\-)?(v1[12]) b/i],[[T,"LvTel"],g,[y,W]],[/\b(ph-1) /i],[g,[T,"Essential"],[y,W]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[g,[T,"Envizen"],[y,J]],[/\b(trio[-\w\. ]+) b/i],[g,[T,"MachSpeed"],[y,J]],[/\btu_(1491) b/i],[g,[T,"Rotor"],[y,J]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[g,[T,Te],[y,J]],[/(sprint) (\w+)/i],[T,g,[y,W]],[/(kin\.[onetw]{3})/i],[[g,/\./g," "],[T,ue],[y,W]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[g,[T,$e],[y,J]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[g,[T,$e],[y,W]],[/smart-tv.+(samsung)/i],[T,[y,he]],[/hbbtv.+maple;(\d+)/i],[[g,/^/,"SmartTV"],[T,Ye],[y,he]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[T,ae],[y,he]],[/(apple) ?tv/i],[T,[g,p+" TV"],[y,he]],[/crkey/i],[[g,S+"cast"],[T,x],[y,he]],[/droid.+aft(\w+)( bui|\))/i],[g,[T,d],[y,he]],[/(shield \w+ tv)/i],[g,[T,Te],[y,he]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[g,[T,Xe],[y,he]],[/(bravia[\w ]+)( bui|\))/i],[g,[T,Ke],[y,he]],[/(mi(tv|box)-?\w+) bui/i],[g,[T,We],[y,he]],[/Hbbtv.*(technisat) (.*);/i],[T,g,[y,he]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[T,X],[g,X],[y,he]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[g,[y,he]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[y,he]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[T,g,[y,N]],[/droid.+; (shield)( bui|\))/i],[g,[T,Te],[y,N]],[/(playstation \w+)/i],[g,[T,Ke],[y,N]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[g,[T,ue],[y,N]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[g,[T,Ye],[y,ge]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[T,g,[y,ge]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[g,[T,Ne],[y,ge]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[g,[T,p],[y,ge]],[/(opwwe\d{3})/i],[g,[T,q],[y,ge]],[/(moto 360)/i],[g,[T,Ce],[y,ge]],[/(smartwatch 3)/i],[g,[T,Ke],[y,ge]],[/(g watch r)/i],[g,[T,ae],[y,ge]],[/droid.+; (wt63?0{2,3})\)/i],[g,[T,$e],[y,ge]],[/droid.+; (glass) \d/i],[g,[T,x],[y,ge]],[/(pico) (4|neo3(?: link|pro)?)/i],[T,g,[y,ge]],[/; (quest( \d| pro)?)/i],[g,[T,Fe],[y,ge]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[T,[y,xe]],[/(aeobc)\b/i],[g,[T,d],[y,xe]],[/(homepod).+mac os/i],[g,[T,p],[y,xe]],[/windows iot/i],[[y,xe]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[g,[y,W]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[g,[y,J]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[y,J]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[y,W]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[g,[T,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[B,[A,h+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[A,B],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[B,[A,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[A,B],[/ladybird\//i],[[A,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[B,A]],os:[[/microsoft (windows) (vista|xp)/i],[A,B],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[A,[B,Z,K]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[B,Z,K],[A,"Windows"]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[B,/_/g,"."],[A,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[A,Ee],[B,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[B,A],[/(ubuntu) ([\w\.]+) like android/i],[[A,/(.+)/,"$1 Touch"],B],[/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i],[A,B],[/\(bb(10);/i],[B,[A,u]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[B,[A,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[B,[A,b+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[B,[A,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[B,[A,"watchOS"]],[/crkey\/([\d\.]+)/i],[B,[A,S+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[A,Pe],B],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[A,B],[/(sunos) ?([\w\.\d]*)/i],[[A,"Solaris"],B],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[A,B]]},$=function(U,v){if(typeof U===k&&(v=U,U=o),!(this instanceof $))return new $(U,v).getResult();var O=typeof n!==l&&n.navigator?n.navigator:o,ee=U||(O&&O.userAgent?O.userAgent:a),ne=O&&O.userAgentData?O.userAgentData:o,fe=v?Dt(z,v):z,ce=O&&O.userAgent==ee;return this.getBrowser=function(){var M={};return M[A]=o,M[B]=o,G.call(M,ee,fe.browser),M[Y]=R(M[B]),ce&&O&&O.brave&&typeof O.brave.isBrave==i&&(M[A]="Brave"),M},this.getCPU=function(){var M={};return M[ve]=o,G.call(M,ee,fe.cpu),M},this.getDevice=function(){var M={};return M[T]=o,M[g]=o,M[y]=o,G.call(M,ee,fe.device),ce&&!M[y]&&ne&&ne.mobile&&(M[y]=W),ce&&M[g]=="Macintosh"&&O&&typeof O.standalone!==l&&O.maxTouchPoints&&O.maxTouchPoints>2&&(M[g]="iPad",M[y]=J),M},this.getEngine=function(){var M={};return M[A]=o,M[B]=o,G.call(M,ee,fe.engine),M},this.getOS=function(){var M={};return M[A]=o,M[B]=o,G.call(M,ee,fe.os),ce&&!M[A]&&ne&&ne.platform&&ne.platform!="Unknown"&&(M[A]=ne.platform.replace(/chrome os/i,Pe).replace(/macos/i,Ee)),M},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return ee},this.setUA=function(M){return ee=typeof M===D&&M.length>c?X(M,c):M,this},this.setUA(ee),this};$.VERSION=s,$.BROWSER=gt([A,B,Y]),$.CPU=gt([ve]),$.DEVICE=gt([g,T,y,N,W,he,J,ge,xe]),$.ENGINE=$.OS=gt([A,B]),e.exports&&(t=e.exports=$),t.UAParser=$;var pe=typeof n!==l&&(n.jQuery||n.Zepto);if(pe&&!pe.ua){var re=new $;pe.ua=re.getResult(),pe.ua.get=function(){return re.getUA()},pe.ua.set=function(U){re.setUA(U);var v=re.getResult();for(var O in v)pe.ua[O]=v[O]}}})(typeof window=="object"?window:lc)})(rn,rn.exports)),rn.exports}var Is;function uc(){if(Is)return se;Is=1,Object.defineProperty(se,"__esModule",{value:!0});function e(C){return C&&typeof C=="object"&&"default"in C?C.default:C}var t=te,n=e(t),o=dc(),s=new o,a=s.getBrowser(),r=s.getCPU(),i=s.getDevice(),l=s.getEngine(),k=s.getOS(),D=s.getUA(),Y=function(f){return s.setUA(f)},g=function(f){if(!f){console.error("No userAgent string was provided");return}var m=new o(f);return{UA:m,browser:m.getBrowser(),cpu:m.getCPU(),device:m.getDevice(),engine:m.getEngine(),os:m.getOS(),ua:m.getUA(),setUserAgent:function(V){return m.setUA(V)}}},A=Object.freeze({ClientUAInstance:s,browser:a,cpu:r,device:i,engine:l,os:k,ua:D,setUa:Y,parseUserAgent:g});function y(C,f){var m=Object.keys(C);if(Object.getOwnPropertySymbols){var L=Object.getOwnPropertySymbols(C);f&&(L=L.filter(function(V){return Object.getOwnPropertyDescriptor(C,V).enumerable})),m.push.apply(m,L)}return m}function T(C){for(var f=1;f<arguments.length;f++){var m=arguments[f]!=null?arguments[f]:{};f%2?y(Object(m),!0).forEach(function(L){J(C,L,m[L])}):Object.getOwnPropertyDescriptors?Object.defineProperties(C,Object.getOwnPropertyDescriptors(m)):y(Object(m)).forEach(function(L){Object.defineProperty(C,L,Object.getOwnPropertyDescriptor(m,L))})}return C}function B(C){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?B=function(f){return typeof f}:B=function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},B(C)}function ve(C,f){if(!(C instanceof f))throw new TypeError("Cannot call a class as a function")}function N(C,f){for(var m=0;m<f.length;m++){var L=f[m];L.enumerable=L.enumerable||!1,L.configurable=!0,"value"in L&&(L.writable=!0),Object.defineProperty(C,L.key,L)}}function W(C,f,m){return f&&N(C.prototype,f),C}function J(C,f,m){return f in C?Object.defineProperty(C,f,{value:m,enumerable:!0,configurable:!0,writable:!0}):C[f]=m,C}function he(){return he=Object.assign||function(C){for(var f=1;f<arguments.length;f++){var m=arguments[f];for(var L in m)Object.prototype.hasOwnProperty.call(m,L)&&(C[L]=m[L])}return C},he.apply(this,arguments)}function ge(C,f){if(typeof f!="function"&&f!==null)throw new TypeError("Super expression must either be null or a function");C.prototype=Object.create(f&&f.prototype,{constructor:{value:C,writable:!0,configurable:!0}}),f&&c(C,f)}function xe(C){return xe=Object.setPrototypeOf?Object.getPrototypeOf:function(m){return m.__proto__||Object.getPrototypeOf(m)},xe(C)}function c(C,f){return c=Object.setPrototypeOf||function(L,V){return L.__proto__=V,L},c(C,f)}function d(C,f){if(C==null)return{};var m={},L=Object.keys(C),V,ke;for(ke=0;ke<L.length;ke++)V=L[ke],!(f.indexOf(V)>=0)&&(m[V]=C[V]);return m}function p(C,f){if(C==null)return{};var m=d(C,f),L,V;if(Object.getOwnPropertySymbols){var ke=Object.getOwnPropertySymbols(C);for(V=0;V<ke.length;V++)L=ke[V],!(f.indexOf(L)>=0)&&Object.prototype.propertyIsEnumerable.call(C,L)&&(m[L]=C[L])}return m}function E(C){if(C===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return C}function u(C,f){if(f&&(typeof f=="object"||typeof f=="function"))return f;if(f!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return E(C)}function w(C,f){return S(C)||h(C,f)||b(C,f)||I()}function S(C){if(Array.isArray(C))return C}function h(C,f){var m=C==null?null:typeof Symbol<"u"&&C[Symbol.iterator]||C["@@iterator"];if(m!=null){var L=[],V=!0,ke=!1,Re,Ze;try{for(m=m.call(C);!(V=(Re=m.next()).done)&&(L.push(Re.value),!(f&&L.length===f));V=!0);}catch(In){ke=!0,Ze=In}finally{try{!V&&m.return!=null&&m.return()}finally{if(ke)throw Ze}}return L}}function b(C,f){if(C){if(typeof C=="string")return x(C,f);var m=Object.prototype.toString.call(C).slice(8,-1);if(m==="Object"&&C.constructor&&(m=C.constructor.name),m==="Map"||m==="Set")return Array.from(C);if(m==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(m))return x(C,f)}}function x(C,f){(f==null||f>C.length)&&(f=C.length);for(var m=0,L=new Array(f);m<f;m++)L[m]=C[m];return L}function I(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
404
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var F={Mobile:"mobile",Tablet:"tablet",SmartTv:"smarttv",Console:"console",Wearable:"wearable",Embedded:"embedded",Browser:void 0},Q={Chrome:"Chrome",Firefox:"Firefox",Opera:"Opera",Yandex:"Yandex",Safari:"Safari",InternetExplorer:"Internet Explorer",Edge:"Edge",Chromium:"Chromium",Ie:"IE",MobileSafari:"Mobile Safari",EdgeChromium:"Edge Chromium",MIUI:"MIUI Browser",SamsungBrowser:"Samsung Browser"},ae={IOS:"iOS",Android:"Android",WindowsPhone:"Windows Phone",Windows:"Windows",MAC_OS:"Mac OS"},ue={isMobile:!1,isTablet:!1,isBrowser:!1,isSmartTV:!1,isConsole:!1,isWearable:!1},Ce=function(f){switch(f){case F.Mobile:return{isMobile:!0};case F.Tablet:return{isTablet:!0};case F.SmartTv:return{isSmartTV:!0};case F.Console:return{isConsole:!0};case F.Wearable:return{isWearable:!0};case F.Browser:return{isBrowser:!0};case F.Embedded:return{isEmbedded:!0};default:return ue}},Te=function(f){return Y(f)},q=function(f){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"none";return f||m},Ae=function(){return typeof window<"u"&&(window.navigator||navigator)?window.navigator||navigator:!1},Ne=function(f){var m=Ae();return m&&m.platform&&(m.platform.indexOf(f)!==-1||m.platform==="MacIntel"&&m.maxTouchPoints>1&&!window.MSStream)},Ye=function(f,m,L,V,ke){return{isBrowser:f,browserMajorVersion:q(m.major),browserFullVersion:q(m.version),browserName:q(m.name),engineName:q(L.name),engineVersion:q(L.version),osName:q(V.name),osVersion:q(V.version),userAgent:q(ke)}},Xe=function(f,m,L,V){return T({},f,{vendor:q(m.vendor),model:q(m.model),os:q(L.name),osVersion:q(L.version),ua:q(V)})},Ke=function(f,m,L,V){return{isSmartTV:f,engineName:q(m.name),engineVersion:q(m.version),osName:q(L.name),osVersion:q(L.version),userAgent:q(V)}},We=function(f,m,L,V){return{isConsole:f,engineName:q(m.name),engineVersion:q(m.version),osName:q(L.name),osVersion:q(L.version),userAgent:q(V)}},$e=function(f,m,L,V){return{isWearable:f,engineName:q(m.name),engineVersion:q(m.version),osName:q(L.name),osVersion:q(L.version),userAgent:q(V)}},Fe=function(f,m,L,V,ke){return{isEmbedded:f,vendor:q(m.vendor),model:q(m.model),engineName:q(L.name),engineVersion:q(L.version),osName:q(V.name),osVersion:q(V.version),userAgent:q(ke)}};function Pe(C){var f=C?g(C):A,m=f.device,L=f.browser,V=f.engine,ke=f.os,Re=f.ua,Ze=Ce(m.type),In=Ze.isBrowser,ul=Ze.isMobile,fl=Ze.isTablet,Ws=Ze.isSmartTV,Vs=Ze.isConsole,Gs=Ze.isWearable,Ys=Ze.isEmbedded;if(In)return Ye(In,L,V,ke,Re);if(Ws)return Ke(Ws,V,ke,Re);if(Vs)return We(Vs,V,ke,Re);if(ul||fl)return Xe(Ze,m,ke,Re);if(Gs)return $e(Gs,V,ke,Re);if(Ys)return Fe(Ys,m,V,ke,Re)}var Ee=function(f){var m=f.type;return m===F.Mobile},Pt=function(f){var m=f.type;return m===F.Tablet},Dt=function(f){var m=f.type;return m===F.Mobile||m===F.Tablet},gt=function(f){var m=f.type;return m===F.SmartTv},wt=function(f){var m=f.type;return m===F.Browser},lt=function(f){var m=f.type;return m===F.Wearable},R=function(f){var m=f.type;return m===F.Console},X=function(f){var m=f.type;return m===F.Embedded},G=function(f){var m=f.vendor;return q(m)},Z=function(f){var m=f.model;return q(m)},_=function(f){var m=f.type;return q(m,"browser")},K=function(f){var m=f.name;return m===ae.Android},z=function(f){var m=f.name;return m===ae.Windows},$=function(f){var m=f.name;return m===ae.MAC_OS},pe=function(f){var m=f.name;return m===ae.WindowsPhone},re=function(f){var m=f.name;return m===ae.IOS},U=function(f){var m=f.version;return q(m)},v=function(f){var m=f.name;return q(m)},O=function(f){var m=f.name;return m===Q.Chrome},ee=function(f){var m=f.name;return m===Q.Firefox},ne=function(f){var m=f.name;return m===Q.Chromium},fe=function(f){var m=f.name;return m===Q.Edge},ce=function(f){var m=f.name;return m===Q.Yandex},M=function(f){var m=f.name;return m===Q.Safari||m===Q.MobileSafari},j=function(f){var m=f.name;return m===Q.MobileSafari},oe=function(f){var m=f.name;return m===Q.Opera},H=function(f){var m=f.name;return m===Q.InternetExplorer||m===Q.Ie},be=function(f){var m=f.name;return m===Q.MIUI},we=function(f){var m=f.name;return m===Q.SamsungBrowser},le=function(f){var m=f.version;return q(m)},Se=function(f){var m=f.major;return q(m)},De=function(f){var m=f.name;return q(m)},Ie=function(f){var m=f.name;return q(m)},Oe=function(f){var m=f.version;return q(m)},et=function(){var f=Ae(),m=f&&f.userAgent&&f.userAgent.toLowerCase();return typeof m=="string"?/electron/.test(m):!1},ze=function(f){return typeof f=="string"&&f.indexOf("Edg/")!==-1},dt=function(){var f=Ae();return f&&(/iPad|iPhone|iPod/.test(f.platform)||f.platform==="MacIntel"&&f.maxTouchPoints>1)&&!window.MSStream},Je=function(){return Ne("iPad")},Ot=function(){return Ne("iPhone")},cn=function(){return Ne("iPod")},ln=function(f){return q(f)};function jt(C){var f=C||A,m=f.device,L=f.browser,V=f.os,ke=f.engine,Re=f.ua;return{isSmartTV:gt(m),isConsole:R(m),isWearable:lt(m),isEmbedded:X(m),isMobileSafari:j(L)||Je(),isChromium:ne(L),isMobile:Dt(m)||Je(),isMobileOnly:Ee(m),isTablet:Pt(m)||Je(),isBrowser:wt(m),isDesktop:wt(m),isAndroid:K(V),isWinPhone:pe(V),isIOS:re(V)||Je(),isChrome:O(L),isFirefox:ee(L),isSafari:M(L),isOpera:oe(L),isIE:H(L),osVersion:U(V),osName:v(V),fullBrowserVersion:le(L),browserVersion:Se(L),browserName:De(L),mobileVendor:G(m),mobileModel:Z(m),engineName:Ie(ke),engineVersion:Oe(ke),getUA:ln(Re),isEdge:fe(L)||ze(Re),isYandex:ce(L),deviceType:_(m),isIOS13:dt(),isIPad13:Je(),isIPhone13:Ot(),isIPod13:cn(),isElectron:et(),isEdgeChromium:ze(Re),isLegacyEdge:fe(L)&&!ze(Re),isWindows:z(V),isMacOs:$(V),isMIUI:be(L),isSamsungBrowser:we(L)}}var Ue=gt(i),En=R(i),Sn=lt(i),wc=X(i),bc=j(a)||Je(),yc=ne(a),xn=Dt(i)||Je(),Ps=Ee(i),Ds=Pt(i)||Je(),Os=wt(i),Ac=wt(i),Ls=K(k),Us=pe(k),Rs=re(k)||Je(),kc=O(a),vc=ee(a),Tc=M(a),Cc=oe(a),Ms=H(a),Ec=U(k),Sc=v(k),xc=le(a),Ic=Se(a),Nc=De(a),Bc=G(i),Fc=Z(i),Pc=Ie(l),Dc=Oe(l),Oc=ln(D),Lc=fe(a)||ze(D),Uc=ce(a),Rc=_(i),Mc=dt(),Hc=Je(),Wc=Ot(),Vc=cn(),Gc=et(),Yc=ze(D),zc=fe(a)&&!ze(D),Jc=z(k),jc=$(k),qc=be(a),Qc=we(a),Xc=function(f){if(!f||typeof f!="string"){console.error("No valid user agent string was provided");return}var m=g(f),L=m.device,V=m.browser,ke=m.os,Re=m.engine,Ze=m.ua;return jt({device:L,browser:V,os:ke,engine:Re,ua:Ze})},Kc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ls?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},Zc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Os?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},_c=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ms?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},$c=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Rs?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},el=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return xn?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},tl=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ds?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},nl=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Us?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},ol=function(f){var m=f.renderWithFragment,L=f.children;f.viewClassName,f.style;var V=p(f,["renderWithFragment","children","viewClassName","style"]);return Ps?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},sl=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ue?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},al=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return En?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},rl=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Sn?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},il=function(f){var m=f.renderWithFragment,L=f.children;f.viewClassName,f.style;var V=f.condition,ke=p(f,["renderWithFragment","children","viewClassName","style","condition"]);return V?m?n.createElement(t.Fragment,null,L):n.createElement("div",ke,L):null};function cl(C){return(function(f){ge(m,f);function m(L){var V;return ve(this,m),V=u(this,xe(m).call(this,L)),V.isEventListenerAdded=!1,V.handleOrientationChange=V.handleOrientationChange.bind(E(V)),V.onOrientationChange=V.onOrientationChange.bind(E(V)),V.onPageLoad=V.onPageLoad.bind(E(V)),V.state={isLandscape:!1,isPortrait:!1},V}return W(m,[{key:"handleOrientationChange",value:function(){this.isEventListenerAdded||(this.isEventListenerAdded=!0);var V=window.innerWidth>window.innerHeight?90:0;this.setState({isPortrait:V===0,isLandscape:V===90})}},{key:"onOrientationChange",value:function(){this.handleOrientationChange()}},{key:"onPageLoad",value:function(){this.handleOrientationChange()}},{key:"componentDidMount",value:function(){(typeof window>"u"?"undefined":B(window))!==void 0&&xn&&(this.isEventListenerAdded?window.removeEventListener("load",this.onPageLoad,!1):(this.handleOrientationChange(),window.addEventListener("load",this.onPageLoad,!1)),window.addEventListener("resize",this.onOrientationChange,!1))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.onOrientationChange,!1)}},{key:"render",value:function(){return n.createElement(C,he({},this.props,{isLandscape:this.state.isLandscape,isPortrait:this.state.isPortrait}))}}]),m})(n.Component)}function ll(){var C=t.useState(function(){var ke=window.innerWidth>window.innerHeight?90:0;return{isPortrait:ke===0,isLandscape:ke===90,orientation:ke===0?"portrait":"landscape"}}),f=w(C,2),m=f[0],L=f[1],V=t.useCallback(function(){var ke=window.innerWidth>window.innerHeight?90:0,Re={isPortrait:ke===0,isLandscape:ke===90,orientation:ke===0?"portrait":"landscape"};m.orientation!==Re.orientation&&L(Re)},[m.orientation]);return t.useEffect(function(){return(typeof window>"u"?"undefined":B(window))!==void 0&&xn&&(V(),window.addEventListener("load",V,!1),window.addEventListener("resize",V,!1)),function(){window.removeEventListener("resize",V,!1),window.removeEventListener("load",V,!1)}},[V]),m}function Hs(C){var f=C||window.navigator.userAgent;return g(f)}function dl(C){var f=C||window.navigator.userAgent,m=Hs(f),L=jt(m);return[L,m]}return se.AndroidView=Kc,se.BrowserTypes=Q,se.BrowserView=Zc,se.ConsoleView=al,se.CustomView=il,se.IEView=_c,se.IOSView=$c,se.MobileOnlyView=ol,se.MobileView=el,se.OsTypes=ae,se.SmartTVView=sl,se.TabletView=tl,se.WearableView=rl,se.WinPhoneView=nl,se.browserName=Nc,se.browserVersion=Ic,se.deviceDetect=Pe,se.deviceType=Rc,se.engineName=Pc,se.engineVersion=Dc,se.fullBrowserVersion=xc,se.getSelectorsByUserAgent=Xc,se.getUA=Oc,se.isAndroid=Ls,se.isBrowser=Os,se.isChrome=kc,se.isChromium=yc,se.isConsole=En,se.isDesktop=Ac,se.isEdge=Lc,se.isEdgeChromium=Yc,se.isElectron=Gc,se.isEmbedded=wc,se.isFirefox=vc,se.isIE=Ms,se.isIOS=Rs,se.isIOS13=Mc,se.isIPad13=Hc,se.isIPhone13=Wc,se.isIPod13=Vc,se.isLegacyEdge=zc,se.isMIUI=qc,se.isMacOs=jc,se.isMobile=xn,se.isMobileOnly=Ps,se.isMobileSafari=bc,se.isOpera=Cc,se.isSafari=Tc,se.isSamsungBrowser=Qc,se.isSmartTV=Ue,se.isTablet=Ds,se.isWearable=Sn,se.isWinPhone=Us,se.isWindows=Jc,se.isYandex=Uc,se.mobileModel=Fc,se.mobileVendor=Bc,se.osName=Sc,se.osVersion=Ec,se.parseUserAgent=g,se.setUserAgent=Te,se.useDeviceData=Hs,se.useDeviceSelectors=dl,se.useMobileOrientation=ll,se.withOrientationChange=cl,se}var Jt=uc();const fc=void 0,Ns=["AIzaSyCcjTkMquc7DNzqQYOXEFj7qoEypnCdUOs","AIzaSyDWJj9ufkN-39vkT6_qvnAu9s_3BECbdcM","AIzaSyAkSIDm0sT0uenqN6EgznNl7qGHSG3B22Y","AIzaSyCRFoHCgxndYwAELqLjxzzYaTBM_cZr0bU","AIzaSyBgvuw0AhP0eeCF3iw0LLsHHAXSfnBbbHY","AIzaSyAfMPuSqrl14vw1fYkhzC-D5CNf78nXjfU","AIzaSyC0EVYjl81EVo_RwKpDE6jhTbTK-cO1n4U","AIzaSyAmHgpfmkBJVM9dUUXQ81ZCJvTjbdbFP54","AIzaSyDD2tujUZ7FpgJ4-gn8BNzYkVSrrAc4nC8","AIzaSyAQkB8-XZj7IpnWnVWJRrFUontxaWcYts4","AIzaSyCuMsh9tdgwnXkA0VCfGEhOJ9m-PpMTLOI","AIzaSyAEyg3fu64RsyvCoJQPr1ljRxp2tH61mGE","AIzaSyB1lMSRtZGSMUHBblpz8KtNKrmWmmFIWbk","AIzaSyDuEnXlwTsmVVUF2oqcUED-X1SeVWEK0tI","AIzaSyA1urvuv3-QJBno3WdUTMgb_YC3S1Bfd8o","AIzaSyAHrEi0Lj8QskYDf_jJq6Ntgt0tEMT5dCM","AIzaSyDOJISQFLeWkJnu0uqjl82j_EkIbGzuwO0","AIzaSyAopV-1f7330jy9qpMzdIm0rrXEzxhFSHk","AIzaSyAnz8McdnnPR914ecmW1th-FjBD2Ru_W6Y","AIzaSyCxuS7oGGrzIWUZ-VizZdEIWFQRa3RR1XU"],Bs={model:"gemini-2.5-flash","model2.0":"gemini-2.5-flash",apiKey:fc,url:"https://generativelanguage.googleapis.com"};class pc extends zt{enableGoogleSearch=!0;indexApiKey=0;constructor(){super(Bs.url)}getApiKey(){let t="";const n=localStorage.getItem("index_api_key_gemini");return n&&(this.indexApiKey=Number(n),this.indexApiKey++),this.indexApiKey>=Ns.length&&(this.indexApiKey=0),t=Ns[this.indexApiKey],localStorage.setItem("index_api_key_gemini",this.indexApiKey.toString()),t}getUrl(t,n){return`/v1beta/models/${n||"gemini-2.5-flash"}:${t}`}async generateContent(t,n){try{const o=`
403
+ Response: {"action":"swap_token","message":"<friendly explanation, e.g. Which token would you like to swap?>","parameters":{"token_in":"","token_in_symbol":"","token_in_decimals":"","token_out":"","token_out_symbol":"","token_out_decimals":"","amount":""}}`}const vs={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",10:"0x4200000000000000000000000000000000000006",56:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",137:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},kn=[{name:"transfer",type:"function",stateMutability:"nonpayable",inputs:[{name:"to",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"approve",type:"function",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"allowance",type:"function",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]}],Ts=[{name:"deposit",type:"function",stateMutability:"payable",inputs:[],outputs:[]},{name:"withdraw",type:"function",stateMutability:"nonpayable",inputs:[{name:"wad",type:"uint256"}],outputs:[]}],ji=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"}],outputs:[]}],qi=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function on(e,t){return t||it[e]?.rpcUrls?.default?.http?.[0]}function Qi(e){const{action:t,parameters:n,fromAddress:s,chainId:o}=e;switch(t){case"send_native":return Xi(n,s,o);case"send_token":return Ki(n,s,o);case"approve_token":return Zi(n,s,o);case"wrap_native":return _i(n,s,o);case"unwrap_native":return $i(n,s,o);case"send_nft":return tc(n,s,o);default:throw new Error(`Action "${t}" does not produce a transaction`)}}function Xi(e,t,n){const{to_address:s,amount:o}=e;if(!s)throw new Error("Recipient address is required");if(!o)throw new Error("Amount is required");const a=pt(o,18).toString();return{from:t,to:s,data:"0x",value:a,chainId:n,description:`Send ${o} native token to ${s}`}}function Ki(e,t,n){const{contract_address:s,to_address:o,amount:a,decimals:r,token_symbol:i}=e;if(!s)throw new Error("Token contract address is required");if(!o)throw new Error("Recipient address is required");if(!a)throw new Error("Amount is required");const l=parseInt(r)||18,k=pt(a,l),O=kt({abi:kn,functionName:"transfer",args:[o,k]});return{from:t,to:s,data:O,value:"0",chainId:n,description:`Send ${a} ${i||"tokens"} to ${o}`}}function Zi(e,t,n){const{contract_address:s,spender_address:o,amount:a,token_symbol:r}=e;if(!s)throw new Error("Token contract address is required");if(!o)throw new Error("Spender address is required");const i=a&&a?.trim()!==""?pt(a,18):Ht,l=kt({abi:kn,functionName:"approve",args:[o,i]});return{from:t,to:s,data:l,value:"0",chainId:n,description:`Approve ${a||"unlimited"} ${r||"tokens"} for ${o}`}}function _i(e,t,n){const{amount:s}=e;if(!s)throw new Error("Amount is required");const o=vs[n];if(!o)throw new Error(`WETH not supported on chain ${n}`);const a=pt(s,18).toString(),r=kt({abi:Ts,functionName:"deposit"});return{from:t,to:o,data:r,value:a,chainId:n,description:`Wrap ${s} native token`}}function $i(e,t,n){const{amount:s}=e;if(!s)throw new Error("Amount is required");const o=vs[n];if(!o)throw new Error(`WETH not supported on chain ${n}`);const a=pt(s,18),r=kt({abi:Ts,functionName:"withdraw",args:[a]});return{from:t,to:o,data:r,value:"0",chainId:n,description:`Unwrap ${s} WETH`}}function ec(e){return["send_native","send_token","approve_token","wrap_native","unwrap_native","send_nft"].includes(e)}async function lo(e){const{transactionHash:t,chainId:n,pollingInterval:s=3e3,timeout:o=12e4,rpcUrl:a}=e,r=on(n,a);if(!r)throw new Error(`No RPC endpoint for chain ${n}`);const i=Date.now();for(;Date.now()-i<o;){try{const k=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getTransactionReceipt",params:[t]})})).json();if(k.result){const O=k.result;return{status:O.status==="0x1"?"success":"fail",blockNumber:O.blockNumber,gasUsed:O.gasUsed,effectiveGasPrice:O.effectiveGasPrice}}}catch(l){console.warn("eth_getTransactionReceipt poll error:",l)}await new Promise(l=>setTimeout(l,s))}throw new Error(`Transaction ${t} was not mined within ${o/1e3}s`)}async function uo(e){const{tokenAddress:t,ownerAddress:n,spenderAddress:s,chainId:o,rpcUrl:a}=e,r=on(o,a);if(!r)return console.warn(`No RPC endpoint for chain ${o}, assuming no allowance`),BigInt(0);try{const i=kt({abi:kn,functionName:"allowance",args:[n,s]}),k=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[{to:t,data:i},"latest"]})})).json();return k.result&&k.result!=="0x"?BigInt(k.result):BigInt(0)}catch(i){return console.warn("checkAllowance failed:",i),BigInt(0)}}function vn(e){const{tokenAddress:t,spenderAddress:n,fromAddress:s,chainId:o,tokenSymbol:a}=e,r=kt({abi:kn,functionName:"approve",args:[n,Ht]});return{from:s,to:t,data:r,value:"0",chainId:o,description:`Approve ${a||"token"} for swap`}}function tc(e,t,n){const{contract_address:s,token_id:o,to_address:a,token_standard:r,amount:i,nft_name:l}=e;if(!s)throw new Error("NFT contract address is required");if(!o)throw new Error("Token ID is required");if(!a)throw new Error("Recipient address is required");const k=(r||"ERC721").toUpperCase(),O=BigInt(o);let Y,g;if(k==="ERC1155"){const A=BigInt(i||"1");Y=kt({abi:qi,functionName:"safeTransferFrom",args:[t,a,O,A,"0x"]}),g=`Send ${A>1n?A.toString()+"x ":""}${l||"NFT"} (ERC1155 #${o}) to ${a}`}else Y=kt({abi:ji,functionName:"safeTransferFrom",args:[t,a,O]}),g=`Send ${l||"NFT"} (ERC721 #${o}) to ${a}`;return{from:t,to:s,data:Y,value:"0",chainId:n,description:g}}async function Tn(e){const{address:t,chainId:n,rpcUrl:s}=e,o=on(n,s);if(!o)return console.warn(`No RPC endpoint for chain ${n}`),new ie(0);try{const r=await(await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getBalance",params:[t,"latest"]})})).json();return r.result&&r.result!=="0x"?new ie(BigInt(r.result).toString()):new ie(0)}catch(a){return console.warn("getNativeBalance failed:",a),new ie(0)}}async function sn(e){const{from:t,to:n,data:s,value:o,chainId:a,rpcUrl:r}=e,i=on(a,r);if(!i)return console.warn(`No RPC endpoint for chain ${a}`),new ie(0);try{const[l,k]=await Promise.all([fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_estimateGas",params:[{from:t,to:n,data:s,...o&&o!=="0"?{value:o}:{}}]})}),fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:2,method:"eth_gasPrice",params:[]})})]),[O,Y]=await Promise.all([l.json(),k.json()]),g=O.result?new ie(BigInt(O.result).toString()):new ie(0),A=Y.result?new ie(BigInt(Y.result).toString()):new ie(0);return g.times(A).times(1.1)}catch(l){return console.warn("estimateTransactionFee failed:",l),new ie(0)}}async function fo(e){const{chainId:t,rpcUrl:n}=e,s=on(t,n);if(!s)return console.warn(`No RPC endpoint for chain ${t}`),new ie(0);try{const a=await(await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_gasPrice",params:[]})})).json();return a.result&&a.result!=="0x"?new ie(BigInt(a.result).toString()):new ie(0)}catch(o){return console.warn("getGasPrice failed:",o),new ie(0)}}var se={},an={exports:{}},nc=an.exports,Cs;function oc(){return Cs||(Cs=1,(function(e,t){(function(n,s){var o="1.0.41",a="",r="?",i="function",l="undefined",k="object",O="string",Y="major",g="model",A="name",y="type",T="vendor",B="version",ve="architecture",N="console",W="mobile",J="tablet",he="smarttv",ge="wearable",xe="embedded",c=500,d="Amazon",p="Apple",E="ASUS",u="BlackBerry",w="Browser",S="Chrome",h="Edge",b="Firefox",x="Google",I="Honor",F="Huawei",Q="Lenovo",ae="LG",ue="Microsoft",Ce="Motorola",Te="Nvidia",q="OnePlus",Ae="Opera",Ne="OPPO",Ge="Samsung",Qe="Sharp",Xe="Sony",We="Xiaomi",_e="Zebra",Fe="Facebook",Pe="Chromium OS",Ee="Mac OS",Ft=" Browser",Pt=function(U,v){var D={};for(var ee in U)v[ee]&&v[ee].length%2===0?D[ee]=v[ee].concat(U[ee]):D[ee]=U[ee];return D},ht=function(U){for(var v={},D=0;D<U.length;D++)v[U[D].toUpperCase()]=U[D];return v},gt=function(U,v){return typeof U===O?ct(v).indexOf(ct(U))!==-1:!1},ct=function(U){return U.toLowerCase()},R=function(U){return typeof U===O?U.replace(/[^\d\.]/g,a).split(".")[0]:s},X=function(U,v){if(typeof U===O)return U=U.replace(/^\s\s*/,a),typeof v===l?U:U.substring(0,c)},G=function(U,v){for(var D=0,ee,ne,fe,ce,M,j;D<v.length&&!M;){var oe=v[D],H=v[D+1];for(ee=ne=0;ee<oe.length&&!M&&oe[ee];)if(M=oe[ee++].exec(U),M)for(fe=0;fe<H.length;fe++)j=M[++ne],ce=H[fe],typeof ce===k&&ce.length>0?ce.length===2?typeof ce[1]==i?this[ce[0]]=ce[1].call(this,j):this[ce[0]]=ce[1]:ce.length===3?typeof ce[1]===i&&!(ce[1].exec&&ce[1].test)?this[ce[0]]=j?ce[1].call(this,j,ce[2]):s:this[ce[0]]=j?j.replace(ce[1],ce[2]):s:ce.length===4&&(this[ce[0]]=j?ce[3].call(this,j.replace(ce[1],ce[2])):s):this[ce]=j||s;D+=2}},Z=function(U,v){for(var D in v)if(typeof v[D]===k&&v[D].length>0){for(var ee=0;ee<v[D].length;ee++)if(gt(v[D][ee],U))return D===r?s:D}else if(gt(v[D],U))return D===r?s:D;return v.hasOwnProperty("*")?v["*"]:U},_={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},K={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},z={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[B,[A,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[B,[A,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[A,B],[/opios[\/ ]+([\w\.]+)/i],[B,[A,Ae+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[B,[A,Ae+" GX"]],[/\bopr\/([\w\.]+)/i],[B,[A,Ae]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[B,[A,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[B,[A,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[A,B],[/quark(?:pc)?\/([-\w\.]+)/i],[B,[A,"Quark"]],[/\bddg\/([\w\.]+)/i],[B,[A,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[B,[A,"UC"+w]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[B,[A,"WeChat"]],[/konqueror\/([\w\.]+)/i],[B,[A,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[B,[A,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[B,[A,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[B,[A,"Smart Lenovo "+w]],[/(avast|avg)\/([\w\.]+)/i],[[A,/(.+)/,"$1 Secure "+w],B],[/\bfocus\/([\w\.]+)/i],[B,[A,b+" Focus"]],[/\bopt\/([\w\.]+)/i],[B,[A,Ae+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[B,[A,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[B,[A,"Dolphin"]],[/coast\/([\w\.]+)/i],[B,[A,Ae+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[B,[A,"MIUI"+Ft]],[/fxios\/([\w\.-]+)/i],[B,[A,b]],[/\bqihoobrowser\/?([\w\.]*)/i],[B,[A,"360"]],[/\b(qq)\/([\w\.]+)/i],[[A,/(.+)/,"$1Browser"],B],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[A,/(.+)/,"$1"+Ft],B],[/samsungbrowser\/([\w\.]+)/i],[B,[A,Ge+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[B,[A,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[A,"Sogou Mobile"],B],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[A,B],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[A],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[B,A],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[A,Fe],B],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[A,B],[/\bgsa\/([\w\.]+) .*safari\//i],[B,[A,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[B,[A,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[B,[A,S+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[A,S+" WebView"],B],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[B,[A,"Android "+w]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[A,B],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[B,[A,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[B,A],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[A,[B,Z,_]],[/(webkit|khtml)\/([\w\.]+)/i],[A,B],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[A,"Netscape"],B],[/(wolvic|librewolf)\/([\w\.]+)/i],[A,B],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[B,[A,b+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[A,[B,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[A,[B,/master.|lts./,""]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[ve,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[ve,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[ve,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[ve,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[ve,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[ve,/ower/,a,ct]],[/ sun4\w[;\)]/i],[[ve,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[ve,ct]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[g,[T,Ge],[y,J]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[g,[T,Ge],[y,W]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[g,[T,p],[y,W]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[g,[T,p],[y,J]],[/(macintosh);/i],[g,[T,p]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[g,[T,Qe],[y,W]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[g,[T,I],[y,J]],[/honor([-\w ]+)[;\)]/i],[g,[T,I],[y,W]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[g,[T,F],[y,J]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[g,[T,F],[y,W]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[g,/_/g," "],[T,We],[y,J]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[g,/_/g," "],[T,We],[y,W]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[g,[T,Ne],[y,W]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[g,[T,Z,{OnePlus:["304","403","203"],"*":Ne}],[y,J]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[g,[T,"Vivo"],[y,W]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[g,[T,"Realme"],[y,W]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[g,[T,Ce],[y,W]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[g,[T,Ce],[y,J]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[g,[T,ae],[y,J]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[g,[T,ae],[y,W]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[g,[T,Q],[y,J]],[/(nokia) (t[12][01])/i],[T,g,[y,J]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[g,/_/g," "],[y,W],[T,"Nokia"]],[/(pixel (c|tablet))\b/i],[g,[T,x],[y,J]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[g,[T,x],[y,W]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[g,[T,Xe],[y,W]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[g,"Xperia Tablet"],[T,Xe],[y,J]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[g,[T,q],[y,W]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[g,[T,d],[y,J]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[g,/(.+)/g,"Fire Phone $1"],[T,d],[y,W]],[/(playbook);[-\w\),; ]+(rim)/i],[g,T,[y,J]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[g,[T,u],[y,W]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[g,[T,E],[y,J]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[g,[T,E],[y,W]],[/(nexus 9)/i],[g,[T,"HTC"],[y,J]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[T,[g,/_/g," "],[y,W]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[g,[T,"TCL"],[y,J]],[/(itel) ((\w+))/i],[[T,ct],g,[y,Z,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[g,[T,"Acer"],[y,J]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[g,[T,"Meizu"],[y,W]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[g,[T,"Ulefone"],[y,W]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[g,[T,"Energizer"],[y,W]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[g,[T,"Cat"],[y,W]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[g,[T,"Smartfren"],[y,W]],[/droid.+; (a(?:015|06[35]|142p?))/i],[g,[T,"Nothing"],[y,W]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[g,[T,"Archos"],[y,J]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[g,[T,"Archos"],[y,W]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[T,g,[y,J]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (hmd|imo) ([\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i,/(oppo) ?([\w ]+) bui/i],[T,g,[y,W]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[T,g,[y,J]],[/(surface duo)/i],[g,[T,ue],[y,J]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[g,[T,"Fairphone"],[y,W]],[/(u304aa)/i],[g,[T,"AT&T"],[y,W]],[/\bsie-(\w*)/i],[g,[T,"Siemens"],[y,W]],[/\b(rct\w+) b/i],[g,[T,"RCA"],[y,J]],[/\b(venue[\d ]{2,7}) b/i],[g,[T,"Dell"],[y,J]],[/\b(q(?:mv|ta)\w+) b/i],[g,[T,"Verizon"],[y,J]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[g,[T,"Barnes & Noble"],[y,J]],[/\b(tm\d{3}\w+) b/i],[g,[T,"NuVision"],[y,J]],[/\b(k88) b/i],[g,[T,"ZTE"],[y,J]],[/\b(nx\d{3}j) b/i],[g,[T,"ZTE"],[y,W]],[/\b(gen\d{3}) b.+49h/i],[g,[T,"Swiss"],[y,W]],[/\b(zur\d{3}) b/i],[g,[T,"Swiss"],[y,J]],[/\b((zeki)?tb.*\b) b/i],[g,[T,"Zeki"],[y,J]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[T,"Dragon Touch"],g,[y,J]],[/\b(ns-?\w{0,9}) b/i],[g,[T,"Insignia"],[y,J]],[/\b((nxa|next)-?\w{0,9}) b/i],[g,[T,"NextBook"],[y,J]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[T,"Voice"],g,[y,W]],[/\b(lvtel\-)?(v1[12]) b/i],[[T,"LvTel"],g,[y,W]],[/\b(ph-1) /i],[g,[T,"Essential"],[y,W]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[g,[T,"Envizen"],[y,J]],[/\b(trio[-\w\. ]+) b/i],[g,[T,"MachSpeed"],[y,J]],[/\btu_(1491) b/i],[g,[T,"Rotor"],[y,J]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[g,[T,Te],[y,J]],[/(sprint) (\w+)/i],[T,g,[y,W]],[/(kin\.[onetw]{3})/i],[[g,/\./g," "],[T,ue],[y,W]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[g,[T,_e],[y,J]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[g,[T,_e],[y,W]],[/smart-tv.+(samsung)/i],[T,[y,he]],[/hbbtv.+maple;(\d+)/i],[[g,/^/,"SmartTV"],[T,Ge],[y,he]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[T,ae],[y,he]],[/(apple) ?tv/i],[T,[g,p+" TV"],[y,he]],[/crkey/i],[[g,S+"cast"],[T,x],[y,he]],[/droid.+aft(\w+)( bui|\))/i],[g,[T,d],[y,he]],[/(shield \w+ tv)/i],[g,[T,Te],[y,he]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[g,[T,Qe],[y,he]],[/(bravia[\w ]+)( bui|\))/i],[g,[T,Xe],[y,he]],[/(mi(tv|box)-?\w+) bui/i],[g,[T,We],[y,he]],[/Hbbtv.*(technisat) (.*);/i],[T,g,[y,he]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[T,X],[g,X],[y,he]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[g,[y,he]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[y,he]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[T,g,[y,N]],[/droid.+; (shield)( bui|\))/i],[g,[T,Te],[y,N]],[/(playstation \w+)/i],[g,[T,Xe],[y,N]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[g,[T,ue],[y,N]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[g,[T,Ge],[y,ge]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[T,g,[y,ge]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[g,[T,Ne],[y,ge]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[g,[T,p],[y,ge]],[/(opwwe\d{3})/i],[g,[T,q],[y,ge]],[/(moto 360)/i],[g,[T,Ce],[y,ge]],[/(smartwatch 3)/i],[g,[T,Xe],[y,ge]],[/(g watch r)/i],[g,[T,ae],[y,ge]],[/droid.+; (wt63?0{2,3})\)/i],[g,[T,_e],[y,ge]],[/droid.+; (glass) \d/i],[g,[T,x],[y,ge]],[/(pico) (4|neo3(?: link|pro)?)/i],[T,g,[y,ge]],[/; (quest( \d| pro)?)/i],[g,[T,Fe],[y,ge]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[T,[y,xe]],[/(aeobc)\b/i],[g,[T,d],[y,xe]],[/(homepod).+mac os/i],[g,[T,p],[y,xe]],[/windows iot/i],[[y,xe]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[g,[y,W]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[g,[y,J]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[y,J]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[y,W]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[g,[T,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[B,[A,h+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[A,B],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[B,[A,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[A,B],[/ladybird\//i],[[A,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[B,A]],os:[[/microsoft (windows) (vista|xp)/i],[A,B],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[A,[B,Z,K]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[B,Z,K],[A,"Windows"]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[B,/_/g,"."],[A,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[A,Ee],[B,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[B,A],[/(ubuntu) ([\w\.]+) like android/i],[[A,/(.+)/,"$1 Touch"],B],[/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i],[A,B],[/\(bb(10);/i],[B,[A,u]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[B,[A,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[B,[A,b+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[B,[A,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[B,[A,"watchOS"]],[/crkey\/([\d\.]+)/i],[B,[A,S+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[A,Pe],B],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[A,B],[/(sunos) ?([\w\.\d]*)/i],[[A,"Solaris"],B],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[A,B]]},$=function(U,v){if(typeof U===k&&(v=U,U=s),!(this instanceof $))return new $(U,v).getResult();var D=typeof n!==l&&n.navigator?n.navigator:s,ee=U||(D&&D.userAgent?D.userAgent:a),ne=D&&D.userAgentData?D.userAgentData:s,fe=v?Pt(z,v):z,ce=D&&D.userAgent==ee;return this.getBrowser=function(){var M={};return M[A]=s,M[B]=s,G.call(M,ee,fe.browser),M[Y]=R(M[B]),ce&&D&&D.brave&&typeof D.brave.isBrave==i&&(M[A]="Brave"),M},this.getCPU=function(){var M={};return M[ve]=s,G.call(M,ee,fe.cpu),M},this.getDevice=function(){var M={};return M[T]=s,M[g]=s,M[y]=s,G.call(M,ee,fe.device),ce&&!M[y]&&ne&&ne.mobile&&(M[y]=W),ce&&M[g]=="Macintosh"&&D&&typeof D.standalone!==l&&D.maxTouchPoints&&D.maxTouchPoints>2&&(M[g]="iPad",M[y]=J),M},this.getEngine=function(){var M={};return M[A]=s,M[B]=s,G.call(M,ee,fe.engine),M},this.getOS=function(){var M={};return M[A]=s,M[B]=s,G.call(M,ee,fe.os),ce&&!M[A]&&ne&&ne.platform&&ne.platform!="Unknown"&&(M[A]=ne.platform.replace(/chrome os/i,Pe).replace(/macos/i,Ee)),M},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return ee},this.setUA=function(M){return ee=typeof M===O&&M.length>c?X(M,c):M,this},this.setUA(ee),this};$.VERSION=o,$.BROWSER=ht([A,B,Y]),$.CPU=ht([ve]),$.DEVICE=ht([g,T,y,N,W,he,J,ge,xe]),$.ENGINE=$.OS=ht([A,B]),e.exports&&(t=e.exports=$),t.UAParser=$;var pe=typeof n!==l&&(n.jQuery||n.Zepto);if(pe&&!pe.ua){var re=new $;pe.ua=re.getResult(),pe.ua.get=function(){return re.getUA()},pe.ua.set=function(U){re.setUA(U);var v=re.getResult();for(var D in v)pe.ua[D]=v[D]}}})(typeof window=="object"?window:nc)})(an,an.exports)),an.exports}var Es;function sc(){if(Es)return se;Es=1,Object.defineProperty(se,"__esModule",{value:!0});function e(C){return C&&typeof C=="object"&&"default"in C?C.default:C}var t=te,n=e(t),s=oc(),o=new s,a=o.getBrowser(),r=o.getCPU(),i=o.getDevice(),l=o.getEngine(),k=o.getOS(),O=o.getUA(),Y=function(f){return o.setUA(f)},g=function(f){if(!f){console.error("No userAgent string was provided");return}var m=new s(f);return{UA:m,browser:m.getBrowser(),cpu:m.getCPU(),device:m.getDevice(),engine:m.getEngine(),os:m.getOS(),ua:m.getUA(),setUserAgent:function(V){return m.setUA(V)}}},A=Object.freeze({ClientUAInstance:o,browser:a,cpu:r,device:i,engine:l,os:k,ua:O,setUa:Y,parseUserAgent:g});function y(C,f){var m=Object.keys(C);if(Object.getOwnPropertySymbols){var L=Object.getOwnPropertySymbols(C);f&&(L=L.filter(function(V){return Object.getOwnPropertyDescriptor(C,V).enumerable})),m.push.apply(m,L)}return m}function T(C){for(var f=1;f<arguments.length;f++){var m=arguments[f]!=null?arguments[f]:{};f%2?y(Object(m),!0).forEach(function(L){J(C,L,m[L])}):Object.getOwnPropertyDescriptors?Object.defineProperties(C,Object.getOwnPropertyDescriptors(m)):y(Object(m)).forEach(function(L){Object.defineProperty(C,L,Object.getOwnPropertyDescriptor(m,L))})}return C}function B(C){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?B=function(f){return typeof f}:B=function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},B(C)}function ve(C,f){if(!(C instanceof f))throw new TypeError("Cannot call a class as a function")}function N(C,f){for(var m=0;m<f.length;m++){var L=f[m];L.enumerable=L.enumerable||!1,L.configurable=!0,"value"in L&&(L.writable=!0),Object.defineProperty(C,L.key,L)}}function W(C,f,m){return f&&N(C.prototype,f),C}function J(C,f,m){return f in C?Object.defineProperty(C,f,{value:m,enumerable:!0,configurable:!0,writable:!0}):C[f]=m,C}function he(){return he=Object.assign||function(C){for(var f=1;f<arguments.length;f++){var m=arguments[f];for(var L in m)Object.prototype.hasOwnProperty.call(m,L)&&(C[L]=m[L])}return C},he.apply(this,arguments)}function ge(C,f){if(typeof f!="function"&&f!==null)throw new TypeError("Super expression must either be null or a function");C.prototype=Object.create(f&&f.prototype,{constructor:{value:C,writable:!0,configurable:!0}}),f&&c(C,f)}function xe(C){return xe=Object.setPrototypeOf?Object.getPrototypeOf:function(m){return m.__proto__||Object.getPrototypeOf(m)},xe(C)}function c(C,f){return c=Object.setPrototypeOf||function(L,V){return L.__proto__=V,L},c(C,f)}function d(C,f){if(C==null)return{};var m={},L=Object.keys(C),V,ke;for(ke=0;ke<L.length;ke++)V=L[ke],!(f.indexOf(V)>=0)&&(m[V]=C[V]);return m}function p(C,f){if(C==null)return{};var m=d(C,f),L,V;if(Object.getOwnPropertySymbols){var ke=Object.getOwnPropertySymbols(C);for(V=0;V<ke.length;V++)L=ke[V],!(f.indexOf(L)>=0)&&Object.prototype.propertyIsEnumerable.call(C,L)&&(m[L]=C[L])}return m}function E(C){if(C===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return C}function u(C,f){if(f&&(typeof f=="object"||typeof f=="function"))return f;if(f!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return E(C)}function w(C,f){return S(C)||h(C,f)||b(C,f)||I()}function S(C){if(Array.isArray(C))return C}function h(C,f){var m=C==null?null:typeof Symbol<"u"&&C[Symbol.iterator]||C["@@iterator"];if(m!=null){var L=[],V=!0,ke=!1,Re,Ke;try{for(m=m.call(C);!(V=(Re=m.next()).done)&&(L.push(Re.value),!(f&&L.length===f));V=!0);}catch(xn){ke=!0,Ke=xn}finally{try{!V&&m.return!=null&&m.return()}finally{if(ke)throw Ke}}return L}}function b(C,f){if(C){if(typeof C=="string")return x(C,f);var m=Object.prototype.toString.call(C).slice(8,-1);if(m==="Object"&&C.constructor&&(m=C.constructor.name),m==="Map"||m==="Set")return Array.from(C);if(m==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(m))return x(C,f)}}function x(C,f){(f==null||f>C.length)&&(f=C.length);for(var m=0,L=new Array(f);m<f;m++)L[m]=C[m];return L}function I(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
404
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var F={Mobile:"mobile",Tablet:"tablet",SmartTv:"smarttv",Console:"console",Wearable:"wearable",Embedded:"embedded",Browser:void 0},Q={Chrome:"Chrome",Firefox:"Firefox",Opera:"Opera",Yandex:"Yandex",Safari:"Safari",InternetExplorer:"Internet Explorer",Edge:"Edge",Chromium:"Chromium",Ie:"IE",MobileSafari:"Mobile Safari",EdgeChromium:"Edge Chromium",MIUI:"MIUI Browser",SamsungBrowser:"Samsung Browser"},ae={IOS:"iOS",Android:"Android",WindowsPhone:"Windows Phone",Windows:"Windows",MAC_OS:"Mac OS"},ue={isMobile:!1,isTablet:!1,isBrowser:!1,isSmartTV:!1,isConsole:!1,isWearable:!1},Ce=function(f){switch(f){case F.Mobile:return{isMobile:!0};case F.Tablet:return{isTablet:!0};case F.SmartTv:return{isSmartTV:!0};case F.Console:return{isConsole:!0};case F.Wearable:return{isWearable:!0};case F.Browser:return{isBrowser:!0};case F.Embedded:return{isEmbedded:!0};default:return ue}},Te=function(f){return Y(f)},q=function(f){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"none";return f||m},Ae=function(){return typeof window<"u"&&(window.navigator||navigator)?window.navigator||navigator:!1},Ne=function(f){var m=Ae();return m&&m.platform&&(m.platform.indexOf(f)!==-1||m.platform==="MacIntel"&&m.maxTouchPoints>1&&!window.MSStream)},Ge=function(f,m,L,V,ke){return{isBrowser:f,browserMajorVersion:q(m.major),browserFullVersion:q(m.version),browserName:q(m.name),engineName:q(L.name),engineVersion:q(L.version),osName:q(V.name),osVersion:q(V.version),userAgent:q(ke)}},Qe=function(f,m,L,V){return T({},f,{vendor:q(m.vendor),model:q(m.model),os:q(L.name),osVersion:q(L.version),ua:q(V)})},Xe=function(f,m,L,V){return{isSmartTV:f,engineName:q(m.name),engineVersion:q(m.version),osName:q(L.name),osVersion:q(L.version),userAgent:q(V)}},We=function(f,m,L,V){return{isConsole:f,engineName:q(m.name),engineVersion:q(m.version),osName:q(L.name),osVersion:q(L.version),userAgent:q(V)}},_e=function(f,m,L,V){return{isWearable:f,engineName:q(m.name),engineVersion:q(m.version),osName:q(L.name),osVersion:q(L.version),userAgent:q(V)}},Fe=function(f,m,L,V,ke){return{isEmbedded:f,vendor:q(m.vendor),model:q(m.model),engineName:q(L.name),engineVersion:q(L.version),osName:q(V.name),osVersion:q(V.version),userAgent:q(ke)}};function Pe(C){var f=C?g(C):A,m=f.device,L=f.browser,V=f.engine,ke=f.os,Re=f.ua,Ke=Ce(m.type),xn=Ke.isBrowser,sl=Ke.isMobile,al=Ke.isTablet,Rs=Ke.isSmartTV,Ms=Ke.isConsole,Hs=Ke.isWearable,Ws=Ke.isEmbedded;if(xn)return Ge(xn,L,V,ke,Re);if(Rs)return Xe(Rs,V,ke,Re);if(Ms)return We(Ms,V,ke,Re);if(sl||al)return Qe(Ke,m,ke,Re);if(Hs)return _e(Hs,V,ke,Re);if(Ws)return Fe(Ws,m,V,ke,Re)}var Ee=function(f){var m=f.type;return m===F.Mobile},Ft=function(f){var m=f.type;return m===F.Tablet},Pt=function(f){var m=f.type;return m===F.Mobile||m===F.Tablet},ht=function(f){var m=f.type;return m===F.SmartTv},gt=function(f){var m=f.type;return m===F.Browser},ct=function(f){var m=f.type;return m===F.Wearable},R=function(f){var m=f.type;return m===F.Console},X=function(f){var m=f.type;return m===F.Embedded},G=function(f){var m=f.vendor;return q(m)},Z=function(f){var m=f.model;return q(m)},_=function(f){var m=f.type;return q(m,"browser")},K=function(f){var m=f.name;return m===ae.Android},z=function(f){var m=f.name;return m===ae.Windows},$=function(f){var m=f.name;return m===ae.MAC_OS},pe=function(f){var m=f.name;return m===ae.WindowsPhone},re=function(f){var m=f.name;return m===ae.IOS},U=function(f){var m=f.version;return q(m)},v=function(f){var m=f.name;return q(m)},D=function(f){var m=f.name;return m===Q.Chrome},ee=function(f){var m=f.name;return m===Q.Firefox},ne=function(f){var m=f.name;return m===Q.Chromium},fe=function(f){var m=f.name;return m===Q.Edge},ce=function(f){var m=f.name;return m===Q.Yandex},M=function(f){var m=f.name;return m===Q.Safari||m===Q.MobileSafari},j=function(f){var m=f.name;return m===Q.MobileSafari},oe=function(f){var m=f.name;return m===Q.Opera},H=function(f){var m=f.name;return m===Q.InternetExplorer||m===Q.Ie},be=function(f){var m=f.name;return m===Q.MIUI},we=function(f){var m=f.name;return m===Q.SamsungBrowser},le=function(f){var m=f.version;return q(m)},Se=function(f){var m=f.major;return q(m)},Oe=function(f){var m=f.name;return q(m)},Ie=function(f){var m=f.name;return q(m)},De=function(f){var m=f.version;return q(m)},$e=function(){var f=Ae(),m=f&&f.userAgent&&f.userAgent.toLowerCase();return typeof m=="string"?/electron/.test(m):!1},Ye=function(f){return typeof f=="string"&&f.indexOf("Edg/")!==-1},lt=function(){var f=Ae();return f&&(/iPad|iPhone|iPod/.test(f.platform)||f.platform==="MacIntel"&&f.maxTouchPoints>1)&&!window.MSStream},ze=function(){return Ne("iPad")},Ot=function(){return Ne("iPhone")},rn=function(){return Ne("iPod")},cn=function(f){return q(f)};function Jt(C){var f=C||A,m=f.device,L=f.browser,V=f.os,ke=f.engine,Re=f.ua;return{isSmartTV:ht(m),isConsole:R(m),isWearable:ct(m),isEmbedded:X(m),isMobileSafari:j(L)||ze(),isChromium:ne(L),isMobile:Pt(m)||ze(),isMobileOnly:Ee(m),isTablet:Ft(m)||ze(),isBrowser:gt(m),isDesktop:gt(m),isAndroid:K(V),isWinPhone:pe(V),isIOS:re(V)||ze(),isChrome:D(L),isFirefox:ee(L),isSafari:M(L),isOpera:oe(L),isIE:H(L),osVersion:U(V),osName:v(V),fullBrowserVersion:le(L),browserVersion:Se(L),browserName:Oe(L),mobileVendor:G(m),mobileModel:Z(m),engineName:Ie(ke),engineVersion:De(ke),getUA:cn(Re),isEdge:fe(L)||Ye(Re),isYandex:ce(L),deviceType:_(m),isIOS13:lt(),isIPad13:ze(),isIPhone13:Ot(),isIPod13:rn(),isElectron:$e(),isEdgeChromium:Ye(Re),isLegacyEdge:fe(L)&&!Ye(Re),isWindows:z(V),isMacOs:$(V),isMIUI:be(L),isSamsungBrowser:we(L)}}var Ue=ht(i),Cn=R(i),En=ct(i),dc=X(i),uc=j(a)||ze(),fc=ne(a),Sn=Pt(i)||ze(),Ns=Ee(i),Bs=Ft(i)||ze(),Fs=gt(i),pc=gt(i),Ps=K(k),Os=pe(k),Ds=re(k)||ze(),mc=D(a),hc=ee(a),gc=M(a),wc=oe(a),Ls=H(a),bc=U(k),yc=v(k),Ac=le(a),kc=Se(a),vc=Oe(a),Tc=G(i),Cc=Z(i),Ec=Ie(l),Sc=De(l),xc=cn(O),Ic=fe(a)||Ye(O),Nc=ce(a),Bc=_(i),Fc=lt(),Pc=ze(),Oc=Ot(),Dc=rn(),Lc=$e(),Uc=Ye(O),Rc=fe(a)&&!Ye(O),Mc=z(k),Hc=$(k),Wc=be(a),Vc=we(a),Gc=function(f){if(!f||typeof f!="string"){console.error("No valid user agent string was provided");return}var m=g(f),L=m.device,V=m.browser,ke=m.os,Re=m.engine,Ke=m.ua;return Jt({device:L,browser:V,os:ke,engine:Re,ua:Ke})},Yc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ps?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},zc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Fs?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},Jc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ls?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},jc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ds?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},qc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Sn?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},Qc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Bs?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},Xc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Os?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},Kc=function(f){var m=f.renderWithFragment,L=f.children;f.viewClassName,f.style;var V=p(f,["renderWithFragment","children","viewClassName","style"]);return Ns?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},Zc=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Ue?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},_c=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return Cn?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},$c=function(f){var m=f.renderWithFragment,L=f.children,V=p(f,["renderWithFragment","children"]);return En?m?n.createElement(t.Fragment,null,L):n.createElement("div",V,L):null},el=function(f){var m=f.renderWithFragment,L=f.children;f.viewClassName,f.style;var V=f.condition,ke=p(f,["renderWithFragment","children","viewClassName","style","condition"]);return V?m?n.createElement(t.Fragment,null,L):n.createElement("div",ke,L):null};function tl(C){return(function(f){ge(m,f);function m(L){var V;return ve(this,m),V=u(this,xe(m).call(this,L)),V.isEventListenerAdded=!1,V.handleOrientationChange=V.handleOrientationChange.bind(E(V)),V.onOrientationChange=V.onOrientationChange.bind(E(V)),V.onPageLoad=V.onPageLoad.bind(E(V)),V.state={isLandscape:!1,isPortrait:!1},V}return W(m,[{key:"handleOrientationChange",value:function(){this.isEventListenerAdded||(this.isEventListenerAdded=!0);var V=window.innerWidth>window.innerHeight?90:0;this.setState({isPortrait:V===0,isLandscape:V===90})}},{key:"onOrientationChange",value:function(){this.handleOrientationChange()}},{key:"onPageLoad",value:function(){this.handleOrientationChange()}},{key:"componentDidMount",value:function(){(typeof window>"u"?"undefined":B(window))!==void 0&&Sn&&(this.isEventListenerAdded?window.removeEventListener("load",this.onPageLoad,!1):(this.handleOrientationChange(),window.addEventListener("load",this.onPageLoad,!1)),window.addEventListener("resize",this.onOrientationChange,!1))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.onOrientationChange,!1)}},{key:"render",value:function(){return n.createElement(C,he({},this.props,{isLandscape:this.state.isLandscape,isPortrait:this.state.isPortrait}))}}]),m})(n.Component)}function nl(){var C=t.useState(function(){var ke=window.innerWidth>window.innerHeight?90:0;return{isPortrait:ke===0,isLandscape:ke===90,orientation:ke===0?"portrait":"landscape"}}),f=w(C,2),m=f[0],L=f[1],V=t.useCallback(function(){var ke=window.innerWidth>window.innerHeight?90:0,Re={isPortrait:ke===0,isLandscape:ke===90,orientation:ke===0?"portrait":"landscape"};m.orientation!==Re.orientation&&L(Re)},[m.orientation]);return t.useEffect(function(){return(typeof window>"u"?"undefined":B(window))!==void 0&&Sn&&(V(),window.addEventListener("load",V,!1),window.addEventListener("resize",V,!1)),function(){window.removeEventListener("resize",V,!1),window.removeEventListener("load",V,!1)}},[V]),m}function Us(C){var f=C||window.navigator.userAgent;return g(f)}function ol(C){var f=C||window.navigator.userAgent,m=Us(f),L=Jt(m);return[L,m]}return se.AndroidView=Yc,se.BrowserTypes=Q,se.BrowserView=zc,se.ConsoleView=_c,se.CustomView=el,se.IEView=Jc,se.IOSView=jc,se.MobileOnlyView=Kc,se.MobileView=qc,se.OsTypes=ae,se.SmartTVView=Zc,se.TabletView=Qc,se.WearableView=$c,se.WinPhoneView=Xc,se.browserName=vc,se.browserVersion=kc,se.deviceDetect=Pe,se.deviceType=Bc,se.engineName=Ec,se.engineVersion=Sc,se.fullBrowserVersion=Ac,se.getSelectorsByUserAgent=Gc,se.getUA=xc,se.isAndroid=Ps,se.isBrowser=Fs,se.isChrome=mc,se.isChromium=fc,se.isConsole=Cn,se.isDesktop=pc,se.isEdge=Ic,se.isEdgeChromium=Uc,se.isElectron=Lc,se.isEmbedded=dc,se.isFirefox=hc,se.isIE=Ls,se.isIOS=Ds,se.isIOS13=Fc,se.isIPad13=Pc,se.isIPhone13=Oc,se.isIPod13=Dc,se.isLegacyEdge=Rc,se.isMIUI=Wc,se.isMacOs=Hc,se.isMobile=Sn,se.isMobileOnly=Ns,se.isMobileSafari=uc,se.isOpera=wc,se.isSafari=gc,se.isSamsungBrowser=Vc,se.isSmartTV=Ue,se.isTablet=Bs,se.isWearable=En,se.isWinPhone=Os,se.isWindows=Mc,se.isYandex=Nc,se.mobileModel=Cc,se.mobileVendor=Tc,se.osName=yc,se.osVersion=bc,se.parseUserAgent=g,se.setUserAgent=Te,se.useDeviceData=Us,se.useDeviceSelectors=ol,se.useMobileOrientation=nl,se.withOrientationChange=tl,se}var zt=sc();const ac=void 0,Ss=["AIzaSyCcjTkMquc7DNzqQYOXEFj7qoEypnCdUOs","AIzaSyDWJj9ufkN-39vkT6_qvnAu9s_3BECbdcM","AIzaSyAkSIDm0sT0uenqN6EgznNl7qGHSG3B22Y","AIzaSyCRFoHCgxndYwAELqLjxzzYaTBM_cZr0bU","AIzaSyBgvuw0AhP0eeCF3iw0LLsHHAXSfnBbbHY","AIzaSyAfMPuSqrl14vw1fYkhzC-D5CNf78nXjfU","AIzaSyC0EVYjl81EVo_RwKpDE6jhTbTK-cO1n4U","AIzaSyAmHgpfmkBJVM9dUUXQ81ZCJvTjbdbFP54","AIzaSyDD2tujUZ7FpgJ4-gn8BNzYkVSrrAc4nC8","AIzaSyAQkB8-XZj7IpnWnVWJRrFUontxaWcYts4","AIzaSyCuMsh9tdgwnXkA0VCfGEhOJ9m-PpMTLOI","AIzaSyAEyg3fu64RsyvCoJQPr1ljRxp2tH61mGE","AIzaSyB1lMSRtZGSMUHBblpz8KtNKrmWmmFIWbk","AIzaSyDuEnXlwTsmVVUF2oqcUED-X1SeVWEK0tI","AIzaSyA1urvuv3-QJBno3WdUTMgb_YC3S1Bfd8o","AIzaSyAHrEi0Lj8QskYDf_jJq6Ntgt0tEMT5dCM","AIzaSyDOJISQFLeWkJnu0uqjl82j_EkIbGzuwO0","AIzaSyAopV-1f7330jy9qpMzdIm0rrXEzxhFSHk","AIzaSyAnz8McdnnPR914ecmW1th-FjBD2Ru_W6Y","AIzaSyCxuS7oGGrzIWUZ-VizZdEIWFQRa3RR1XU"],xs={model:"gemini-2.5-flash","model2.0":"gemini-2.5-flash",apiKey:ac,url:"https://generativelanguage.googleapis.com"};class rc extends Yt{enableGoogleSearch=!0;indexApiKey=0;constructor(){super(xs.url)}getApiKey(){let t="";const n=localStorage.getItem("index_api_key_gemini");return n&&(this.indexApiKey=Number(n),this.indexApiKey++),this.indexApiKey>=Ss.length&&(this.indexApiKey=0),t=Ss[this.indexApiKey],localStorage.setItem("index_api_key_gemini",this.indexApiKey.toString()),t}getUrl(t,n){return`/v1beta/models/${n||"gemini-2.5-flash"}:${t}`}async generateContent(t,n){try{const s=`
405
405
  Below is the system context and conversation history. Use it for context but prioritize the instructions at the end.
406
406
 
407
407
  ---
@@ -423,7 +423,7 @@ ${n}
423
423
  CURRENT USER QUESTION:
424
424
  ${t}
425
425
  ---
426
- `,s=this.getUrl("generateContent"),a={contents:[{parts:[{text:o}]}],tools:[{googleSearch:{}}]};this.enableGoogleSearch||delete a.tools;const r=await this.post(s,a,{headers:{"x-goog-api-key":this.getApiKey()}});return r?.data?.data?.candidates?.[0]?.content?.parts?.[0]?.text||r?.data?.candidates?.[0]?.content?.parts?.[0]?.text}catch(o){if((o?.message?.includes("search_grounding_request_per_project_per_day")||o?.data?.error?.message?.includes("search_grounding_request_per_project_per_day"))&&this.enableGoogleSearch)return this.enableGoogleSearch=!1,await this.generateContent(t,n);throw o}}async checkTypeQuestion(t,n){try{const o=n+`---
426
+ `,o=this.getUrl("generateContent"),a={contents:[{parts:[{text:s}]}],tools:[{googleSearch:{}}]};this.enableGoogleSearch||delete a.tools;const r=await this.post(o,a,{headers:{"x-goog-api-key":this.getApiKey()}});return r?.data?.data?.candidates?.[0]?.content?.parts?.[0]?.text||r?.data?.candidates?.[0]?.content?.parts?.[0]?.text}catch(s){if((s?.message?.includes("search_grounding_request_per_project_per_day")||s?.data?.error?.message?.includes("search_grounding_request_per_project_per_day"))&&this.enableGoogleSearch)return this.enableGoogleSearch=!1,await this.generateContent(t,n);throw s}}async checkTypeQuestion(t,n){try{const s=n+`---
427
427
  CURRENT USER QUESTION:
428
428
  ${t}
429
429
  ---
@@ -445,28 +445,28 @@ The user may ask in their native language, so recognize the MEANING, not just sp
445
445
 
446
446
  If the question is about ANY of the above topics, respond with ONLY the word "yes" (lowercase, nothing else).
447
447
  Otherwise, respond with ONLY the word "no" (lowercase, nothing else).
448
- Do not provide any explanation or additional text.`,s=this.getUrl("generateContent",Bs["model2.0"]),a={contents:[{parts:[{text:o}]}]},r=await this.post(s,a,{headers:{"x-goog-api-key":this.getApiKey()}});return r?.data?.data?.candidates?.[0]?.content?.parts?.[0]?.text||r?.data?.candidates?.[0]?.content?.parts?.[0]?.text}catch(o){throw o}}}const Fs=new pc;function ho(e,t){if(!e)return e;const n=e.toLowerCase().trim();if(n==="max"||n==="all")return t||e;const o=n.match(/^(\d+(?:\.\d+)?)%$/);if(o){const s=parseFloat(o[1])/100;return((parseFloat(t)||0)*s).toFixed(8).replace(/\.?0+$/,"")||"0"}return e}const mc=({isOpen:e,onClose:t,onTransaction:n,position:o="bottom-right",modalChatStyle:s={}})=>{const{t:a,ti:r}=Nn(),{messages:i,addMessage:l,updateMessageAction:k,updateMessageText:D,getMessageById:Y,clearMessagesById:g}=Di(),[A,y]=te.useState(""),[T,B]=te.useState(!1),[ve,N]=te.useState(!0),[W,J]=te.useState(null),he=te.useRef(null),ge=te.useRef(null),xe=te.useRef(null),c=te.useRef(null),d=te.useRef(null),p=te.useRef(!1),E=te.useRef(ve);te.useEffect(()=>{E.current=ve},[ve]);const{account:u,chainData:w,chainType:S,chainTypeMoralis:h,chainId:b,isChainSupported:x}=oo(),{config:I}=Oi(),F=b&&I?.rpcUrls?.[b]||void 0,Q=te.useCallback(()=>{const R=Bt.getItem("dataBuyToken");if(R)try{return JSON.parse(R)}catch{return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}}return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}},[]),ae=te.useCallback(R=>{Bt.setItem("dataBuyToken",JSON.stringify(R))},[]),ue=te.useCallback(R=>{const G={...Q(),...R};ae(G)},[Q,ae]),Ce=te.useCallback(R=>{J(R),Jt.isDesktop&&xe.current?.focus()},[]),Te=te.useCallback(async(R,X)=>{ue({descTokenAddress:R,descTokenDecimals:X||18});try{B(!0);const G=await Qe({address:u?.address||"",chain:h});if(G?.success&&G?.data?.result){const Z=G.data.result;if(Z?.length>0){const _=Z.map(K=>({id:K.token_address,text:`${K.name}: ${K.balance_formatted} ${K.symbol} ($${ie(K.usd_value||0)?.decimalPlaces(2).toFormat()||"0"})`,value:r("buttonBuyWith",{symbol:K.symbol}),action:"click_balance_item_user_to_buy_button",fullWidth:!0,extraData:{tokenAddress:K.token_address,symbol:K.symbol,balance:K.balance_formatted,usdValue:K.usd_value,decimals:K.decimals}}));l(r("walletBalanceSpendable",{chain:w?.name||"unknown"}),"bot",void 0,_)}else l(r("walletNoTokensFound",{chain:w?.name||"unknown"}),"bot")}else l(a("walletFetchFailed"),"bot")}catch(G){console.error("Error fetching wallet balance:",G),l(a("walletFetchError"),"bot")}finally{B(!1)}},[ue,u?.address,h,l,w?.name,a,r]),q=te.useCallback(async(R,X,G,Z)=>{const _=[25,50,75,100];ue({srcTokenAddress:R,srcTokenDecimals:Z||18});let K=G||"0";if(R===Ve)try{const $=await mo({chainId:b,rpcUrl:F});if($.isGreaterThan(0)){const pe=$.times(1e6),U=new ie(mt(G,Z||18).toString()).minus(pe);U.isGreaterThan(0)?K=ie(Le(BigInt(U.toFixed(0)),18)).toFixed():K="0"}}catch($){console.warn("getGasPrice for swap native fee deduction failed:",$)}const z=_.map($=>({id:`percent-${$}`,text:`${$}%`,value:r("buttonUsePercent",{percent:String($),symbol:X}),action:"select_percent",extraData:{percent:$,tokenAddress:R,tokenSymbol:X,tokenDecimals:Z||18,tokenBalance:K}}));if(ie(K).isZero()){l(r("insufficientFeeToken",{symbol:X}),"bot");return}l(r("selectAmountOf",{symbol:X,balance:K}),"bot",void 0,z)},[l,b,F,ue,r]),Ae=te.useCallback(async(R,X,G,Z)=>{const _={amount:(parseFloat(X)*(R/100)).toFixed(6)};G!==void 0&&(_.srcTokenAddress=G),Z!==void 0&&(_.srcTokenDecimals=Z),ue(_);const K=Q(),z=mt(K.amount,K.srcTokenDecimals||18).toString(),$=await lo({chainId:b,tokenIn:K.srcTokenAddress,tokenInAmount:z,tokenOut:K.descTokenAddress,tokenOutRecipient:u?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if($.success&&$.data){const pe=$.data,re=pe.tokenIn,U=pe.tokenOut,v=ie(Le(BigInt(re.amount||0),re.decimals)).decimalPlaces(6).toFormat(),O=ie(Le(BigInt(U.amount||0),U.decimals)).decimalPlaces(6).toFormat(),ee=K.srcTokenAddress===Ve||K.srcTokenAddress==="";let ne=!1;if(!ee&&u?.address&&pe.tx?.to)try{const we=await po({tokenAddress:K.srcTokenAddress,ownerAddress:u.address,spenderAddress:pe.tx.to,chainId:b,rpcUrl:F});ne=ie(we.toString()).isLessThan(z)}catch(we){console.warn("Allowance check failed:",we),ne=!0}const fe=pe.estimatedTransactionFee?.total?ie(pe.estimatedTransactionFee.total):ie(0);let ce=ie(0);if(ne&&u?.address)try{const we=Tn({tokenAddress:K.srcTokenAddress,spenderAddress:pe.tx?.to||"",fromAddress:u.address,chainId:b});ce=await an({from:u.address,to:we.to,data:we.data,chainId:b,rpcUrl:F})}catch(we){console.warn("Approve fee estimation failed:",we)}const M=fe.plus(ce),j=w?.nativeCurrency?.symbol||"native";let oe="",H=!1;if(u?.address&&M.isGreaterThan(0))try{const we=await Cn({address:u.address,chainId:b,rpcUrl:F});if(we.isLessThan(M)){H=!0;const le=ie(Le(BigInt(we.toFixed(0)),18)).decimalPlaces(6).toFormat(),Se=ie(Le(BigInt(M.toFixed(0)),18)).decimalPlaces(6).toFormat();oe=r("swapFeeWarning",{symbol:j,balance:le,needed:Se})}}catch(we){console.warn("Fee balance check failed:",we)}const be=`From: ${v} ${re.symbol}
448
+ Do not provide any explanation or additional text.`,o=this.getUrl("generateContent",xs["model2.0"]),a={contents:[{parts:[{text:s}]}]},r=await this.post(o,a,{headers:{"x-goog-api-key":this.getApiKey()}});return r?.data?.data?.candidates?.[0]?.content?.parts?.[0]?.text||r?.data?.candidates?.[0]?.content?.parts?.[0]?.text}catch(s){throw s}}}const Is=new rc;function po(e,t){if(!e)return e;const n=e.toLowerCase().trim();if(n==="max"||n==="all")return t||e;const s=n.match(/^(\d+(?:\.\d+)?)%$/);if(s){const o=parseFloat(s[1])/100;return((parseFloat(t)||0)*o).toFixed(8).replace(/\.?0+$/,"")||"0"}return e}const ic=({isOpen:e,onClose:t,onTransaction:n,position:s="bottom-right",modalChatStyle:o={}})=>{const{t:a,ti:r}=In(),{messages:i,addMessage:l,updateMessageAction:k,updateMessageText:O,getMessageById:Y,clearMessagesById:g}=Si(),[A,y]=te.useState(""),[T,B]=te.useState(!1),[ve,N]=te.useState(!0),[W,J]=te.useState(null),he=te.useRef(null),ge=te.useRef(null),xe=te.useRef(null),c=te.useRef(null),d=te.useRef(null),p=te.useRef(!1),E=te.useRef(ve);te.useEffect(()=>{E.current=ve},[ve]);const{account:u,chainData:w,chainType:S,chainTypeMoralis:h,chainId:b,isChainSupported:x}=no(),{config:I}=xi(),F=b&&I?.rpcUrls?.[b]||void 0,Q=te.useCallback(()=>{const R=Nt.getItem("dataBuyToken");if(R)try{return JSON.parse(R)}catch{return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}}return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}},[]),ae=te.useCallback(R=>{Nt.setItem("dataBuyToken",JSON.stringify(R))},[]),ue=te.useCallback(R=>{const G={...Q(),...R};ae(G)},[Q,ae]),Ce=te.useCallback(R=>{J(R),zt.isDesktop&&xe.current?.focus()},[]),Te=te.useCallback(async(R,X)=>{ue({descTokenAddress:R,descTokenDecimals:X||18});try{B(!0);const G=await qe({address:u?.address||"",chain:h});if(G?.success&&G?.data?.result){const Z=G.data.result;if(Z?.length>0){const _=Z.map(K=>({id:K.token_address,text:`${K.name}: ${K.balance_formatted} ${K.symbol} ($${ie(K.usd_value||0)?.decimalPlaces(2).toFormat()||"0"})`,value:r("buttonBuyWith",{symbol:K.symbol}),action:"click_balance_item_user_to_buy_button",fullWidth:!0,extraData:{tokenAddress:K.token_address,symbol:K.symbol,balance:K.balance_formatted,usdValue:K.usd_value,decimals:K.decimals}}));l(r("walletBalanceSpendable",{chain:w?.name||"unknown"}),"bot",void 0,_)}else l(r("walletNoTokensFound",{chain:w?.name||"unknown"}),"bot")}else l(a("walletFetchFailed"),"bot")}catch(G){console.error("Error fetching wallet balance:",G),l(a("walletFetchError"),"bot")}finally{B(!1)}},[ue,u?.address,h,l,w?.name,a,r]),q=te.useCallback(async(R,X,G,Z)=>{const _=[25,50,75,100];ue({srcTokenAddress:R,srcTokenDecimals:Z||18});let K=G||"0";if(R===Ve)try{const $=await fo({chainId:b,rpcUrl:F});if($.isGreaterThan(0)){const pe=$.times(1e6),U=new ie(pt(G,Z||18).toString()).minus(pe);U.isGreaterThan(0)?K=ie(Le(BigInt(U.toFixed(0)),18)).toFixed():K="0"}}catch($){console.warn("getGasPrice for swap native fee deduction failed:",$)}const z=_.map($=>({id:`percent-${$}`,text:`${$}%`,value:r("buttonUsePercent",{percent:String($),symbol:X}),action:"select_percent",extraData:{percent:$,tokenAddress:R,tokenSymbol:X,tokenDecimals:Z||18,tokenBalance:K}}));if(ie(K).isZero()){l(r("insufficientFeeToken",{symbol:X}),"bot");return}l(r("selectAmountOf",{symbol:X,balance:K}),"bot",void 0,z)},[l,b,F,ue,r]),Ae=te.useCallback(async(R,X,G,Z)=>{const _={amount:(parseFloat(X)*(R/100)).toFixed(6)};G!==void 0&&(_.srcTokenAddress=G),Z!==void 0&&(_.srcTokenDecimals=Z),ue(_);const K=Q(),z=pt(K.amount,K.srcTokenDecimals||18).toString(),$=await io({chainId:b,tokenIn:K.srcTokenAddress,tokenInAmount:z,tokenOut:K.descTokenAddress,tokenOutRecipient:u?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if($.success&&$.data){const pe=$.data,re=pe.tokenIn,U=pe.tokenOut,v=ie(Le(BigInt(re.amount||0),re.decimals)).decimalPlaces(6).toFormat(),D=ie(Le(BigInt(U.amount||0),U.decimals)).decimalPlaces(6).toFormat(),ee=K.srcTokenAddress===Ve||K.srcTokenAddress==="";let ne=!1;if(!ee&&u?.address&&pe.tx?.to)try{const we=await uo({tokenAddress:K.srcTokenAddress,ownerAddress:u.address,spenderAddress:pe.tx.to,chainId:b,rpcUrl:F});ne=ie(we.toString()).isLessThan(z)}catch(we){console.warn("Allowance check failed:",we),ne=!0}const fe=pe.estimatedTransactionFee?.total?ie(pe.estimatedTransactionFee.total):ie(0);let ce=ie(0);if(ne&&u?.address)try{const we=vn({tokenAddress:K.srcTokenAddress,spenderAddress:pe.tx?.to||"",fromAddress:u.address,chainId:b});ce=await sn({from:u.address,to:we.to,data:we.data,chainId:b,rpcUrl:F})}catch(we){console.warn("Approve fee estimation failed:",we)}const M=fe.plus(ce),j=w?.nativeCurrency?.symbol||"native";let oe="",H=!1;if(u?.address&&M.isGreaterThan(0))try{const we=await Tn({address:u.address,chainId:b,rpcUrl:F});if(we.isLessThan(M)){H=!0;const le=ie(Le(BigInt(we.toFixed(0)),18)).decimalPlaces(6).toFormat(),Se=ie(Le(BigInt(M.toFixed(0)),18)).decimalPlaces(6).toFormat();oe=r("swapFeeWarning",{symbol:j,balance:le,needed:Se})}}catch(we){console.warn("Fee balance check failed:",we)}const be=`From: ${v} ${re.symbol}
449
449
  ⬇️
450
- To: ${O} ${U.symbol}
450
+ To: ${D} ${U.symbol}
451
451
 
452
452
  `+oe+`
453
- `;if(H)l(be,"bot");else if(ne){const we=be+r("swapNeedApprove",{symbol:re.symbol}),le=[{id:"approve-for-swap",text:r("swapApproveButton",{symbol:re.symbol}),value:r("swapApproveValue",{symbol:re.symbol}),action:"approve_for_swap",fullWidth:!0,extraData:{tokenAddress:K.srcTokenAddress,spenderAddress:pe.tx.to,tokenSymbol:re.symbol,tx:pe.tx}}];l(we,"bot",void 0,le)}else{const we=[{id:"confirm-swap",text:a("swapConfirmButton"),value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:pe.tx}}];l(be+a("swapReadyToProceed"),"bot",void 0,we)}}else l(r("swapEstimationError",{error:$.errorMessage||$.error||"Unknown error"}),"bot")},[Q,ue,l,b,u?.address,w?.nativeCurrency?.symbol,F,a,r]),Ne=te.useCallback(async(R,X,G)=>{try{if(X==="suggested_action"){c.current=R,y(R);return}if(l(R,"user"),N(!1),B(!0),X)switch(await _e(500),X){case"click_buy_item_token_button":await Te(G?.tokenAddress||"",G?.decimals||18);break;case"click_balance_item_user_to_buy_button":await q(G?.tokenAddress||"",G?.symbol||"",G?.balance||"",G?.decimals||18);break;case"select_percent":await Ae(G?.percent||0,G?.tokenBalance||"",G?.tokenAddress||void 0,G?.tokenDecimals||void 0);break;case"confirm_swap":if(G?.tx&&n){const Z=G.tx,_={from:u?.address||"",to:Z.to,data:Z.data,value:Z.value,chainId:b},K=l(a("txProcessing"),"bot");try{B(!1);const z=await n(_);if(z.status==="success"&&z.transactionHash){const $=w?.blockExplorers?.default?.url,pe=$?`
453
+ `;if(H)l(be,"bot");else if(ne){const we=be+r("swapNeedApprove",{symbol:re.symbol}),le=[{id:"approve-for-swap",text:r("swapApproveButton",{symbol:re.symbol}),value:r("swapApproveValue",{symbol:re.symbol}),action:"approve_for_swap",fullWidth:!0,extraData:{tokenAddress:K.srcTokenAddress,spenderAddress:pe.tx.to,tokenSymbol:re.symbol,tx:pe.tx}}];l(we,"bot",void 0,le)}else{const we=[{id:"confirm-swap",text:a("swapConfirmButton"),value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:pe.tx}}];l(be+a("swapReadyToProceed"),"bot",void 0,we)}}else l(r("swapEstimationError",{error:$.errorMessage||$.error||"Unknown error"}),"bot")},[Q,ue,l,b,u?.address,w?.nativeCurrency?.symbol,F,a,r]),Ne=te.useCallback(async(R,X,G)=>{try{if(X==="suggested_action"){c.current=R,y(R);return}if(l(R,"user"),N(!1),B(!0),X)switch(await Ze(500),X){case"click_buy_item_token_button":await Te(G?.tokenAddress||"",G?.decimals||18);break;case"click_balance_item_user_to_buy_button":await q(G?.tokenAddress||"",G?.symbol||"",G?.balance||"",G?.decimals||18);break;case"select_percent":await Ae(G?.percent||0,G?.tokenBalance||"",G?.tokenAddress||void 0,G?.tokenDecimals||void 0);break;case"confirm_swap":if(G?.tx&&n){const Z=G.tx,_={from:u?.address||"",to:Z.to,data:Z.data,value:Z.value,chainId:b},K=l(a("txProcessing"),"bot");try{B(!1);const z=await n(_);if(z.status==="success"&&z.transactionHash){const $=w?.blockExplorers?.default?.url,pe=$?`
454
454
  [View on Explorer](${$}/tx/${z.transactionHash})`:`
455
- Tx: ${z.transactionHash}`;D(K.id,a("txSubmitted")+pe);try{await _e(2e3),(await fo({transactionHash:z.transactionHash,chainId:b||1,rpcUrl:F})).status==="success"?D(K.id,a("txConfirmedSwap")+pe):D(K.id,a("txRevertedSwap")+pe)}catch(re){console.warn("Transaction tracking timeout:",re),D(K.id,a("txTimeout")+pe)}}else if(z.status==="success")D(K.id,a("txSuccessfulSwap"));else{const $=z.error?`
456
- Error: ${z.error}`:"";D(K.id,a("txFailed")+$)}}catch(z){console.error("Transaction error:",z),D(K.id,a("txFailed"))}}else l(a("txDataNotAvailable"),"bot");break;case"approve_for_swap":{const Z=G?.tokenAddress||"",_=G?.spenderAddress||"",K=G?.tokenSymbol||"token",z=G?.tx;if(!Z||!_||!n){l(a("approvalDataNotAvailable"),"bot");break}const $=Tn({tokenAddress:Z,spenderAddress:_,fromAddress:u?.address||"",chainId:b,tokenSymbol:K}),pe={from:$.from,to:$.to,data:$.data,value:$.value,chainId:$.chainId};l(r("approving",{symbol:K}),"bot");try{B(!1);const re=await n(pe);let U=re.status==="success";if(re.status==="success"&&re.transactionHash)try{U=(await fo({transactionHash:re.transactionHash,chainId:b||1,rpcUrl:F})).status==="success"}catch(v){console.warn("Approval tracking timeout:",v),U=!0}if(U){l(r("approvalSuccess",{symbol:K}),"bot");const v=[{id:"confirm-swap-after-approve",text:a("confirmSwapButton"),value:a("swapConfirmValue"),action:"confirm_swap",fullWidth:!0,extraData:{tx:z}}];l(a("approvalConfirmSwap"),"bot",void 0,v)}else{const v=re.error?`
457
- Error: ${re.error}`:"";l(a("approvalFailed")+v,"bot")}}catch(re){console.error("Approval error:",re),l(a("approvalFailed"),"bot")}break}case"click_swap_dest_token":{const Z=G?.tokenAddress||"",_=G?.symbol||"",K=G?.decimals||18;ue({descTokenAddress:Z,descTokenDecimals:K});const z=Q(),$=z.srcTokenAddress||"",pe=$===Ve;try{const re=await Qe({address:u?.address||"",chain:h});if(re?.success&&re?.data?.result){const U=re.data.result;let v="",O="0";if(pe){const ee=U.find(ne=>ne.native_token);v=w?.nativeCurrency?.symbol||"ETH",O=ee?.balance_formatted||"0"}else{const ee=U.find(ne=>ne.token_address.toLowerCase()===$.toLowerCase());ee&&(v=ee.symbol,O=ee.balance_formatted)}if(v&&parseFloat(O)>0){const ee=[25,50,75,100],ne=z.srcTokenDecimals||18,fe=ee.map(ce=>({id:`percent-${ce}`,text:`${ce}%`,value:r("buttonUsePercent",{percent:String(ce),symbol:v}),action:"select_percent",extraData:{percent:ce,tokenAddress:$,tokenSymbol:v,tokenDecimals:ne,tokenBalance:O}}));l(r("swapSelectAmount",{from:v,to:_,balance:O}),"bot",void 0,fe)}else l(a("swapNoSourceToken"),"bot")}else l(a("couldNotFetchBalance"),"bot")}catch(re){console.error("Error in click_swap_dest_token:",re),l(a("couldNotLoadBalance"),"bot")}break}case"select_nft_to_send":{const Z=G?.name||"NFT",_=G?.contractAddress||"",K=G?.tokenId||"",z=G?.tokenStandard||"ERC721",$=G?.amount||"1",pe=G?.image||"",re={contract_address:_,token_id:K,to_address:"",token_standard:z,amount:"1",maxAmount:$,nft_name:Z};l(r("nftSendReview",{name:Z,standard:z,tokenId:K}),"bot",void 0,void 0,{action:"send_nft",parameters:re,status:"pending",nftInfo:{name:Z,image:pe||void 0,tokenId:K,contractAddress:_,tokenStandard:z}});break}default:l(r("actionExecutedFor",{action:X,value:R}),"bot")}else await _e(500),l(r("receivedButtonValue",{value:R}),"bot");B(!1),Jt.isDesktop&&xe.current?.focus()}catch(Z){l(a("errorProcessingRequest"),"bot"),B(!1),console.error("Error handling button click:",Z)}},[u?.address,l,D,w?.blockExplorers?.default?.url,w?.nativeCurrency?.symbol,b,h,Q,Te,q,n,Ae,ue,F,a,r]),Ye=te.useCallback(async()=>{try{B(!0);const R=w?.tokenTrendingDefault||[],[X,G]=await Promise.allSettled([st.getTopGainers(S,"24h",5),st.getTokensDetails(R,S)]);let Z=[];X.status==="fulfilled"&&X.value?.data?Z=[...X.value.data]:console.warn("⚠️ Top gainers failed:"),G.status==="fulfilled"&&G.value?.data?Z=[...G.value.data,...Z]:console.warn("⚠️ Default tokens failed:"),Z=Z.filter((z,$,pe)=>$===pe.findIndex(re=>re.address.toLowerCase()===z.address.toLowerCase()));const _=Z.map(z=>({id:z?.symbol,text:z?.symbol,value:r("buttonBuyToken",{name:z.name,symbol:z?.symbol||""}),action:"click_buy_item_token_button",extraData:{tokenAddress:z?.address||"",symbol:z?.symbol||"",decimals:z?.decimals||18}}));await _e(1e3),B(!1),l(r("trendingTokensHeader",{chain:w?.name||"Unknown"}),"bot");const K=Z.map((z,$)=>`${$+1}. ${z.name} (${z?.auditGoplus?.token_symbol||z.symbol||"Unknown"})
455
+ Tx: ${z.transactionHash}`;O(K.id,a("txSubmitted")+pe);try{await Ze(2e3),(await lo({transactionHash:z.transactionHash,chainId:b||1,rpcUrl:F})).status==="success"?O(K.id,a("txConfirmedSwap")+pe):O(K.id,a("txRevertedSwap")+pe)}catch(re){console.warn("Transaction tracking timeout:",re),O(K.id,a("txTimeout")+pe)}}else if(z.status==="success")O(K.id,a("txSuccessfulSwap"));else{const $=z.error?`
456
+ Error: ${z.error}`:"";O(K.id,a("txFailed")+$)}}catch(z){console.error("Transaction error:",z),O(K.id,a("txFailed"))}}else l(a("txDataNotAvailable"),"bot");break;case"approve_for_swap":{const Z=G?.tokenAddress||"",_=G?.spenderAddress||"",K=G?.tokenSymbol||"token",z=G?.tx;if(!Z||!_||!n){l(a("approvalDataNotAvailable"),"bot");break}const $=vn({tokenAddress:Z,spenderAddress:_,fromAddress:u?.address||"",chainId:b,tokenSymbol:K}),pe={from:$.from,to:$.to,data:$.data,value:$.value,chainId:$.chainId};l(r("approving",{symbol:K}),"bot");try{B(!1);const re=await n(pe);let U=re.status==="success";if(re.status==="success"&&re.transactionHash)try{U=(await lo({transactionHash:re.transactionHash,chainId:b||1,rpcUrl:F})).status==="success"}catch(v){console.warn("Approval tracking timeout:",v),U=!0}if(U){l(r("approvalSuccess",{symbol:K}),"bot");const v=[{id:"confirm-swap-after-approve",text:a("confirmSwapButton"),value:a("swapConfirmValue"),action:"confirm_swap",fullWidth:!0,extraData:{tx:z}}];l(a("approvalConfirmSwap"),"bot",void 0,v)}else{const v=re.error?`
457
+ Error: ${re.error}`:"";l(a("approvalFailed")+v,"bot")}}catch(re){console.error("Approval error:",re),l(a("approvalFailed"),"bot")}break}case"click_swap_dest_token":{const Z=G?.tokenAddress||"",_=G?.symbol||"",K=G?.decimals||18;ue({descTokenAddress:Z,descTokenDecimals:K});const z=Q(),$=z.srcTokenAddress||"",pe=$===Ve;try{const re=await qe({address:u?.address||"",chain:h});if(re?.success&&re?.data?.result){const U=re.data.result;let v="",D="0";if(pe){const ee=U.find(ne=>ne.native_token);v=w?.nativeCurrency?.symbol||"ETH",D=ee?.balance_formatted||"0"}else{const ee=U.find(ne=>ne.token_address.toLowerCase()===$.toLowerCase());ee&&(v=ee.symbol,D=ee.balance_formatted)}if(v&&parseFloat(D)>0){const ee=[25,50,75,100],ne=z.srcTokenDecimals||18,fe=ee.map(ce=>({id:`percent-${ce}`,text:`${ce}%`,value:r("buttonUsePercent",{percent:String(ce),symbol:v}),action:"select_percent",extraData:{percent:ce,tokenAddress:$,tokenSymbol:v,tokenDecimals:ne,tokenBalance:D}}));l(r("swapSelectAmount",{from:v,to:_,balance:D}),"bot",void 0,fe)}else l(a("swapNoSourceToken"),"bot")}else l(a("couldNotFetchBalance"),"bot")}catch(re){console.error("Error in click_swap_dest_token:",re),l(a("couldNotLoadBalance"),"bot")}break}case"select_nft_to_send":{const Z=G?.name||"NFT",_=G?.contractAddress||"",K=G?.tokenId||"",z=G?.tokenStandard||"ERC721",$=G?.amount||"1",pe=G?.image||"",re={contract_address:_,token_id:K,to_address:"",token_standard:z,amount:"1",maxAmount:$,nft_name:Z};l(r("nftSendReview",{name:Z,standard:z,tokenId:K}),"bot",void 0,void 0,{action:"send_nft",parameters:re,status:"pending",nftInfo:{name:Z,image:pe||void 0,tokenId:K,contractAddress:_,tokenStandard:z}});break}default:l(r("actionExecutedFor",{action:X,value:R}),"bot")}else await Ze(500),l(r("receivedButtonValue",{value:R}),"bot");B(!1),zt.isDesktop&&xe.current?.focus()}catch(Z){l(a("errorProcessingRequest"),"bot"),B(!1),console.error("Error handling button click:",Z)}},[u?.address,l,O,w?.blockExplorers?.default?.url,w?.nativeCurrency?.symbol,b,h,Q,Te,q,n,Ae,ue,F,a,r]),Ge=te.useCallback(async()=>{try{B(!0);const R=w?.tokenTrendingDefault||[],[X,G]=await Promise.allSettled([ot.getTopGainers(S,"24h",5),ot.getTokensDetails(R,S)]);let Z=[];X.status==="fulfilled"&&X.value?.data?Z=[...X.value.data]:console.warn("⚠️ Top gainers failed:"),G.status==="fulfilled"&&G.value?.data?Z=[...G.value.data,...Z]:console.warn("⚠️ Default tokens failed:"),Z=Z.filter((z,$,pe)=>$===pe.findIndex(re=>re.address.toLowerCase()===z.address.toLowerCase()));const _=Z.map(z=>({id:z?.symbol,text:z?.symbol,value:r("buttonBuyToken",{name:z.name,symbol:z?.symbol||""}),action:"click_buy_item_token_button",extraData:{tokenAddress:z?.address||"",symbol:z?.symbol||"",decimals:z?.decimals||18}}));await Ze(1e3),B(!1),l(r("trendingTokensHeader",{chain:w?.name||"Unknown"}),"bot");const K=Z.map((z,$)=>`${$+1}. ${z.name} (${z?.auditGoplus?.token_symbol||z.symbol||"Unknown"})
458
458
  $${ie(z?.price||0).decimalPlaces(4).toFormat()} (${z.price_change_percentage_24h||z.priceChange}%)
459
459
 
460
460
  ---
461
461
  `).join(`
462
- `);l(`${K}${a("trendingTokensQuestion")}`,"bot",void 0,_)}catch(R){console.error("Error fetching trending tokens:",R),l(a("trendingTokensError"),"bot")}finally{B(!1)}},[l,w?.name,w?.tokenTrendingDefault,S,a,r]),Xe=te.useCallback(async()=>{try{B(!0);const R=await kn({address:u?.address||"",chain:h,limit:100,exclude_spam:!1});if(R?.success&&R?.data?.result&&R.data.result.length>0){const X=R.data.result,G=X.map(_=>{const K=_.normalized_metadata?.name||_.name||`#${_.token_id}`,z=_.normalized_metadata?.image||_.media?.original_media_url||"";return{id:`${_.token_address}-${_.token_id}`,text:`${K} (${_.symbol||_.contract_type}) - ${_.token_id}`,value:r("buttonSendNft",{name:K}),action:"select_nft_to_send",fullWidth:!0,extraData:{contractAddress:_.token_address,tokenId:_.token_id,tokenStandard:_.contract_type,name:K,symbol:_.symbol,amount:_.amount,image:z}}}),Z=X.map((_,K)=>{const z=_.normalized_metadata?.name||_.name||`#${_.token_id}`,$=_.contract_type==="ERC1155"?` (x${_.amount})`:"",pe=_.normalized_metadata?.image||_.media?.original_media_url||"",re=pe?`![${z}](${pe})
462
+ `);l(`${K}${a("trendingTokensQuestion")}`,"bot",void 0,_)}catch(R){console.error("Error fetching trending tokens:",R),l(a("trendingTokensError"),"bot")}finally{B(!1)}},[l,w?.name,w?.tokenTrendingDefault,S,a,r]),Qe=te.useCallback(async()=>{try{B(!0);const R=await An({address:u?.address||"",chain:h,limit:100,exclude_spam:!1});if(R?.success&&R?.data?.result&&R.data.result.length>0){const X=R.data.result,G=X.map(_=>{const K=_.normalized_metadata?.name||_.name||`#${_.token_id}`,z=_.normalized_metadata?.image||_.media?.original_media_url||"";return{id:`${_.token_address}-${_.token_id}`,text:`${K} (${_.symbol||_.contract_type}) - ${_.token_id}`,value:r("buttonSendNft",{name:K}),action:"select_nft_to_send",fullWidth:!0,extraData:{contractAddress:_.token_address,tokenId:_.token_id,tokenStandard:_.contract_type,name:K,symbol:_.symbol,amount:_.amount,image:z}}}),Z=X.map((_,K)=>{const z=_.normalized_metadata?.name||_.name||`#${_.token_id}`,$=_.contract_type==="ERC1155"?` (x${_.amount})`:"",pe=_.normalized_metadata?.image||_.media?.original_media_url||"",re=pe?`![${z}](${pe})
463
463
  `:"🖼️ ";return`${K+1}. ${re}**${z}**${$}
464
464
  ${_.symbol||_.contract_type} | Token ID: ${_.token_id}`}).join(`
465
465
 
466
- `);await _e(500),B(!1),l(r("nftCollectionHeader",{count:String(X.length),list:Z}),"bot",void 0,G)}else B(!1),l(a("nftNoCollection"),"bot")}catch(R){console.error("Error fetching NFTs:",R),B(!1),l(a("nftFetchError"),"bot")}},[u?.address,h,l,a,r]),Ke=te.useCallback(async()=>{try{B(!0);const R=await Qe({address:u?.address||"",chain:h});if(R?.success&&R?.data?.result&&R.data.result.length>0){const X=R.data.result,G=X.flatMap(_=>[{id:`send-${_.token_address}`,text:r("buttonSendToken",{symbol:_.symbol}),value:r("buttonSendToken",{symbol:_.symbol}),action:"suggested_action",fullWidth:!!Jt.isMobile},{id:`buy-more-${_.token_address}`,text:r("buttonBuyMoreToken",{symbol:_.symbol}),value:r("buttonBuyMoreToken",{symbol:_.symbol}),action:"suggested_action",fullWidth:!!Jt.isMobile}]),Z=X.map((_,K)=>{const z=_.usd_value!==void 0?` ≈ $${ie(_.usd_value).decimalPlaces(2).toFormat()}`:"";return`${K+1}. **${_.name}** (${_.symbol})
466
+ `);await Ze(500),B(!1),l(r("nftCollectionHeader",{count:String(X.length),list:Z}),"bot",void 0,G)}else B(!1),l(a("nftNoCollection"),"bot")}catch(R){console.error("Error fetching NFTs:",R),B(!1),l(a("nftFetchError"),"bot")}},[u?.address,h,l,a,r]),Xe=te.useCallback(async()=>{try{B(!0);const R=await qe({address:u?.address||"",chain:h});if(R?.success&&R?.data?.result&&R.data.result.length>0){const X=R.data.result,G=X.flatMap(_=>[{id:`send-${_.token_address}`,text:r("buttonSendToken",{symbol:_.symbol}),value:r("buttonSendToken",{symbol:_.symbol}),action:"suggested_action",fullWidth:!!zt.isMobile},{id:`buy-more-${_.token_address}`,text:r("buttonBuyMoreToken",{symbol:_.symbol}),value:r("buttonBuyMoreToken",{symbol:_.symbol}),action:"suggested_action",fullWidth:!!zt.isMobile}]),Z=X.map((_,K)=>{const z=_.usd_value!==void 0?` ≈ $${ie(_.usd_value).decimalPlaces(2).toFormat()}`:"";return`${K+1}. **${_.name}** (${_.symbol})
467
467
  Balance: ${_.balance_formatted}${z}`}).join(`
468
468
 
469
- `);await _e(500),B(!1),l(r("viewBalancesHeader",{chain:w?.name||"this chain",list:Z}),"bot",void 0,G)}else B(!1),l(a("viewBalancesEmpty"),"bot")}catch(R){console.error("Error fetching balances:",R),B(!1),l(a("viewBalancesFetchError"),"bot")}},[u?.address,h,l,w?.name,a,r]),We=te.useMemo(()=>[{id:"ask",icon:"❓",text:a("suggestionAskText"),action:async()=>{N(!1),B(!0),l(a("suggestionAskUserMessage"),"user"),await _e(1e3),B(!1),l(a("suggestionAskBotReply"),"bot")}},{id:"buy",icon:"💰",text:a("suggestionBuyText"),action:async()=>{N(!1),l(a("suggestionBuyText"),"user"),Me(u?.address||"")&&x?await Ye():(B(!0),await _e(1e3),Me(u?.address||"")&&!x?l(a("walletConnectedChainUnsupported"),"bot"):l(a("walletNotConnected"),"bot"),B(!1))}}],[l,u?.address,Ye,a,x]),$e=R=>{if(R===0)return!0;const X=i[R],G=i[R-1],Z=new Date(X.timestamp),_=new Date(G.timestamp);return Z.setHours(0,0,0,0),_.setHours(0,0,0,0),Z.getTime()!==_.getTime()};te.useEffect(()=>{he.current?.scrollIntoView({behavior:"smooth"})},[i]),te.useEffect(()=>{e?(xe.current&&Jt.isDesktop&&xe.current.focus(),he.current?.scrollIntoView({behavior:"instant"}),p.current&&d.current?Date.now()-d.current>5e3&&N(!0):N(!0),d.current=null,p.current=!1,setTimeout(()=>{he.current?.scrollIntoView({behavior:"smooth"})},50)):(d.current=Date.now(),p.current=!E.current)},[e]),te.useEffect(()=>{const R=X=>{X.key==="Escape"&&e&&t()};return document.addEventListener("keydown",R),()=>document.removeEventListener("keydown",R)},[e,t]);const Fe=te.useCallback(async()=>{if(A?.trim()===""||T)return;const R=W,X=l(A?.trim(),"user",W?.id);y(""),J(null),B(!0),N(!1),B(!0);try{let G,Z;const _=i.slice(-20);let K="";if(_.length>0){K=`
469
+ `);await Ze(500),B(!1),l(r("viewBalancesHeader",{chain:w?.name||"this chain",list:Z}),"bot",void 0,G)}else B(!1),l(a("viewBalancesEmpty"),"bot")}catch(R){console.error("Error fetching balances:",R),B(!1),l(a("viewBalancesFetchError"),"bot")}},[u?.address,h,l,w?.name,a,r]),We=te.useMemo(()=>[{id:"ask",icon:"❓",text:a("suggestionAskText"),action:async()=>{N(!1),B(!0),l(a("suggestionAskUserMessage"),"user"),await Ze(1e3),B(!1),l(a("suggestionAskBotReply"),"bot")}},{id:"buy",icon:"💰",text:a("suggestionBuyText"),action:async()=>{N(!1),l(a("suggestionBuyText"),"user"),Me(u?.address||"")&&x?await Ge():(B(!0),await Ze(1e3),Me(u?.address||"")&&!x?l(a("walletConnectedChainUnsupported"),"bot"):l(a("walletNotConnected"),"bot"),B(!1))}}],[l,u?.address,Ge,a,x]),_e=R=>{if(R===0)return!0;const X=i[R],G=i[R-1],Z=new Date(X.timestamp),_=new Date(G.timestamp);return Z.setHours(0,0,0,0),_.setHours(0,0,0,0),Z.getTime()!==_.getTime()};te.useEffect(()=>{he.current?.scrollIntoView({behavior:"smooth"})},[i]),te.useEffect(()=>{e?(xe.current&&zt.isDesktop&&xe.current.focus(),he.current?.scrollIntoView({behavior:"instant"}),p.current&&d.current?Date.now()-d.current>5e3&&N(!0):N(!0),d.current=null,p.current=!1,setTimeout(()=>{he.current?.scrollIntoView({behavior:"smooth"})},50)):(d.current=Date.now(),p.current=!E.current)},[e]),te.useEffect(()=>{const R=X=>{X.key==="Escape"&&e&&t()};return document.addEventListener("keydown",R),()=>document.removeEventListener("keydown",R)},[e,t]);const Fe=te.useCallback(async()=>{if(A?.trim()===""||T)return;const R=W,X=l(A?.trim(),"user",W?.id);y(""),J(null),B(!0),N(!1),B(!0);try{let G,Z;const _=i.slice(-20);let K="";if(_.length>0){K=`
470
470
 
471
471
  ## CONVERSATION HISTORY:
472
472
  `;for(const re of _)if(re.sender==="user")K+=`User: ${re.text}
@@ -475,20 +475,20 @@ $${ie(z?.price||0).decimalPlaces(4).toFormat()} (${z.price_change_percentage_24h
475
475
  ---
476
476
  `}let z=A?.trim();R&&(z=`[Replying to ${R.sender==="user"?"my previous":"your"} message: "${R.text}"]
477
477
 
478
- ${z}`);try{if((await Fs.checkTypeQuestion(z,K))?.startsWith("no")){const U=await Fs.generateContent(z,K);let v=null;try{let O=U?.trim();O.startsWith("```json")?O=O.replace(/^```json\s*/,"").replace(/\s*```$/,""):O.startsWith("```")&&(O=O.replace(/^```\s*/,"").replace(/\s*```$/,"")),v=JSON.parse(O)}catch{v=null}B(!1),l(v?.message||U,"bot");return}}catch(re){console.warn("Error checking question type with Gemini:",re)}if(u?.address&&x)try{const[re,U]=await Promise.allSettled([Qe({address:u.address,chain:h}),kn({address:u.address,chain:h,limit:100,exclude_spam:!0})]);re.status==="fulfilled"&&re.value?.success&&re.value?.data?.result&&(G=re.value.data.result.map(v=>({symbol:v.symbol,name:v.name,balance_formatted:v.balance_formatted,usd_value:v.usd_value,native_token:v.native_token,token_address:v.token_address}))),U.status==="fulfilled"&&U.value?.success&&U.value?.data?.result&&(Z=U.value.data.result.map(v=>({name:v.normalized_metadata?.name||v.name||`#${v.token_id}`,token_address:v.token_address,token_id:v.token_id,contract_type:v.contract_type||"",amount:v.amount||"1"})))}catch{}const $=_i({walletAddress:u?.address||void 0,chainName:w?.name||void 0,chainId:b||void 0,nativeSymbol:w?.nativeCurrency?.symbol||void 0,walletTokens:G,walletNfts:Z}),pe=await Hi({prompt:z,model:"gpt-4.1-mini",stream:!1,systemPrompt:$+K});if(pe.success&&pe.data){const re=pe.data.text||"";let U=null;try{let v=re?.trim();v.startsWith("```json")?v=v.replace(/^```json\s*/,"").replace(/\s*```$/,""):v.startsWith("```")&&(v=v.replace(/^```\s*/,"").replace(/\s*```$/,"")),U=JSON.parse(v)}catch{U=null}if(U&&U.action&&U.action!=="chat")if(U.action==="buy_token"){const v=U.parameters?.token_symbol||"";let O=U.parameters?.contract_address||"",ee=18;if(O.toLowerCase()==="native"&&(O=Ve),O&&O!==Ve)try{const ne=await st.getTokensDetails([O],S);ne?.data?.[0]&&(ee=ne.data[0].decimals||18)}catch(ne){console.warn("getTokensDetails for buy_token failed:",ne)}if(!O&&v&&u?.address)try{const ne=await Qe({address:u.address,chain:h});if(ne?.success&&ne?.data?.result){const fe=ne.data.result,ce=fe.find(M=>M.token_address.toLowerCase()===O.toLowerCase())||fe.find(M=>M.symbol.toUpperCase()===v.toUpperCase());ce&&(O=ce.token_address,ee=ce.decimals)}if(!O){const fe=w.tokenTrendingDefault||[],[ce,M]=await Promise.allSettled([st.getTopGainers(S,"24h",10),st.getTokensDetails(fe,S)]),j=[];ce.status==="fulfilled"&&ce.value?.data&&j.push(...ce.value.data),M.status==="fulfilled"&&M.value?.data&&j.push(...M.value.data);const oe=j.find(H=>H.address?.toLowerCase()===O.toLowerCase())||j.find(H=>H.symbol?.toUpperCase()===v.toUpperCase());oe&&(O=oe.address,ee=oe.decimals||18)}}catch(ne){console.warn("Token lookup for buy failed:",ne)}O?(l(U.message||r("buyTokenHelp",{symbol:v}),"bot",X.id),await Te(O,ee)):(l(U.message||r("tokenNotFoundOnChain",{symbol:v}),"bot",X.id),await Ye())}else if(U.action==="swap_token"){const v={...U.parameters||{}},O=v.token_in==="native"||v.token_in_symbol?.toUpperCase()===w?.nativeCurrency?.symbol?.toUpperCase(),ee=v.token_out==="native"||v.token_out_symbol?.toUpperCase()===w?.nativeCurrency?.symbol?.toUpperCase();if(ee&&(v.token_out=Ve),!O&&(v.token_in||v.token_in_symbol)&&u?.address)try{const M=await Qe({address:u.address,chain:h});if(M?.success&&M?.data?.result){const j=M.data.result,oe=v.token_in?j.find(H=>H.token_address.toLowerCase()===v.token_in.toLowerCase()):j.find(H=>H.symbol.toUpperCase()===v.token_in_symbol.toUpperCase());oe&&(v.token_in=oe.token_address,v.token_in_decimals=String(oe.decimals))}}catch(M){console.warn("Resolve token_in failed:",M)}if(!ee&&(v.token_out||v.token_out_symbol)&&u?.address)try{const M=await Qe({address:u.address,chain:h});if(M?.success&&M?.data?.result){const j=M.data.result,oe=v.token_out?j.find(H=>H.token_address.toLowerCase()===v.token_out.toLowerCase()):j.find(H=>H.symbol.toUpperCase()===v.token_out_symbol.toUpperCase());oe&&(v.token_out=oe.token_address,v.token_out_decimals=String(oe.decimals))}}catch(M){console.warn("Resolve token_out failed:",M)}const ne=!!(v.token_in||O),fe=!!v.token_out,ce=!!v.amount;if(ne&&fe&&ce){l(U.message||a("swapPreparing"),"bot",X.id);try{const M=[];v.token_out&&M.push(v.token_out),v.token_in&&!O&&M.push(v.token_in);let j=18,oe=18;if(M.length>0)try{const le=await st.getTokensDetails(M,S);if(le?.data)for(const Se of le.data)!O&&Se.address.toLowerCase()===v.token_in?.toLowerCase()&&(j=Se.decimals||18),Se.address.toLowerCase()===v.token_out?.toLowerCase()&&(oe=Se.decimals||18)}catch(le){console.warn("getTokensDetails failed, using default decimals:",le)}if(u?.address)try{const le=await Qe({address:u.address,chain:h});if(le?.success&&le?.data?.result){const Se=le.data.result;if(O){const De=Se.find(ze=>ze.native_token);let Ie=De?.balance_formatted||"0";try{const ze=await mo({chainId:b,rpcUrl:F});if(ze.isGreaterThan(0)){const dt=ze.times(1e6),Ot=new ie(De?.balance||"0").minus(dt);Ot.isGreaterThan(0)?Ie=ie(Le(BigInt(Ot.toFixed(0)),De?.decimals||18)).toFixed():Ie="0"}}catch(ze){console.warn("getGasPrice for swap native fee deduction failed:",ze)}v.amount=ho(v.amount,Ie);const Oe=parseFloat(Ie),et=parseFloat(v.amount);if(ie(Oe).lte(0)){l(r("formInsufficientBalance",{balance:ie(Oe).decimalPlaces(6).toFixed(),symbol:w?.nativeCurrency?.symbol||"native"}),"bot"),B(!1);return}if(ie(Oe).lt(et)){l(r("swapInsufficientNativeBalance",{balance:ie(Oe).decimalPlaces(6).toFixed(),symbol:w?.nativeCurrency?.symbol||"native",amount:v.amount}),"bot"),B(!1);return}}else{const De=Se.find(et=>et.token_address.toLowerCase()===v.token_in?.toLowerCase());if(!De){l(r("swapTokenNotInWallet",{symbol:v.token_in_symbol||v.token_in}),"bot"),B(!1);return}v.amount=ho(v.amount,De.balance_formatted||"0");const Ie=parseFloat(De.balance_formatted||"0"),Oe=parseFloat(v.amount);if(ie(Ie).lt(Oe)){l(r("swapInsufficientTokenBalance",{balance:ie(Ie).decimalPlaces(6).toFixed(),symbol:De.symbol,amount:v.amount}),"bot"),B(!1);return}}}}catch(le){console.warn("Balance check failed:",le)}const H=O?Ve:v.token_in;ue({srcTokenAddress:H,descTokenAddress:v.token_out,amount:v.amount,srcTokenDecimals:j,descTokenDecimals:oe});const be=mt(v.amount,j).toString(),we=await lo({chainId:b,tokenIn:H,tokenInAmount:be,tokenOut:v.token_out,tokenOutRecipient:u?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(we.success&&we.data){const le=we.data,Se=le.tokenIn,De=le.tokenOut,Ie=ie(Le(BigInt(Se.amount||0),Se.decimals)).decimalPlaces(6).toFormat(),Oe=ie(Le(BigInt(De.amount||0),De.decimals)).decimalPlaces(6).toFormat();let et=!1;if(!O&&u?.address&&le.tx?.to)try{const Ue=await po({tokenAddress:H,ownerAddress:u.address,spenderAddress:le.tx.to,chainId:b,rpcUrl:F});et=ie(Ue.toString()).isLessThan(be)}catch(Ue){console.warn("Allowance check failed (CASE 1):",Ue),et=!0}const ze=le.estimatedTransactionFee?.total?ie(le.estimatedTransactionFee.total):ie(0);let dt=ie(0);if(et&&u?.address)try{const Ue=Tn({tokenAddress:H,spenderAddress:le.tx?.to||"",fromAddress:u.address,chainId:b});dt=await an({from:u.address,to:Ue.to,data:Ue.data,chainId:b,rpcUrl:F})}catch(Ue){console.warn("Approve fee estimation failed:",Ue)}const Je=ze.plus(dt),Ot=w?.nativeCurrency?.symbol||"native";let cn="",ln=!1;if(u?.address&&Je.isGreaterThan(0))try{const Ue=await Cn({address:u.address,chainId:b,rpcUrl:F});if(Ue.isLessThan(Je)){ln=!0;const En=ie(Le(BigInt(Ue.toFixed(0)),18)).decimalPlaces(6).toFormat(),Sn=ie(Le(BigInt(Je.toFixed(0)),18)).decimalPlaces(6).toFormat();cn=r("swapFeeWarning",{symbol:Ot,balance:En,needed:Sn})}}catch(Ue){console.warn("Fee balance check failed:",Ue)}const jt=`From: ${Ie} ${Se.symbol}
478
+ ${z}`);try{if((await Is.checkTypeQuestion(z,K))?.startsWith("no")){const U=await Is.generateContent(z,K);let v=null;try{let D=U?.trim();D.startsWith("```json")?D=D.replace(/^```json\s*/,"").replace(/\s*```$/,""):D.startsWith("```")&&(D=D.replace(/^```\s*/,"").replace(/\s*```$/,"")),v=JSON.parse(D)}catch{v=null}B(!1),l(v?.message||U,"bot");return}}catch(re){console.warn("Error checking question type with Gemini:",re)}if(u?.address&&x)try{const[re,U]=await Promise.allSettled([qe({address:u.address,chain:h}),An({address:u.address,chain:h,limit:100,exclude_spam:!0})]);re.status==="fulfilled"&&re.value?.success&&re.value?.data?.result&&(G=re.value.data.result.map(v=>({symbol:v.symbol,name:v.name,balance_formatted:v.balance_formatted,usd_value:v.usd_value,native_token:v.native_token,token_address:v.token_address}))),U.status==="fulfilled"&&U.value?.success&&U.value?.data?.result&&(Z=U.value.data.result.map(v=>({name:v.normalized_metadata?.name||v.name||`#${v.token_id}`,token_address:v.token_address,token_id:v.token_id,contract_type:v.contract_type||"",amount:v.amount||"1"})))}catch{}const $=Ji({walletAddress:u?.address||void 0,chainName:w?.name||void 0,chainId:b||void 0,nativeSymbol:w?.nativeCurrency?.symbol||void 0,walletTokens:G,walletNfts:Z}),pe=await Pi({prompt:z,model:"gpt-4.1-mini",stream:!1,systemPrompt:$+K});if(pe.success&&pe.data){const re=pe.data.text||"";let U=null;try{let v=re?.trim();v.startsWith("```json")?v=v.replace(/^```json\s*/,"").replace(/\s*```$/,""):v.startsWith("```")&&(v=v.replace(/^```\s*/,"").replace(/\s*```$/,"")),U=JSON.parse(v)}catch{U=null}if(U&&U.action&&U.action!=="chat")if(U.action==="buy_token"){const v=U.parameters?.token_symbol||"";let D=U.parameters?.contract_address||"",ee=18;if(D.toLowerCase()==="native"&&(D=Ve),D&&D!==Ve)try{const ne=await ot.getTokensDetails([D],S);ne?.data?.[0]&&(ee=ne.data[0].decimals||18)}catch(ne){console.warn("getTokensDetails for buy_token failed:",ne)}if(!D&&v&&u?.address)try{const ne=await qe({address:u.address,chain:h});if(ne?.success&&ne?.data?.result){const fe=ne.data.result,ce=fe.find(M=>M.token_address.toLowerCase()===D.toLowerCase())||fe.find(M=>M.symbol.toUpperCase()===v.toUpperCase());ce&&(D=ce.token_address,ee=ce.decimals)}if(!D){const fe=w.tokenTrendingDefault||[],[ce,M]=await Promise.allSettled([ot.getTopGainers(S,"24h",10),ot.getTokensDetails(fe,S)]),j=[];ce.status==="fulfilled"&&ce.value?.data&&j.push(...ce.value.data),M.status==="fulfilled"&&M.value?.data&&j.push(...M.value.data);const oe=j.find(H=>H.address?.toLowerCase()===D.toLowerCase())||j.find(H=>H.symbol?.toUpperCase()===v.toUpperCase());oe&&(D=oe.address,ee=oe.decimals||18)}}catch(ne){console.warn("Token lookup for buy failed:",ne)}D?(l(U.message||r("buyTokenHelp",{symbol:v}),"bot",X.id),await Te(D,ee)):(l(U.message||r("tokenNotFoundOnChain",{symbol:v}),"bot",X.id),await Ge())}else if(U.action==="swap_token"){const v={...U.parameters||{}},D=v.token_in==="native"||v.token_in_symbol?.toUpperCase()===w?.nativeCurrency?.symbol?.toUpperCase(),ee=v.token_out==="native"||v.token_out_symbol?.toUpperCase()===w?.nativeCurrency?.symbol?.toUpperCase();if(ee&&(v.token_out=Ve),!D&&(v.token_in||v.token_in_symbol)&&u?.address)try{const M=await qe({address:u.address,chain:h});if(M?.success&&M?.data?.result){const j=M.data.result,oe=v.token_in?j.find(H=>H.token_address.toLowerCase()===v.token_in.toLowerCase()):j.find(H=>H.symbol.toUpperCase()===v.token_in_symbol.toUpperCase());oe&&(v.token_in=oe.token_address,v.token_in_decimals=String(oe.decimals))}}catch(M){console.warn("Resolve token_in failed:",M)}if(!ee&&(v.token_out||v.token_out_symbol)&&u?.address)try{const M=await qe({address:u.address,chain:h});if(M?.success&&M?.data?.result){const j=M.data.result,oe=v.token_out?j.find(H=>H.token_address.toLowerCase()===v.token_out.toLowerCase()):j.find(H=>H.symbol.toUpperCase()===v.token_out_symbol.toUpperCase());oe&&(v.token_out=oe.token_address,v.token_out_decimals=String(oe.decimals))}}catch(M){console.warn("Resolve token_out failed:",M)}const ne=!!(v.token_in||D),fe=!!v.token_out,ce=!!v.amount;if(ne&&fe&&ce){l(U.message||a("swapPreparing"),"bot",X.id);try{const M=[];v.token_out&&M.push(v.token_out),v.token_in&&!D&&M.push(v.token_in);let j=18,oe=18;if(M.length>0)try{const le=await ot.getTokensDetails(M,S);if(le?.data)for(const Se of le.data)!D&&Se.address.toLowerCase()===v.token_in?.toLowerCase()&&(j=Se.decimals||18),Se.address.toLowerCase()===v.token_out?.toLowerCase()&&(oe=Se.decimals||18)}catch(le){console.warn("getTokensDetails failed, using default decimals:",le)}if(u?.address)try{const le=await qe({address:u.address,chain:h});if(le?.success&&le?.data?.result){const Se=le.data.result;if(D){const Oe=Se.find(Ye=>Ye.native_token);let Ie=Oe?.balance_formatted||"0";try{const Ye=await fo({chainId:b,rpcUrl:F});if(Ye.isGreaterThan(0)){const lt=Ye.times(1e6),Ot=new ie(Oe?.balance||"0").minus(lt);Ot.isGreaterThan(0)?Ie=ie(Le(BigInt(Ot.toFixed(0)),Oe?.decimals||18)).toFixed():Ie="0"}}catch(Ye){console.warn("getGasPrice for swap native fee deduction failed:",Ye)}v.amount=po(v.amount,Ie);const De=parseFloat(Ie),$e=parseFloat(v.amount);if(ie(De).lte(0)){l(r("formInsufficientBalance",{balance:ie(De).decimalPlaces(6).toFixed(),symbol:w?.nativeCurrency?.symbol||"native"}),"bot"),B(!1);return}if(ie(De).lt($e)){l(r("swapInsufficientNativeBalance",{balance:ie(De).decimalPlaces(6).toFixed(),symbol:w?.nativeCurrency?.symbol||"native",amount:v.amount}),"bot"),B(!1);return}}else{const Oe=Se.find($e=>$e.token_address.toLowerCase()===v.token_in?.toLowerCase());if(!Oe){l(r("swapTokenNotInWallet",{symbol:v.token_in_symbol||v.token_in}),"bot"),B(!1);return}v.amount=po(v.amount,Oe.balance_formatted||"0");const Ie=parseFloat(Oe.balance_formatted||"0"),De=parseFloat(v.amount);if(ie(Ie).lt(De)){l(r("swapInsufficientTokenBalance",{balance:ie(Ie).decimalPlaces(6).toFixed(),symbol:Oe.symbol,amount:v.amount}),"bot"),B(!1);return}}}}catch(le){console.warn("Balance check failed:",le)}const H=D?Ve:v.token_in;ue({srcTokenAddress:H,descTokenAddress:v.token_out,amount:v.amount,srcTokenDecimals:j,descTokenDecimals:oe});const be=pt(v.amount,j).toString(),we=await io({chainId:b,tokenIn:H,tokenInAmount:be,tokenOut:v.token_out,tokenOutRecipient:u?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(we.success&&we.data){const le=we.data,Se=le.tokenIn,Oe=le.tokenOut,Ie=ie(Le(BigInt(Se.amount||0),Se.decimals)).decimalPlaces(6).toFormat(),De=ie(Le(BigInt(Oe.amount||0),Oe.decimals)).decimalPlaces(6).toFormat();let $e=!1;if(!D&&u?.address&&le.tx?.to)try{const Ue=await uo({tokenAddress:H,ownerAddress:u.address,spenderAddress:le.tx.to,chainId:b,rpcUrl:F});$e=ie(Ue.toString()).isLessThan(be)}catch(Ue){console.warn("Allowance check failed (CASE 1):",Ue),$e=!0}const Ye=le.estimatedTransactionFee?.total?ie(le.estimatedTransactionFee.total):ie(0);let lt=ie(0);if($e&&u?.address)try{const Ue=vn({tokenAddress:H,spenderAddress:le.tx?.to||"",fromAddress:u.address,chainId:b});lt=await sn({from:u.address,to:Ue.to,data:Ue.data,chainId:b,rpcUrl:F})}catch(Ue){console.warn("Approve fee estimation failed:",Ue)}const ze=Ye.plus(lt),Ot=w?.nativeCurrency?.symbol||"native";let rn="",cn=!1;if(u?.address&&ze.isGreaterThan(0))try{const Ue=await Tn({address:u.address,chainId:b,rpcUrl:F});if(Ue.isLessThan(ze)){cn=!0;const Cn=ie(Le(BigInt(Ue.toFixed(0)),18)).decimalPlaces(6).toFormat(),En=ie(Le(BigInt(ze.toFixed(0)),18)).decimalPlaces(6).toFormat();rn=r("swapFeeWarning",{symbol:Ot,balance:Cn,needed:En})}}catch(Ue){console.warn("Fee balance check failed:",Ue)}const Jt=`From: ${Ie} ${Se.symbol}
479
479
  ⬇️
480
- To: ${Oe} ${De.symbol}
480
+ To: ${De} ${Oe.symbol}
481
481
 
482
- `+cn+`
483
- `;if(ln)l(jt,"bot");else if(et){const Ue=[{id:"approve-for-swap",text:r("swapApproveButton",{symbol:Se.symbol}),value:r("swapApproveValue",{symbol:Se.symbol}),action:"approve_for_swap",fullWidth:!0,extraData:{tokenAddress:H,spenderAddress:le.tx.to,tokenSymbol:Se.symbol,tx:le.tx}}];l(jt+r("swapNeedApprove",{symbol:Se.symbol}),"bot",void 0,Ue)}else{const Ue=[{id:"confirm-swap",text:a("swapConfirmYes"),value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:le.tx}}];l(jt+a("swapReadyToProceed"),"bot",void 0,Ue)}}else l(r("swapEstimationError",{error:we.errorMessage||we.error||"Unknown error"}),"bot")}catch(M){console.error("Swap estimation error:",M),l(a("swapEstimationFailed"),"bot")}}else if(ne&&fe&&!ce){let M=O?18:parseInt(v.token_in_decimals||"18",10),j=parseInt(v.token_out_decimals||"18",10);const oe=[];if(v.token_out&&oe.push(v.token_out),v.token_in&&!O&&oe.push(v.token_in),oe.length>0)try{const H=await st.getTokensDetails(oe,S);if(H?.data)for(const be of H.data)!O&&be.address.toLowerCase()===v.token_in?.toLowerCase()&&(M=be.decimals||M),be.address.toLowerCase()===v.token_out?.toLowerCase()&&(j=be.decimals||j)}catch(H){console.warn("getTokensDetails failed in CASE 2, using fallback decimals:",H)}if(ue({descTokenAddress:v.token_out,descTokenDecimals:j}),O)try{const H=await Qe({address:u?.address||"",chain:h});if(H?.success&&H?.data?.result){const we=H.data.result.find(Oe=>Oe.native_token),le=w?.nativeCurrency?.symbol||"ETH";let Se=we?.balance_formatted||"0";try{const Oe=await mo({chainId:b,rpcUrl:F});if(Oe.isGreaterThan(0)){const et=Oe.times(1e6),dt=new ie(we?.balance||"0").minus(et);dt.isGreaterThan(0)?Se=ie(Le(BigInt(dt.toFixed(0)),we?.decimals||18)).toFixed():Se="0"}}catch(Oe){console.warn("getGasPrice for swap native fee deduction (CASE 2) failed:",Oe)}ue({srcTokenAddress:Ve,srcTokenDecimals:M});const Ie=[25,50,75,100].map(Oe=>({id:`percent-${Oe}`,text:`${Oe}%`,value:r("buttonUsePercent",{percent:String(Oe),symbol:le}),action:"select_percent",extraData:{percent:Oe,tokenAddress:Ve,tokenSymbol:le,tokenDecimals:M,tokenBalance:Se}}));l(r("selectAmountToSwap",{symbol:le,balance:Se}),"bot",X.id,Ie)}else l(a("couldNotFetchBalance"),"bot")}catch(H){console.warn("Native balance fetch failed:",H),l(a("couldNotFetchBalanceRetry"),"bot")}else{const H=v.token_in_symbol||"Token";ue({srcTokenAddress:v.token_in,srcTokenDecimals:M});try{const be=await Qe({address:u?.address||"",chain:h});if(be?.success&&be?.data?.result){const le=be.data.result.find(Ie=>Ie.token_address.toLowerCase()===v.token_in?.toLowerCase());if(!le){l(r("swapTokenNotInWallet",{symbol:H}),"bot"),B(!1);return}const De=[25,50,75,100].map(Ie=>({id:`percent-${Ie}`,text:`${Ie}%`,value:r("buttonUsePercent",{percent:String(Ie),symbol:le.symbol}),action:"select_percent",extraData:{percent:Ie,tokenAddress:le.token_address,tokenSymbol:le.symbol,tokenDecimals:le.decimals||18,tokenBalance:le.balance_formatted}}));l(r("selectAmountToSwap",{symbol:le.symbol,balance:`${le.balance_formatted} (~$${le.usd_value?.toFixed(2)||"0"})`}),"bot",X.id,De)}else l(a("couldNotFetchBalance"),"bot")}catch(be){console.warn("Token balance fetch failed:",be),l(a("couldNotFetchBalanceRetry"),"bot")}}}else if(!ne&&fe){l(U.message||a("swapChooseFrom"),"bot",X.id);let M=parseInt(v.token_out_decimals||"18",10);if(v.token_out)try{const j=await st.getTokensDetails([v.token_out],S);j?.data?.[0]&&(M=j.data[0].decimals||M)}catch(j){console.warn("getTokensDetails failed in CASE 3, using fallback:",j)}await Te(v.token_out,M)}else if(ne&&!fe){let M=O?18:parseInt(v.token_in_decimals||"18",10);if(v.token_in&&!O)try{const j=await st.getTokensDetails([v.token_in],S);j?.data?.[0]&&(M=j.data[0].decimals||M)}catch(j){console.warn("getTokensDetails failed in CASE 4, using fallback:",j)}ue(O?{srcTokenAddress:Ve,srcTokenDecimals:18}:{srcTokenAddress:v.token_in,srcTokenDecimals:M}),l(U.message||r("swapChooseTo",{symbol:v.token_in_symbol||"your token"}),"bot",X.id);try{B(!0);const j=w?.tokenTrendingDefault||[],[oe,H]=await Promise.allSettled([st.getTopGainers(S,"24h",5),st.getTokensDetails(j,S)]);let be=[];oe.status==="fulfilled"&&oe.value?.data&&(be=[...oe.value.data]),H.status==="fulfilled"&&H.value?.data&&(be=[...H.value.data,...be]),be=be.filter((le,Se,De)=>Se===De.findIndex(Ie=>Ie.address.toLowerCase()===le.address.toLowerCase()));const we=be.map(le=>({id:le?.symbol,text:le?.symbol,value:r("buttonSwapTo",{name:le.name,symbol:le?.symbol||""}),action:"click_swap_dest_token",extraData:{tokenAddress:le?.address||"",symbol:le?.symbol||"",decimals:le?.decimals||18}}));l(r("trendingTokensForReceive",{chain:w?.name||"Unknown"}),"bot",void 0,we)}catch(j){console.error("Error fetching trending tokens for swap:",j),l(a("couldNotLoadTokenList"),"bot")}finally{B(!1)}}else if(l(U.message||a("swapChooseToken"),"bot",X.id),u?.address)try{B(!0);const M=await Qe({address:u.address,chain:h});if(M?.success&&M?.data?.result&&M.data.result.length>0){const oe=M.data.result.map(H=>({id:`swap-select-${H.token_address}`,text:`${H.name}: ${H.balance_formatted} ${H.symbol} ($${ie(H?.usd_value||0).decimalPlaces(2).toFixed()||"0"})`,value:`Swap ${H.symbol}`,action:"suggested_action",fullWidth:!0}));await _e(500),B(!1),l(r("walletBalanceSpendable",{chain:w?.name||"this chain"}),"bot",void 0,oe)}else B(!1),l(r("walletNoTokensFound",{chain:w?.name||"this chain"}),"bot")}catch(M){console.warn("Failed to fetch balance for swap picker:",M),B(!1),l(a("walletFetchError"),"bot")}}else if(U.action==="view_balances")l(U.message||a("viewBalancesLoading"),"bot",X.id),await Ke();else if(U.action==="view_nfts")l(U.message||a("viewNftsLoading"),"bot",X.id),await Xe();else if(U.action==="send_token"&&!U.parameters?.contract_address&&!U.parameters?.token_symbol&&u?.address)try{const v=await Qe({address:u.address,chain:h});if(v?.success&&v?.data?.result&&v.data.result.length>0){l(a("sendTokenChoose"),"bot",X.id),B(!0),await _e(500);const ee=v.data.result.map(ne=>({id:`send-select-${ne.token_address}`,text:`${ne.name}: ${ne.balance_formatted} ${ne.symbol} ($${ie(ne?.usd_value||0).decimalPlaces(2).toFixed()||"0"})`,value:`Send ${ne.name} (${ne.symbol})`,action:"suggested_action",fullWidth:!0}));await _e(500),B(!1),l(r("walletBalanceSpendable",{chain:w?.name||"this chain"}),"bot",void 0,ee)}else B(!1),l(r("walletNoTokensFound",{chain:w?.name||"this chain"}),"bot")}catch(v){console.warn("Failed to fetch balance for send_token picker:",v),B(!1),l(a("walletFetchError"),"bot")}else if(U.action==="send_nft"&&!U.parameters?.contract_address&&!U.parameters?.token_id&&!U.parameters?.nft_name&&u?.address)l(a("sendNftChoose"),"bot",X.id),await Xe();else if(U.action==="send_nft"&&!Me(U.parameters?.contract_address||"")&&(U.parameters?.nft_name||U.parameters?.token_id)&&u?.address)try{B(!0);const v=await kn({address:u.address,chain:h,limit:100,exclude_spam:!1});if(v?.success&&v?.data?.result){const O=v.data.result,ee=(U.parameters?.nft_name||"").toLowerCase(),ne=U.parameters?.token_id||"",fe=O.find(ce=>{const M=(ce.normalized_metadata?.name||ce.name||"").toLowerCase(),j=(ce.name||"").toLowerCase(),oe=ee&&(M.includes(ee)||j.includes(ee)),H=ne&&ce.token_id===ne;return ee&&ne?oe&&H:ee?oe:H});if(fe){const ce=fe.normalized_metadata?.name||fe.name||`#${fe.token_id}`,M=fe.normalized_metadata?.image||fe.media?.original_media_url||"",j={contract_address:fe.token_address,token_id:fe.token_id,to_address:U.parameters?.to_address||"",token_standard:fe.contract_type||"",amount:"1",maxAmount:fe.amount||"1",nft_name:ce};l(U.message||r("nftSendReview",{name:ce,standard:fe.contract_type||"NFT",tokenId:fe.token_id}),"bot",X.id,void 0,{action:"send_nft",parameters:j,status:"pending",nftInfo:{name:ce,image:M||void 0,tokenId:fe.token_id,contractAddress:fe.token_address,tokenStandard:fe.contract_type||void 0}})}else l(U.message||r("nftNotFoundInWallet",{name:ee||ne}),"bot",X.id),await Xe()}else l(a("nftNoCollection"),"bot",X.id)}catch(v){console.error("NFT lookup by name failed:",v),l(a("nftFetchError"),"bot",X.id)}finally{B(!1)}else{const v=ic(U.action);let O={...U.parameters||{}},ee,ne;const fe=["send_token","approve_token"].includes(U.action)&&(O.contract_address||O.token_symbol),ce=U.action==="send_native",M=U.action==="send_nft"&&O.contract_address;if(fe&&u?.address)try{const j=await Qe({address:u.address,chain:h});if(j?.success&&j?.data?.result){const oe=j.data.result,H=O.contract_address?oe.find(be=>be.token_address.toLowerCase()===O.contract_address.toLowerCase()):oe.find(be=>be.symbol.toUpperCase()===O.token_symbol.toUpperCase());H&&(O={...O,contract_address:H.token_address,decimals:String(H.decimals)},ee={symbol:H.symbol,name:H.name,balance:H.balance,balanceFormatted:H.balance_formatted,usdValue:H.usd_value,usdPrice:H.usd_price,decimals:H.decimals,logo:H.logo||H.thumbnail,contractAddress:H.token_address})}}catch(j){console.warn("Token enrichment failed:",j)}if(fe&&!ee&&O.contract_address)try{const j=await Cs({address:O.contract_address,chain:h});if(j?.success&&j?.data){const oe=j.data;ee={symbol:oe.symbol,name:oe.name,balance:"0",balanceFormatted:"0",usdPrice:oe.usd_price,decimals:oe.decimals,logo:oe.logo,contractAddress:O.contract_address},O={...O,decimals:String(oe.decimals)}}}catch(j){console.warn("Token metadata fallback failed:",j)}if(ce&&u?.address)try{const j=await Qe({address:u.address,chain:h});if(j?.success&&j?.data?.result){const H=j.data.result.find(be=>be.native_token);if(H){let be=H.balance_formatted,we=H.balance;try{const le=new ie(H.balance),Se="0x"+BigInt(le.toFixed(0)).toString(16),De=await an({from:u.address,to:u.address,data:"0x",value:Se,chainId:b,rpcUrl:F});if(De.isGreaterThan(0)){const Ie=le.minus(De);Ie.isGreaterThan(0)?(we=Ie.toFixed(0),be=ie(Le(BigInt(Ie.toFixed(0)),H.decimals)).toFixed()):(we="0",be="0")}}catch(le){console.warn("Estimate send fee for send_native failed:",le)}ee={symbol:H.symbol,name:H.name,balance:we,balanceFormatted:be,usdValue:H.usd_value,usdPrice:H.usd_price,decimals:H.decimals,logo:H.logo||H.thumbnail,contractAddress:Ve}}else{const be=await Cs({address:Ve,chain:h});if(be?.success&&be?.data){const we=be.data;ee={symbol:we.symbol,name:we.name,balance:"0",balanceFormatted:"0",usdValue:0,usdPrice:we.usd_price,decimals:we.decimals,logo:we.logo||we.thumbnail,contractAddress:Ve}}}}}catch(j){console.warn("Native token balance fetch failed:",j)}if(M){try{const j=await Wi({address:O.contract_address,chain:h});if(j?.success&&j?.data){const oe=j.data;oe.contract_type&&(O={...O,token_standard:oe.contract_type}),!O.nft_name&&oe.name&&(O={...O,nft_name:oe.name})}}catch(j){console.warn("NFT contract metadata fetch failed:",j)}if(u?.address)try{const j=await kn({address:u.address,chain:h,limit:100,exclude_spam:!1});if(j?.success&&j?.data?.result){const oe=j.data.result.find(H=>H.token_address.toLowerCase()===O.contract_address.toLowerCase()&&H.token_id===O.token_id);if(oe){O={...O,amount:"1",maxAmount:oe.amount||"1"};const H=oe.normalized_metadata?.image||oe.media?.original_media_url||"";ne={name:oe.normalized_metadata?.name||oe.name||O.nft_name||`#${oe.token_id}`,image:H||void 0,tokenId:oe.token_id,contractAddress:oe.token_address,tokenStandard:oe.contract_type||O.token_standard||void 0}}}}catch(j){console.warn("NFT ownership lookup failed:",j)}}if(O.amount&&ee?.balanceFormatted&&(U.action==="send_token"||U.action==="send_native")&&(O.amount=ho(O.amount,ee.balanceFormatted)),v){const j=U.message||"Please review and complete the form below.";l(j,"bot",X.id,void 0,{action:U.action,parameters:O,status:"pending",tokenInfo:ee,nftInfo:ne})}else l(U.message||re,"bot",X.id)}else if(U&&U.action==="chat"){const v=U.token_mentions||[],O=U.suggested_actions||[],ee=[];v.length>0&&v.forEach(ne=>{ee.push({id:`buy-${ne.symbol}`,text:`💰 Buy ${ne.symbol}`,value:r("buttonBuySymbol",{symbol:ne.symbol}),action:"click_buy_item_token_button",extraData:{tokenAddress:ne.contract_address||"",symbol:ne.symbol,decimals:ne.decimals||18},fullWidth:!0})}),O.length>0&&O.forEach((ne,fe)=>{ee.push({id:`suggested-${fe}-${ne.label}`,text:ne.label,value:ne.prompt,action:"suggested_action",fullWidth:!0})}),ee.length>0?l(U.message||re,"bot",X.id,ee):l(U.message||re,"bot",X.id)}else l(re,"bot",X.id)}else l(a("errorProcessingRequest"),"bot",X.id)}catch(G){console.error("Error getting AI response:",G),l(a("errorProcessingRequest"),"bot",X.id)}B(!1),await _e(50),Jt.isDesktop&&xe.current?.focus()},[A,T,i,l,W,u?.address,w?.name,w?.nativeCurrency?.symbol,w?.tokenTrendingDefault,b,S,h,x,Te,Ye,Xe,Ke,ue,F,a,r]);te.useEffect(()=>{c.current&&A===c.current&&(c.current=null,Fe())},[A,Fe]);const Pe=te.useCallback(async(R,X,G)=>{try{if(N(!1),k(G,"submitted"),R==="swap_token"){let Z=18;if(X.token_in&&X.token_in!==Ve)try{const z=await st.getTokensDetails([X.token_in],S);z?.data?.[0]&&(Z=z.data[0].decimals||18)}catch(z){console.warn("getTokensDetails failed in ActionForm swap, using default 18:",z)}const _=mt(X.amount||"0",Z).toString(),K=await lo({chainId:b,tokenIn:X.token_in||"",tokenInAmount:_,tokenOut:X.token_out||"",tokenOutRecipient:u?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(K.success&&K.data){const z=K.data,$=z.tokenIn,pe=z.tokenOut,re=ie(Le(BigInt($.amount||0),$.decimals)).decimalPlaces(6).toFormat(),U=ie(Le(BigInt(pe.amount||0),pe.decimals)).decimalPlaces(6).toFormat(),v=!X.token_in||X.token_in===Ve;let O=!1;if(!v&&u?.address&&z.tx?.to)try{const H=await po({tokenAddress:X.token_in,ownerAddress:u.address,spenderAddress:z.tx.to,chainId:b,rpcUrl:F});O=ie(H.toString()).isLessThan(_)}catch(H){console.warn("Allowance check failed in ActionForm swap:",H)}const ee=z.estimatedTransactionFee?.total?ie(z.estimatedTransactionFee.total):ie(0);let ne=ie(0);if(O&&u?.address)try{const H=Tn({tokenAddress:X.token_in,spenderAddress:z.tx?.to||"",fromAddress:u.address,chainId:b});ne=await an({from:u.address,to:H.to,data:H.data,chainId:b,rpcUrl:F})}catch(H){console.warn("Approve fee estimation failed:",H)}const fe=ee.plus(ne),ce=w?.nativeCurrency?.symbol||"native";let M="",j=!1;if(u?.address&&fe.isGreaterThan(0))try{const H=await Cn({address:u.address,chainId:b,rpcUrl:F});if(H.isLessThan(fe)){j=!0;const be=ie(Le(BigInt(H.toFixed(0)),18)).decimalPlaces(6).toFormat(),we=ie(Le(BigInt(fe.toFixed(0)),18)).decimalPlaces(6).toFormat();M=r("swapFeeWarning",{symbol:ce,balance:be,needed:we})}}catch(H){console.warn("Fee balance check failed:",H)}const oe=`From: ${re} ${$.symbol}
482
+ `+rn+`
483
+ `;if(cn)l(Jt,"bot");else if($e){const Ue=[{id:"approve-for-swap",text:r("swapApproveButton",{symbol:Se.symbol}),value:r("swapApproveValue",{symbol:Se.symbol}),action:"approve_for_swap",fullWidth:!0,extraData:{tokenAddress:H,spenderAddress:le.tx.to,tokenSymbol:Se.symbol,tx:le.tx}}];l(Jt+r("swapNeedApprove",{symbol:Se.symbol}),"bot",void 0,Ue)}else{const Ue=[{id:"confirm-swap",text:a("swapConfirmYes"),value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:le.tx}}];l(Jt+a("swapReadyToProceed"),"bot",void 0,Ue)}}else l(r("swapEstimationError",{error:we.errorMessage||we.error||"Unknown error"}),"bot")}catch(M){console.error("Swap estimation error:",M),l(a("swapEstimationFailed"),"bot")}}else if(ne&&fe&&!ce){let M=D?18:parseInt(v.token_in_decimals||"18",10),j=parseInt(v.token_out_decimals||"18",10);const oe=[];if(v.token_out&&oe.push(v.token_out),v.token_in&&!D&&oe.push(v.token_in),oe.length>0)try{const H=await ot.getTokensDetails(oe,S);if(H?.data)for(const be of H.data)!D&&be.address.toLowerCase()===v.token_in?.toLowerCase()&&(M=be.decimals||M),be.address.toLowerCase()===v.token_out?.toLowerCase()&&(j=be.decimals||j)}catch(H){console.warn("getTokensDetails failed in CASE 2, using fallback decimals:",H)}if(ue({descTokenAddress:v.token_out,descTokenDecimals:j}),D)try{const H=await qe({address:u?.address||"",chain:h});if(H?.success&&H?.data?.result){const we=H.data.result.find(De=>De.native_token),le=w?.nativeCurrency?.symbol||"ETH";let Se=we?.balance_formatted||"0";try{const De=await fo({chainId:b,rpcUrl:F});if(De.isGreaterThan(0)){const $e=De.times(1e6),lt=new ie(we?.balance||"0").minus($e);lt.isGreaterThan(0)?Se=ie(Le(BigInt(lt.toFixed(0)),we?.decimals||18)).toFixed():Se="0"}}catch(De){console.warn("getGasPrice for swap native fee deduction (CASE 2) failed:",De)}ue({srcTokenAddress:Ve,srcTokenDecimals:M});const Ie=[25,50,75,100].map(De=>({id:`percent-${De}`,text:`${De}%`,value:r("buttonUsePercent",{percent:String(De),symbol:le}),action:"select_percent",extraData:{percent:De,tokenAddress:Ve,tokenSymbol:le,tokenDecimals:M,tokenBalance:Se}}));l(r("selectAmountToSwap",{symbol:le,balance:Se}),"bot",X.id,Ie)}else l(a("couldNotFetchBalance"),"bot")}catch(H){console.warn("Native balance fetch failed:",H),l(a("couldNotFetchBalanceRetry"),"bot")}else{const H=v.token_in_symbol||"Token";ue({srcTokenAddress:v.token_in,srcTokenDecimals:M});try{const be=await qe({address:u?.address||"",chain:h});if(be?.success&&be?.data?.result){const le=be.data.result.find(Ie=>Ie.token_address.toLowerCase()===v.token_in?.toLowerCase());if(!le){l(r("swapTokenNotInWallet",{symbol:H}),"bot"),B(!1);return}const Oe=[25,50,75,100].map(Ie=>({id:`percent-${Ie}`,text:`${Ie}%`,value:r("buttonUsePercent",{percent:String(Ie),symbol:le.symbol}),action:"select_percent",extraData:{percent:Ie,tokenAddress:le.token_address,tokenSymbol:le.symbol,tokenDecimals:le.decimals||18,tokenBalance:le.balance_formatted}}));l(r("selectAmountToSwap",{symbol:le.symbol,balance:`${le.balance_formatted} (~$${le.usd_value?.toFixed(2)||"0"})`}),"bot",X.id,Oe)}else l(a("couldNotFetchBalance"),"bot")}catch(be){console.warn("Token balance fetch failed:",be),l(a("couldNotFetchBalanceRetry"),"bot")}}}else if(!ne&&fe){l(U.message||a("swapChooseFrom"),"bot",X.id);let M=parseInt(v.token_out_decimals||"18",10);if(v.token_out)try{const j=await ot.getTokensDetails([v.token_out],S);j?.data?.[0]&&(M=j.data[0].decimals||M)}catch(j){console.warn("getTokensDetails failed in CASE 3, using fallback:",j)}await Te(v.token_out,M)}else if(ne&&!fe){let M=D?18:parseInt(v.token_in_decimals||"18",10);if(v.token_in&&!D)try{const j=await ot.getTokensDetails([v.token_in],S);j?.data?.[0]&&(M=j.data[0].decimals||M)}catch(j){console.warn("getTokensDetails failed in CASE 4, using fallback:",j)}ue(D?{srcTokenAddress:Ve,srcTokenDecimals:18}:{srcTokenAddress:v.token_in,srcTokenDecimals:M}),l(U.message||r("swapChooseTo",{symbol:v.token_in_symbol||"your token"}),"bot",X.id);try{B(!0);const j=w?.tokenTrendingDefault||[],[oe,H]=await Promise.allSettled([ot.getTopGainers(S,"24h",5),ot.getTokensDetails(j,S)]);let be=[];oe.status==="fulfilled"&&oe.value?.data&&(be=[...oe.value.data]),H.status==="fulfilled"&&H.value?.data&&(be=[...H.value.data,...be]),be=be.filter((le,Se,Oe)=>Se===Oe.findIndex(Ie=>Ie.address.toLowerCase()===le.address.toLowerCase()));const we=be.map(le=>({id:le?.symbol,text:le?.symbol,value:r("buttonSwapTo",{name:le.name,symbol:le?.symbol||""}),action:"click_swap_dest_token",extraData:{tokenAddress:le?.address||"",symbol:le?.symbol||"",decimals:le?.decimals||18}}));l(r("trendingTokensForReceive",{chain:w?.name||"Unknown"}),"bot",void 0,we)}catch(j){console.error("Error fetching trending tokens for swap:",j),l(a("couldNotLoadTokenList"),"bot")}finally{B(!1)}}else if(l(U.message||a("swapChooseToken"),"bot",X.id),u?.address)try{B(!0);const M=await qe({address:u.address,chain:h});if(M?.success&&M?.data?.result&&M.data.result.length>0){const oe=M.data.result.map(H=>({id:`swap-select-${H.token_address}`,text:`${H.name}: ${H.balance_formatted} ${H.symbol} ($${ie(H?.usd_value||0).decimalPlaces(2).toFixed()||"0"})`,value:`Swap ${H.symbol}`,action:"suggested_action",fullWidth:!0}));await Ze(500),B(!1),l(r("walletBalanceSpendable",{chain:w?.name||"this chain"}),"bot",void 0,oe)}else B(!1),l(r("walletNoTokensFound",{chain:w?.name||"this chain"}),"bot")}catch(M){console.warn("Failed to fetch balance for swap picker:",M),B(!1),l(a("walletFetchError"),"bot")}}else if(U.action==="view_balances")l(U.message||a("viewBalancesLoading"),"bot",X.id),await Xe();else if(U.action==="view_nfts")l(U.message||a("viewNftsLoading"),"bot",X.id),await Qe();else if(U.action==="send_token"&&!U.parameters?.contract_address&&!U.parameters?.token_symbol&&u?.address)try{const v=await qe({address:u.address,chain:h});if(v?.success&&v?.data?.result&&v.data.result.length>0){l(a("sendTokenChoose"),"bot",X.id),B(!0),await Ze(500);const ee=v.data.result.map(ne=>({id:`send-select-${ne.token_address}`,text:`${ne.name}: ${ne.balance_formatted} ${ne.symbol} ($${ie(ne?.usd_value||0).decimalPlaces(2).toFixed()||"0"})`,value:`Send ${ne.name} (${ne.symbol})`,action:"suggested_action",fullWidth:!0}));await Ze(500),B(!1),l(r("walletBalanceSpendable",{chain:w?.name||"this chain"}),"bot",void 0,ee)}else B(!1),l(r("walletNoTokensFound",{chain:w?.name||"this chain"}),"bot")}catch(v){console.warn("Failed to fetch balance for send_token picker:",v),B(!1),l(a("walletFetchError"),"bot")}else if(U.action==="send_nft"&&!U.parameters?.contract_address&&!U.parameters?.token_id&&!U.parameters?.nft_name&&u?.address)l(a("sendNftChoose"),"bot",X.id),await Qe();else if(U.action==="send_nft"&&!Me(U.parameters?.contract_address||"")&&(U.parameters?.nft_name||U.parameters?.token_id)&&u?.address)try{B(!0);const v=await An({address:u.address,chain:h,limit:100,exclude_spam:!1});if(v?.success&&v?.data?.result){const D=v.data.result,ee=(U.parameters?.nft_name||"").toLowerCase(),ne=U.parameters?.token_id||"",fe=D.find(ce=>{const M=(ce.normalized_metadata?.name||ce.name||"").toLowerCase(),j=(ce.name||"").toLowerCase(),oe=ee&&(M.includes(ee)||j.includes(ee)),H=ne&&ce.token_id===ne;return ee&&ne?oe&&H:ee?oe:H});if(fe){const ce=fe.normalized_metadata?.name||fe.name||`#${fe.token_id}`,M=fe.normalized_metadata?.image||fe.media?.original_media_url||"",j={contract_address:fe.token_address,token_id:fe.token_id,to_address:U.parameters?.to_address||"",token_standard:fe.contract_type||"",amount:"1",maxAmount:fe.amount||"1",nft_name:ce};l(U.message||r("nftSendReview",{name:ce,standard:fe.contract_type||"NFT",tokenId:fe.token_id}),"bot",X.id,void 0,{action:"send_nft",parameters:j,status:"pending",nftInfo:{name:ce,image:M||void 0,tokenId:fe.token_id,contractAddress:fe.token_address,tokenStandard:fe.contract_type||void 0}})}else l(U.message||r("nftNotFoundInWallet",{name:ee||ne}),"bot",X.id),await Qe()}else l(a("nftNoCollection"),"bot",X.id)}catch(v){console.error("NFT lookup by name failed:",v),l(a("nftFetchError"),"bot",X.id)}finally{B(!1)}else{const v=ec(U.action);let D={...U.parameters||{}},ee,ne;const fe=["send_token","approve_token"].includes(U.action)&&(D.contract_address||D.token_symbol),ce=U.action==="send_native",M=U.action==="send_nft"&&D.contract_address;if(fe&&u?.address)try{const j=await qe({address:u.address,chain:h});if(j?.success&&j?.data?.result){const oe=j.data.result,H=D.contract_address?oe.find(be=>be.token_address.toLowerCase()===D.contract_address.toLowerCase()):oe.find(be=>be.symbol.toUpperCase()===D.token_symbol.toUpperCase());H&&(D={...D,contract_address:H.token_address,decimals:String(H.decimals)},ee={symbol:H.symbol,name:H.name,balance:H.balance,balanceFormatted:H.balance_formatted,usdValue:H.usd_value,usdPrice:H.usd_price,decimals:H.decimals,logo:H.logo||H.thumbnail,contractAddress:H.token_address})}}catch(j){console.warn("Token enrichment failed:",j)}if(fe&&!ee&&D.contract_address)try{const j=await ks({address:D.contract_address,chain:h});if(j?.success&&j?.data){const oe=j.data;ee={symbol:oe.symbol,name:oe.name,balance:"0",balanceFormatted:"0",usdPrice:oe.usd_price,decimals:oe.decimals,logo:oe.logo,contractAddress:D.contract_address},D={...D,decimals:String(oe.decimals)}}}catch(j){console.warn("Token metadata fallback failed:",j)}if(ce&&u?.address)try{const j=await qe({address:u.address,chain:h});if(j?.success&&j?.data?.result){const H=j.data.result.find(be=>be.native_token);if(H){let be=H.balance_formatted,we=H.balance;try{const le=new ie(H.balance),Se="0x"+BigInt(le.toFixed(0)).toString(16),Oe=await sn({from:u.address,to:u.address,data:"0x",value:Se,chainId:b,rpcUrl:F});if(Oe.isGreaterThan(0)){const Ie=le.minus(Oe);Ie.isGreaterThan(0)?(we=Ie.toFixed(0),be=ie(Le(BigInt(Ie.toFixed(0)),H.decimals)).toFixed()):(we="0",be="0")}}catch(le){console.warn("Estimate send fee for send_native failed:",le)}ee={symbol:H.symbol,name:H.name,balance:we,balanceFormatted:be,usdValue:H.usd_value,usdPrice:H.usd_price,decimals:H.decimals,logo:H.logo||H.thumbnail,contractAddress:Ve}}else{const be=await ks({address:Ve,chain:h});if(be?.success&&be?.data){const we=be.data;ee={symbol:we.symbol,name:we.name,balance:"0",balanceFormatted:"0",usdValue:0,usdPrice:we.usd_price,decimals:we.decimals,logo:we.logo||we.thumbnail,contractAddress:Ve}}}}}catch(j){console.warn("Native token balance fetch failed:",j)}if(M){try{const j=await Oi({address:D.contract_address,chain:h});if(j?.success&&j?.data){const oe=j.data;oe.contract_type&&(D={...D,token_standard:oe.contract_type}),!D.nft_name&&oe.name&&(D={...D,nft_name:oe.name})}}catch(j){console.warn("NFT contract metadata fetch failed:",j)}if(u?.address)try{const j=await An({address:u.address,chain:h,limit:100,exclude_spam:!1});if(j?.success&&j?.data?.result){const oe=j.data.result.find(H=>H.token_address.toLowerCase()===D.contract_address.toLowerCase()&&H.token_id===D.token_id);if(oe){D={...D,amount:"1",maxAmount:oe.amount||"1"};const H=oe.normalized_metadata?.image||oe.media?.original_media_url||"";ne={name:oe.normalized_metadata?.name||oe.name||D.nft_name||`#${oe.token_id}`,image:H||void 0,tokenId:oe.token_id,contractAddress:oe.token_address,tokenStandard:oe.contract_type||D.token_standard||void 0}}}}catch(j){console.warn("NFT ownership lookup failed:",j)}}if(D.amount&&ee?.balanceFormatted&&(U.action==="send_token"||U.action==="send_native")&&(D.amount=po(D.amount,ee.balanceFormatted)),v){const j=U.message||"Please review and complete the form below.";l(j,"bot",X.id,void 0,{action:U.action,parameters:D,status:"pending",tokenInfo:ee,nftInfo:ne})}else l(U.message||re,"bot",X.id)}else if(U&&U.action==="chat"){const v=U.token_mentions||[],D=U.suggested_actions||[],ee=[];v.length>0&&v.forEach(ne=>{ee.push({id:`buy-${ne.symbol}`,text:`💰 Buy ${ne.symbol}`,value:r("buttonBuySymbol",{symbol:ne.symbol}),action:"click_buy_item_token_button",extraData:{tokenAddress:ne.contract_address||"",symbol:ne.symbol,decimals:ne.decimals||18},fullWidth:!0})}),D.length>0&&D.forEach((ne,fe)=>{ee.push({id:`suggested-${fe}-${ne.label}`,text:ne.label,value:ne.prompt,action:"suggested_action",fullWidth:!0})}),ee.length>0?l(U.message||re,"bot",X.id,ee):l(U.message||re,"bot",X.id)}else l(re,"bot",X.id)}else l(a("errorProcessingRequest"),"bot",X.id)}catch(G){console.error("Error getting AI response:",G),l(a("errorProcessingRequest"),"bot",X.id)}B(!1),await Ze(50),zt.isDesktop&&xe.current?.focus()},[A,T,i,l,W,u?.address,w?.name,w?.nativeCurrency?.symbol,w?.tokenTrendingDefault,b,S,h,x,Te,Ge,Qe,Xe,ue,F,a,r]);te.useEffect(()=>{c.current&&A===c.current&&(c.current=null,Fe())},[A,Fe]);const Pe=te.useCallback(async(R,X,G)=>{try{if(N(!1),k(G,"submitted"),R==="swap_token"){let Z=18;if(X.token_in&&X.token_in!==Ve)try{const z=await ot.getTokensDetails([X.token_in],S);z?.data?.[0]&&(Z=z.data[0].decimals||18)}catch(z){console.warn("getTokensDetails failed in ActionForm swap, using default 18:",z)}const _=pt(X.amount||"0",Z).toString(),K=await io({chainId:b,tokenIn:X.token_in||"",tokenInAmount:_,tokenOut:X.token_out||"",tokenOutRecipient:u?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(K.success&&K.data){const z=K.data,$=z.tokenIn,pe=z.tokenOut,re=ie(Le(BigInt($.amount||0),$.decimals)).decimalPlaces(6).toFormat(),U=ie(Le(BigInt(pe.amount||0),pe.decimals)).decimalPlaces(6).toFormat(),v=!X.token_in||X.token_in===Ve;let D=!1;if(!v&&u?.address&&z.tx?.to)try{const H=await uo({tokenAddress:X.token_in,ownerAddress:u.address,spenderAddress:z.tx.to,chainId:b,rpcUrl:F});D=ie(H.toString()).isLessThan(_)}catch(H){console.warn("Allowance check failed in ActionForm swap:",H)}const ee=z.estimatedTransactionFee?.total?ie(z.estimatedTransactionFee.total):ie(0);let ne=ie(0);if(D&&u?.address)try{const H=vn({tokenAddress:X.token_in,spenderAddress:z.tx?.to||"",fromAddress:u.address,chainId:b});ne=await sn({from:u.address,to:H.to,data:H.data,chainId:b,rpcUrl:F})}catch(H){console.warn("Approve fee estimation failed:",H)}const fe=ee.plus(ne),ce=w?.nativeCurrency?.symbol||"native";let M="",j=!1;if(u?.address&&fe.isGreaterThan(0))try{const H=await Tn({address:u.address,chainId:b,rpcUrl:F});if(H.isLessThan(fe)){j=!0;const be=ie(Le(BigInt(H.toFixed(0)),18)).decimalPlaces(6).toFormat(),we=ie(Le(BigInt(fe.toFixed(0)),18)).decimalPlaces(6).toFormat();M=r("swapFeeWarning",{symbol:ce,balance:be,needed:we})}}catch(H){console.warn("Fee balance check failed:",H)}const oe=`From: ${re} ${$.symbol}
484
484
  ⬇️
485
485
  To: ${U} ${pe.symbol}
486
486
 
487
487
  `+M+`
488
- `;if(j)k(G,"pending"),l(oe,"bot");else if(O){const H=[{id:"approve-swap-actionform",text:r("swapApproveButton",{symbol:$.symbol}),value:r("swapApproveValue",{symbol:$.symbol}),action:"approve_for_swap",extraData:{tokenAddress:X.token_in,spenderAddress:z.tx.to,tokenSymbol:$.symbol,tx:z.tx},fullWidth:!0}];k(G,"success"),l(oe+r("swapApprovalRequired",{symbol:$.symbol}),"bot",void 0,H)}else{const H=[{id:"confirm-swap-actionform",text:a("swapConfirmYes"),value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:z.tx}}];k(G,"success"),l(oe+a("swapReadyToProceed"),"bot",void 0,H)}}else k(G,"pending"),l(r("swapEstimationError",{error:K.errorMessage||K.error||"Unknown error"}),"bot")}else{const Z=tc({action:R,parameters:X,fromAddress:u?.address||"",chainId:b||1}),_={from:Z.from,to:Z.to,data:Z.data,value:Z.value,chainId:Z.chainId};if((R==="send_token"||R==="send_native"||R==="send_nft")&&u?.address)try{const z=w?.nativeCurrency?.symbol||"native",$=await an({from:Z.from,to:Z.to,data:Z.data,value:Z.value&&Z.value!=="0"?`0x${BigInt(Z.value).toString(16)}`:void 0,chainId:b,rpcUrl:F});if($.isGreaterThan(0)){const pe=await Cn({address:u.address,chainId:b,rpcUrl:F});if(pe.isLessThan($)){const re=ie(Le(BigInt(pe.toFixed(0)),18)).decimalPlaces(6).toFormat(),U=ie(Le(BigInt($.toFixed(0)),18)).decimalPlaces(6).toFormat();k(G,"pending"),l(r("txInsufficientGas",{symbol:z,balance:re,fee:U}),"bot");return}}}catch(z){console.warn("Pre-execution fee check failed:",z)}const K=Y(G);if(n){B(!1);const z=await n(_);if(z.status==="success"&&z.transactionHash){const $=w?.blockExplorers?.default?.url,pe=$?`
488
+ `;if(j)k(G,"pending"),l(oe,"bot");else if(D){const H=[{id:"approve-swap-actionform",text:r("swapApproveButton",{symbol:$.symbol}),value:r("swapApproveValue",{symbol:$.symbol}),action:"approve_for_swap",extraData:{tokenAddress:X.token_in,spenderAddress:z.tx.to,tokenSymbol:$.symbol,tx:z.tx},fullWidth:!0}];k(G,"success"),l(oe+r("swapApprovalRequired",{symbol:$.symbol}),"bot",void 0,H)}else{const H=[{id:"confirm-swap-actionform",text:a("swapConfirmYes"),value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:z.tx}}];k(G,"success"),l(oe+a("swapReadyToProceed"),"bot",void 0,H)}}else k(G,"pending"),l(r("swapEstimationError",{error:K.errorMessage||K.error||"Unknown error"}),"bot")}else{const Z=Qi({action:R,parameters:X,fromAddress:u?.address||"",chainId:b||1}),_={from:Z.from,to:Z.to,data:Z.data,value:Z.value,chainId:Z.chainId};if((R==="send_token"||R==="send_native"||R==="send_nft")&&u?.address)try{const z=w?.nativeCurrency?.symbol||"native",$=await sn({from:Z.from,to:Z.to,data:Z.data,value:Z.value&&Z.value!=="0"?`0x${BigInt(Z.value).toString(16)}`:void 0,chainId:b,rpcUrl:F});if($.isGreaterThan(0)){const pe=await Tn({address:u.address,chainId:b,rpcUrl:F});if(pe.isLessThan($)){const re=ie(Le(BigInt(pe.toFixed(0)),18)).decimalPlaces(6).toFormat(),U=ie(Le(BigInt($.toFixed(0)),18)).decimalPlaces(6).toFormat();k(G,"pending"),l(r("txInsufficientGas",{symbol:z,balance:re,fee:U}),"bot");return}}}catch(z){console.warn("Pre-execution fee check failed:",z)}const K=Y(G);if(n){B(!1);const z=await n(_);if(z.status==="success"&&z.transactionHash){const $=w?.blockExplorers?.default?.url,pe=$?`
489
489
  [View on Explorer](${$}/tx/${z.transactionHash})`:`
490
- Tx: ${z.transactionHash}`;try{await _e(2e3),(await fo({transactionHash:z.transactionHash,chainId:b||1,rpcUrl:F})).status==="success"?(k(G,"success"),D(G,K?.text+`
490
+ Tx: ${z.transactionHash}`;try{await Ze(2e3),(await lo({transactionHash:z.transactionHash,chainId:b||1,rpcUrl:F})).status==="success"?(k(G,"success"),O(G,K?.text+`
491
491
  `+pe)):(k(G,"pending"),l(a("txReverted")+`
492
492
  `+pe,"bot"))}catch(re){console.warn("Transaction tracking timeout:",re),k(G,"success"),l(a("txTimeout")+`
493
493
  `+pe,"bot")}}else if(z.status==="success")k(G,"success");else{k(G,"pending");const $=z.error?`
494
- Error: ${z.error}`:"";l(a("txFailed")+$,"bot")}}else k(G,"pending"),l(a("txNoHandler"),"bot")}}catch(Z){console.error("Action form submit error:",Z),k(G,"pending"),l(r("txError",{message:Z instanceof Error?Z.message:"Unknown error"}),"bot")}},[k,b,u?.address,S,w?.nativeCurrency?.symbol,w?.blockExplorers?.default?.url,F,r,l,a,Y,n,D]),Ee=te.useCallback(R=>{g([R])},[g]),[Pt,Dt]=te.useState({}),gt=te.useCallback(async(R,X,G)=>{Dt(Z=>({...Z,[G]:!0}));try{await Pe(R,X,G)}finally{Dt(Z=>({...Z,[G]:!1}))}},[Pe]),wt=te.useCallback(R=>{R.key==="Enter"&&!R.shiftKey&&(R.preventDefault(),Fe())},[Fe]),lt=te.useCallback(()=>{const R=window.getSelection();R&&R.toString().length>0||t()},[t]);return e?P.jsx("div",{className:`chat-modal-overlay${o==="bottom-left"?" chat-modal-overlay--left":""}`,onClick:lt,role:"dialog","aria-modal":"true","aria-labelledby":"chat-modal-title",children:P.jsxs("div",{className:"chat-modal",style:s,onClick:R=>R.stopPropagation(),children:[P.jsxs("div",{className:"chat-modal-header",children:[P.jsxs("div",{className:"chat-modal-header-left",children:[P.jsx("div",{className:"keyring-logo",children:P.jsx("img",{src:Vi,alt:"Keyring Logo",width:40,height:40})}),P.jsx("h3",{id:"chat-modal-title",children:a("chatTitle")})]}),P.jsx("button",{className:"close-button",onClick:t,"aria-label":a("closeChat"),type:"button",children:P.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:P.jsx("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]}),P.jsx(xi,{address:u?.address,chainId:w?.chainId}),P.jsxs("div",{className:"chat-modal-messages-wrapper",children:[P.jsxs("div",{className:"chat-modal-messages",ref:ge,role:"log","aria-live":"polite",children:[i.map((R,X)=>P.jsxs("div",{children:[$e(X)&&P.jsx("div",{className:"date-separator",children:Ai(R.timestamp)}),P.jsxs("div",{className:`message ${R.sender==="user"?"message-user":"message-bot"}`,role:"article",children:[P.jsx("button",{className:"message-reply-button",onClick:()=>Ce(R),"aria-label":a("replyToMessage"),type:"button",children:P.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:P.jsx("path",{d:"M3.5 8.5L1 6L3.5 3.5M1.5 6H10C12.2091 6 14 7.79086 14 10V13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),P.jsxs("div",{className:"message-bubble",children:[R.replyTo&&P.jsxs("div",{className:"message-reply-to",children:[P.jsxs("div",{className:"message-reply-to-label",children:[a("replyingTo")," ",R.replyTo.sender==="user"?a("replyingToYou"):a("replyingToAgent")]}),P.jsx("div",{className:"message-reply-to-text",children:R.replyTo.text})]}),P.jsx("div",{className:"message-text",children:P.jsx(qi,{content:R.text})}),R.buttons&&R.buttons.length>0&&P.jsx("div",{className:"message-buttons",children:R.buttons.map(G=>P.jsx("button",{className:`message-button ${G.fullWidth?"full-width":""} ${G.action==="suggested_action"?"suggested-action":""}`,onClick:()=>Ne(G.value,G.action,G?.extraData),type:"button",children:G.text},G.id))}),R.actionData&&R.actionData.status==="pending"&&P.jsx(Ki,{action:R.actionData.action,initialValues:R.actionData.parameters,onSubmit:(G,Z)=>{gt(G,Z,R.id),setTimeout(()=>{he.current?.scrollIntoView({behavior:"smooth"})},100)},onCancel:()=>Ee(R.id),isSubmitting:Pt[R.id]||!1,tokenInfo:R.actionData.tokenInfo,nftInfo:R.actionData.nftInfo}),R.actionData&&R.actionData.status==="submitted"&&P.jsx("div",{className:"action-status action-status-submitted",children:a("txProcessing")}),R.actionData&&R.actionData.status==="success"&&P.jsx("div",{className:"action-status action-status-success",children:a("actionSuccess")}),R.actionData&&R.actionData.status==="fail"&&P.jsx("div",{className:"action-status action-status-fail",children:a("actionFail")}),P.jsxs("div",{className:"message-timestamp",children:[R.timestamp.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),R.sender==="user"&&P.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"check-icon",children:P.jsx("path",{d:"M13.3333 4L6 11.3333L2.66667 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})]})]},R.id)),T&&P.jsx("div",{className:"message message-bot typing-indicator",role:"status","aria-label":a("botIsTyping"),children:P.jsxs("div",{className:"message-bubble",children:[P.jsx("span",{className:"typing-dot"}),P.jsx("span",{className:"typing-dot"}),P.jsx("span",{className:"typing-dot"})]})}),(ve||i.length===1)&&P.jsxs(P.Fragment,{children:[P.jsx("div",{className:"message message-bot",role:"article",children:P.jsx("div",{className:"message-bubble",children:P.jsx("div",{className:"message-text",children:a("canIHelpYou")})})}),P.jsx("div",{className:"suggestions-container",children:We.map(R=>P.jsxs("button",{className:"suggestion-button",onClick:R.action,type:"button",children:[P.jsx("span",{className:"suggestion-icon",children:R.icon}),P.jsx("span",{className:"suggestion-text",children:R.text})]},R.id))})]}),P.jsx("div",{ref:he})]}),P.jsx(Zi,{scrollContainerRef:ge})]}),P.jsxs("div",{className:"chat-modal-input",children:[W&&P.jsxs("div",{className:"reply-preview",children:[P.jsxs("div",{className:"reply-preview-content",children:[P.jsxs("div",{className:"reply-preview-label",children:[a("replyingTo")," ",W.sender==="user"?a("replyingToYou"):a("replyingToAgent")]}),P.jsx("div",{className:"reply-preview-text",children:W.text})]}),P.jsx("button",{className:"reply-preview-close",onClick:()=>J(null),"aria-label":a("cancelReply"),type:"button",children:P.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:P.jsx("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),P.jsxs("div",{className:"chat-modal-input-row",children:[P.jsx("input",{ref:xe,type:"text",placeholder:a("messagePlaceholder"),value:A,onChange:R=>y(R.target.value),onKeyPress:wt,disabled:T,"aria-label":"Message input"}),P.jsx("button",{className:"send-button",onClick:Fe,"aria-label":a("sendMessage"),disabled:T||A?.trim()==="",type:"button",children:P.jsx("img",{src:Gi,alt:"Send",width:44,height:44})})]})]})]})}):null},hc=({position:e,theme:t,defaultOpen:n,onOpen:o,onClose:s,onTransaction:a})=>{const[r,i]=te.useState(n);te.useEffect(()=>{n&&o&&o()},[]),te.useEffect(()=>{if(typeof window>"u")return;const g=document.body,A=document.documentElement,y=g.style.overscrollBehavior,T=A.style.overscrollBehavior,B=g.style.overflow;return r&&(g.style.overscrollBehavior="none",A.style.overscrollBehavior="none",g.style.overflow="hidden"),()=>{g.style.overscrollBehavior=y,A.style.overscrollBehavior=T,g.style.overflow=B}},[r]);const l=te.useCallback(()=>{i(!0),o?.()},[o]),k=te.useCallback(()=>{i(!1),s?.()},[s]),D=te.useCallback(()=>{r?k():l()},[r,l,k]),Y={position:"fixed",[e==="bottom-right"?"right":"left"]:t.offset?.x??20,bottom:t.offset?.y??20,zIndex:t.zIndex??9999};return P.jsxs("div",{style:Y,role:"complementary","aria-label":"Chat widget",children:[P.jsx(qs,{buttonSize:t.buttonSize,onClick:D}),P.jsx(mc,{isOpen:r,onClose:k,onTransaction:a,position:e,modalChatStyle:t.modalChatStyle})]})},gc=({position:e="bottom-right",theme:t={},defaultOpen:n=!1,onOpen:o,onClose:s,account:a,onTransaction:r,language:i="en",rpcUrls:l})=>{const k={position:e,theme:t,rpcUrls:l};return typeof window>"u"?null:P.jsx(Li,{initialConfig:k,children:P.jsx(Si,{initialAccount:a,children:P.jsx(js,{initialLanguage:i,children:P.jsx(hc,{position:e,theme:t,defaultOpen:n,onOpen:o,onClose:s,onTransaction:r})})})})};bt.ChatWidget=gc,Object.defineProperty(bt,Symbol.toStringTag,{value:"Module"})}));
494
+ Error: ${z.error}`:"";l(a("txFailed")+$,"bot")}}else k(G,"pending"),l(a("txNoHandler"),"bot")}}catch(Z){console.error("Action form submit error:",Z),k(G,"pending"),l(r("txError",{message:Z instanceof Error?Z.message:"Unknown error"}),"bot")}},[k,b,u?.address,S,w?.nativeCurrency?.symbol,w?.blockExplorers?.default?.url,F,r,l,a,Y,n,O]),Ee=te.useCallback(R=>{g([R])},[g]),[Ft,Pt]=te.useState({}),ht=te.useCallback(async(R,X,G)=>{Pt(Z=>({...Z,[G]:!0}));try{await Pe(R,X,G)}finally{Pt(Z=>({...Z,[G]:!1}))}},[Pe]),gt=te.useCallback(R=>{R.key==="Enter"&&!R.shiftKey&&(R.preventDefault(),Fe())},[Fe]),ct=te.useCallback(()=>{const R=window.getSelection();R&&R.toString().length>0||t()},[t]);return e?P.jsx("div",{className:`chat-modal-overlay${s==="bottom-left"?" chat-modal-overlay--left":""}`,onClick:ct,role:"dialog","aria-modal":"true","aria-labelledby":"chat-modal-title",children:P.jsxs("div",{className:"chat-modal",style:o,onClick:R=>R.stopPropagation(),children:[P.jsxs("div",{className:"chat-modal-header",children:[P.jsxs("div",{className:"chat-modal-header-left",children:[P.jsx("div",{className:"keyring-logo",children:P.jsx("img",{src:Di,alt:"Keyring Logo",width:40,height:40})}),P.jsx("h3",{id:"chat-modal-title",children:a("chatTitle")})]}),P.jsx("button",{className:"close-button",onClick:t,"aria-label":a("closeChat"),type:"button",children:P.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:P.jsx("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]}),P.jsx(Ci,{address:u?.address,chainId:w?.chainId}),P.jsxs("div",{className:"chat-modal-messages-wrapper",children:[P.jsxs("div",{className:"chat-modal-messages",ref:ge,role:"log","aria-live":"polite",children:[i.map((R,X)=>P.jsxs("div",{children:[_e(X)&&P.jsx("div",{className:"date-separator",children:wi(R.timestamp)}),P.jsxs("div",{className:`message ${R.sender==="user"?"message-user":"message-bot"}`,role:"article",children:[P.jsx("button",{className:"message-reply-button",onClick:()=>Ce(R),"aria-label":a("replyToMessage"),type:"button",children:P.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:P.jsx("path",{d:"M3.5 8.5L1 6L3.5 3.5M1.5 6H10C12.2091 6 14 7.79086 14 10V13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),P.jsxs("div",{className:"message-bubble",children:[R.replyTo&&P.jsxs("div",{className:"message-reply-to",children:[P.jsxs("div",{className:"message-reply-to-label",children:[a("replyingTo")," ",R.replyTo.sender==="user"?a("replyingToYou"):a("replyingToAgent")]}),P.jsx("div",{className:"message-reply-to-text",children:R.replyTo.text})]}),P.jsx("div",{className:"message-text",children:P.jsx(Wi,{content:R.text})}),R.buttons&&R.buttons.length>0&&P.jsx("div",{className:"message-buttons",children:R.buttons.map(G=>P.jsx("button",{className:`message-button ${G.fullWidth?"full-width":""} ${G.action==="suggested_action"?"suggested-action":""}`,onClick:()=>Ne(G.value,G.action,G?.extraData),type:"button",children:G.text},G.id))}),R.actionData&&R.actionData.status==="pending"&&P.jsx(Yi,{action:R.actionData.action,initialValues:R.actionData.parameters,onSubmit:(G,Z)=>{ht(G,Z,R.id),setTimeout(()=>{he.current?.scrollIntoView({behavior:"smooth"})},100)},onCancel:()=>Ee(R.id),isSubmitting:Ft[R.id]||!1,tokenInfo:R.actionData.tokenInfo,nftInfo:R.actionData.nftInfo}),R.actionData&&R.actionData.status==="submitted"&&P.jsx("div",{className:"action-status action-status-submitted",children:a("txProcessing")}),R.actionData&&R.actionData.status==="success"&&P.jsx("div",{className:"action-status action-status-success",children:a("actionSuccess")}),R.actionData&&R.actionData.status==="fail"&&P.jsx("div",{className:"action-status action-status-fail",children:a("actionFail")}),P.jsxs("div",{className:"message-timestamp",children:[R.timestamp.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),R.sender==="user"&&P.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"check-icon",children:P.jsx("path",{d:"M13.3333 4L6 11.3333L2.66667 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})]})]},R.id)),T&&P.jsx("div",{className:"message message-bot typing-indicator",role:"status","aria-label":a("botIsTyping"),children:P.jsxs("div",{className:"message-bubble",children:[P.jsx("span",{className:"typing-dot"}),P.jsx("span",{className:"typing-dot"}),P.jsx("span",{className:"typing-dot"})]})}),(ve||i.length===1)&&P.jsxs(P.Fragment,{children:[P.jsx("div",{className:"message message-bot",role:"article",children:P.jsx("div",{className:"message-bubble",children:P.jsx("div",{className:"message-text",children:a("canIHelpYou")})})}),P.jsx("div",{className:"suggestions-container",children:We.map(R=>P.jsxs("button",{className:"suggestion-button",onClick:R.action,type:"button",children:[P.jsx("span",{className:"suggestion-icon",children:R.icon}),P.jsx("span",{className:"suggestion-text",children:R.text})]},R.id))})]}),P.jsx("div",{ref:he})]}),P.jsx(zi,{scrollContainerRef:ge})]}),P.jsxs("div",{className:"chat-modal-input",children:[W&&P.jsxs("div",{className:"reply-preview",children:[P.jsxs("div",{className:"reply-preview-content",children:[P.jsxs("div",{className:"reply-preview-label",children:[a("replyingTo")," ",W.sender==="user"?a("replyingToYou"):a("replyingToAgent")]}),P.jsx("div",{className:"reply-preview-text",children:W.text})]}),P.jsx("button",{className:"reply-preview-close",onClick:()=>J(null),"aria-label":a("cancelReply"),type:"button",children:P.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:P.jsx("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),P.jsxs("div",{className:"chat-modal-input-row",children:[P.jsx("input",{ref:xe,type:"text",placeholder:a("messagePlaceholder"),value:A,onChange:R=>y(R.target.value),onKeyPress:gt,disabled:T,"aria-label":"Message input"}),P.jsx("button",{className:"send-button",onClick:Fe,"aria-label":a("sendMessage"),disabled:T||A?.trim()==="",type:"button",children:P.jsx("img",{src:Li,alt:"Send",width:44,height:44})})]})]})]})}):null},cc=({position:e,theme:t,defaultOpen:n,onOpen:s,onClose:o,onTransaction:a})=>{const[r,i]=te.useState(n);te.useEffect(()=>{n&&s&&s()},[]),te.useEffect(()=>{if(typeof window>"u")return;const g=document.body,A=document.documentElement,y=g.style.overscrollBehavior,T=A.style.overscrollBehavior,B=g.style.overflow;return r&&(g.style.overscrollBehavior="none",A.style.overscrollBehavior="none",g.style.overflow="hidden"),()=>{g.style.overscrollBehavior=y,A.style.overscrollBehavior=T,g.style.overflow=B}},[r]);const l=te.useCallback(()=>{i(!0),s?.()},[s]),k=te.useCallback(()=>{i(!1),o?.()},[o]),O=te.useCallback(()=>{r?k():l()},[r,l,k]),Y={position:"fixed",[e==="bottom-right"?"right":"left"]:t.offset?.x??20,bottom:t.offset?.y??20,zIndex:t.zIndex??9999};return P.jsxs("div",{style:Y,role:"complementary","aria-label":"Chat widget",children:[P.jsx(zs,{buttonSize:t.buttonSize,onClick:O}),P.jsx(ic,{isOpen:r,onClose:k,onTransaction:a,position:e,modalChatStyle:t.modalChatStyle})]})},lc=({position:e="bottom-right",theme:t={},defaultOpen:n=!1,onOpen:s,onClose:o,account:a,onTransaction:r,language:i="en",rpcUrls:l})=>{const k={position:e,theme:t,rpcUrls:l};return typeof window>"u"?null:P.jsx(Ii,{initialConfig:k,children:P.jsx(Ti,{initialAccount:a,children:P.jsx(Ys,{initialLanguage:i,children:P.jsx(cc,{position:e,theme:t,defaultOpen:n,onOpen:s,onClose:o,onTransaction:r})})})})};wt.ChatWidget=lc,Object.defineProperty(wt,Symbol.toStringTag,{value:"Module"})}));