keyring-chatbot-agent-sdk-test 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat-widget.es.js +333 -323
- package/dist/chat-widget.umd.js +39 -39
- package/package.json +1 -1
package/dist/chat-widget.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
2
|
import { jsx as W, Fragment as as, jsxs as ve } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
4
|
-
const Xa = "data:image/png;base64,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", Ka = "Keyring Agent", Za = "Close chat", _a = "Message ....", $a = "Send message", er = "Bot is typing", tr = "Can I help you with anything?", nr = "Reply to message", or = "Replying to", sr = "You", ar = "Keyring Agent", rr = "Cancel reply", ir = "Ask a question", cr = "I have a question", lr = "Ask me anything", dr = "Buy trending token", ur = "Your wallet is connected but the chain is not supported for trading. Please switch to a supported chain to see trending tokens.", fr = "Please connect your wallet to see trending tokens.", pr = "⏳ Processing transaction...", mr = "✅ Transaction completed", hr = "❌ Action cancelled or failed", gr = "⏳ Transaction submitted. Waiting for confirmation...", wr = "✅ Transaction confirmed!", br = "❌ Transaction reverted on-chain.", yr = "⚠️ Transaction submitted but confirmation timed out. Please check manually.", Ar = "✅ Transaction successful!", vr = "❌ Transaction failed. Please try again.", kr = "⚠️ No transaction handler configured.", Tr = "⚠️ **Insufficient {symbol} for gas!** You have {balance} {symbol} but need ~{fee} {symbol} for the transaction fee. Please top up your wallet and try again.", Cr = "❌ Error: {message}", Er = "Confirm", xr = "Confirm swap", Sr = "Ready to proceed with the swap?", Ir = "⚠️ Unable to get swap estimation. Error: {error}", Nr = "Cancel", Br = "Execute", Fr = "⏳ Processing...", Rr = "Balance:", Or = "Token not found in your wallet.", Pr = "You have no {symbol} balance in your wallet.", Dr = "Insufficient balance. Spendable: {balance} {symbol}", Lr = "{field} is required", Ur = "Invalid address (0x + 40 hex chars)", Mr = "Must be a positive number", Hr = "Must be a valid number", Wr = "Open chat", Vr = "Open chat support", Gr = "This is the spendable balance of your wallet on {chain} chain. Please choose the coins you want to use for this trade.", Yr = "Sorry, I couldn't find any tokens in your wallet on {chain} chain. Please make sure you have some tokens to trade.",
|
|
3
|
+
import qa, { useState as _e, useEffect as ct, useCallback as Ie, createContext as oo, useContext as so, memo as ja, useRef as Bt, useMemo as Qa } from "react";
|
|
4
|
+
const Xa = "data:image/png;base64,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", Ka = "Keyring Agent", Za = "Close chat", _a = "Message ....", $a = "Send message", er = "Bot is typing", tr = "Can I help you with anything?", nr = "Reply to message", or = "Replying to", sr = "You", ar = "Keyring Agent", rr = "Cancel reply", ir = "Ask a question", cr = "I have a question", lr = "Ask me anything", dr = "Buy trending token", ur = "Your wallet is connected but the chain is not supported for trading. Please switch to a supported chain to see trending tokens.", fr = "Please connect your wallet to see trending tokens.", pr = "⏳ Processing transaction...", mr = "✅ Transaction completed", hr = "❌ Action cancelled or failed", gr = "⏳ Transaction submitted. Waiting for confirmation...", wr = "✅ Transaction confirmed!", br = "❌ Transaction reverted on-chain.", yr = "⚠️ Transaction submitted but confirmation timed out. Please check manually.", Ar = "✅ Transaction successful!", vr = "❌ Transaction failed. Please try again.", kr = "⚠️ No transaction handler configured.", Tr = "⚠️ **Insufficient {symbol} for gas!** You have {balance} {symbol} but need ~{fee} {symbol} for the transaction fee. Please top up your wallet and try again.", Cr = "❌ Error: {message}", Er = "Confirm", xr = "Confirm swap", Sr = "Ready to proceed with the swap?", Ir = "⚠️ Unable to get swap estimation. Error: {error}", Nr = "Cancel", Br = "Execute", Fr = "⏳ Processing...", Rr = "Balance:", Or = "Token not found in your wallet.", Pr = "You have no {symbol} balance in your wallet.", Dr = "Insufficient balance. Spendable: {balance} {symbol}", Lr = "{field} is required", Ur = "Invalid address (0x + 40 hex chars)", Mr = "Must be a positive number", Hr = "Must be a valid number", Wr = "Open chat", Vr = "Open chat support", Gr = "This is the spendable balance of your wallet on {chain} chain. Please choose the coins you want to use for this trade.", Yr = "Sorry, I couldn't find any tokens in your wallet on {chain} chain. Please make sure you have some tokens to trade.", zr = "Sorry, I could not fetch your wallet balance. Please try again.", Jr = "Sorry, I encountered an error fetching your wallet balance.", qr = "Insufficient fee. Please ensure you have enough {symbol} to cover the transaction fees, or select a different token.", jr = `Select the amount of {symbol} to use:
|
|
5
5
|
|
|
6
6
|
Spendable: {balance} {symbol}`, Qr = `
|
|
7
7
|
⚠️ **Insufficient {symbol} for fees!**
|
|
@@ -26,7 +26,7 @@ Is there any token you want to buy?`, Ni = "Sorry, I encountered an error fetchi
|
|
|
26
26
|
|
|
27
27
|
{list}
|
|
28
28
|
|
|
29
|
-
Select a token to interact with:`, Hi = "You don't have any tokens in your wallet on this chain.", Wi = "Sorry, I encountered an error fetching your balances.", Vi = "Send {symbol}", Gi = "Swap {symbol}", Yi = "Buy more {symbol}",
|
|
29
|
+
Select a token to interact with:`, Hi = "You don't have any tokens in your wallet on this chain.", Wi = "Sorry, I encountered an error fetching your balances.", Vi = "Send {symbol}", Gi = "Swap {symbol}", Yi = "Buy more {symbol}", zi = "Send Native Token", Ji = "Send native token (ETH, BNB, MATIC, etc.) to an address", qi = "Send Token (ERC20)", ji = "Send an ERC20 token to an address", Qi = "Swap Token", Xi = "Swap one token for another", Ki = "Approve Token", Zi = "Approve a spender to use your tokens", _i = "Wrap Native Token", $i = "Wrap native token (ETH → WETH)", ec = "Unwrap Native Token", tc = "Unwrap native token (WETH → ETH)", nc = "Send NFT", oc = "Transfer an ERC721 or ERC1155 NFT to another address", sc = "Recipient Address", ac = "Amount", rc = "Token Contract", ic = "Token Symbol", cc = "Decimals", lc = "From Token", dc = "From Symbol", uc = "To Token", fc = "To Symbol", pc = "From Decimals", mc = "To Decimals", hc = "Spender Address", gc = "Amount (empty = unlimited)", wc = "NFT Contract", bc = "Token ID", yc = "Token Standard", Ac = "NFT Name", vc = "Must be a positive integer", kc = "Amount cannot exceed available balance {max}", Tc = "Received: {value}", Cc = 'Action "{action}" executed for: {value}', Ec = "I'll help you buy {symbol}. Let me show your available tokens to trade with.", xc = `I couldn't find the token "{symbol}" on this chain. Here are the trending tokens you can buy:`, Sc = "Preparing your swap...", Ic = "Yes", Nc = "Please choose which token you want to swap from:", Bc = "You want to swap {symbol}. Please choose which token you want to receive:", Fc = 'I need more details for your swap. Please specify which tokens you want to swap (e.g. "Swap 1 ETH to USDC").', Rc = "Let me show you your NFT collection!", Oc = "Which token would you like to send?", Pc = "Which NFT would you like to send?", Dc = "Which token would you like to swap? Here are your current balances:", Lc = "Spendable", Uc = {
|
|
30
30
|
chatTitle: Ka,
|
|
31
31
|
closeChat: Za,
|
|
32
32
|
messagePlaceholder: _a,
|
|
@@ -75,9 +75,9 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
75
75
|
openChatTitle: Vr,
|
|
76
76
|
walletBalanceSpendable: Gr,
|
|
77
77
|
walletNoTokensFound: Yr,
|
|
78
|
-
walletFetchFailed:
|
|
79
|
-
walletFetchError:
|
|
80
|
-
insufficientFeeToken:
|
|
78
|
+
walletFetchFailed: zr,
|
|
79
|
+
walletFetchError: Jr,
|
|
80
|
+
insufficientFeeToken: qr,
|
|
81
81
|
selectAmountOf: jr,
|
|
82
82
|
swapFeeWarning: Qr,
|
|
83
83
|
swapNeedApprove: Xr,
|
|
@@ -129,9 +129,9 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
129
129
|
buttonSendToken: Vi,
|
|
130
130
|
buttonSwapToken: Gi,
|
|
131
131
|
buttonBuyMoreToken: Yi,
|
|
132
|
-
actionSendNativeLabel:
|
|
133
|
-
actionSendNativeDesc:
|
|
134
|
-
actionSendTokenLabel:
|
|
132
|
+
actionSendNativeLabel: zi,
|
|
133
|
+
actionSendNativeDesc: Ji,
|
|
134
|
+
actionSendTokenLabel: qi,
|
|
135
135
|
actionSendTokenDesc: ji,
|
|
136
136
|
actionSwapTokenLabel: Qi,
|
|
137
137
|
actionSwapTokenDesc: Xi,
|
|
@@ -176,7 +176,7 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
176
176
|
sendNftChoose: Pc,
|
|
177
177
|
swapChooseToken: Dc,
|
|
178
178
|
spendable: Lc
|
|
179
|
-
}, Mc = "Keyringエージェント", Hc = "チャットを閉じる", Wc = "メッセージ....", Vc = "メッセージを送信", Gc = "ボットが入力中", Yc = "何かお手伝いできますか?",
|
|
179
|
+
}, Mc = "Keyringエージェント", Hc = "チャットを閉じる", Wc = "メッセージ....", Vc = "メッセージを送信", Gc = "ボットが入力中", Yc = "何かお手伝いできますか?", zc = "メッセージに返信", Jc = "返信先:", qc = "あなた", jc = "Keyringエージェント", Qc = "返信をキャンセル", Xc = "質問する", Kc = "質問があります", Zc = "何でも聞いてください", _c = "トレンドトークンを購入", $c = "ウォレットは接続されていますが、このチェーンは取引に対応していません。対応チェーンに切り替えてトレンドトークンを確認してください。", el = "トレンドトークンを確認するにはウォレットを接続してください。", tl = "⏳ トランザクション処理中...", nl = "✅ トランザクション完了", ol = "❌ アクションがキャンセルまたは失敗しました", sl = "⏳ トランザクションを送信しました。確認をお待ちください...", al = "✅ トランザクションが確認されました!", rl = "❌ トランザクションはオンチェーンでリバートされました。", il = "⚠️ トランザクションは送信されましたが、確認がタイムアウトしました。手動で確認してください。", cl = "✅ トランザクションが成功しました!", ll = "トランザクションが失敗しました。もう一度お試しください。", dl = "⚠️ トランザクションハンドラが設定されていません。", ul = "⚠️ **ガス代の{symbol}が不足しています!** {symbol}の残高は{balance}ですが、取引手数料として約{fee} {symbol}が必要です。ウォレットをチャージして再試行してください。", fl = "❌ エラー:{message}", pl = "確認", ml = "スワップを確認", hl = "スワップを実行する準備ができていますか?", gl = "⚠️ スワップの見積もりを取得できませんでした。エラー:{error}", wl = "キャンセル", bl = "🚀 実行", yl = "⏳ 処理中...", Al = "残高:", vl = "ウォレットにトークンが見つかりませんでした。", kl = "ウォレットに{symbol}の残高がありません。", Tl = "残高が不足しています。利用可能:{balance} {symbol}", Cl = "{field}は必須です", El = "無効なアドレス(0x + 40桁の16進数)", xl = "正の数値を入力してください", Sl = "有効な数値を入力してください", Il = "チャットを開く", Nl = "チャットサポートを開く", Bl = "{chain}チェーンのウォレットの利用可能残高です。この取引に使用するコインを選択してください。", Fl = "申し訳ありませんが、{chain}チェーンのウォレットにトークンが見つかりませんでした。取引用のトークンがあることをご確認ください。", Rl = "ウォレット残高を取得できませんでした。もう一度お試しください。", Ol = "ウォレット残高の取得中にエラーが発生しました。", Pl = "手数料が不足しています。{symbol}が取引手数料をカバーするのに十分であることを確認するか、別のトークンを選択してください。", Dl = `使用する{symbol}の量を選択:
|
|
180
180
|
|
|
181
181
|
利用可能: {balance} {symbol}`, Ll = `
|
|
182
182
|
⚠️ **手数料の{symbol}が不足しています!**
|
|
@@ -188,7 +188,7 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
188
188
|
利用可能: {balance} {from}`, Gl = `⚠️ スワップ前にトークンの承認が必要です。
|
|
189
189
|
|
|
190
190
|
ステップ1: {symbol}を承認
|
|
191
|
-
ステップ2: スワップを確認`, Yl = "⚠️ スワップの見積もりを取得できませんでした。もう一度お試しください。",
|
|
191
|
+
ステップ2: スワップを確認`, Yl = "⚠️ スワップの見積もりを取得できませんでした。もう一度お試しください。", zl = "⚠️ 残高不足!{symbol}の残高は{balance}ですが、{amount}が必要です。ウォレットをチャージするか、金額を減らしてください。", Jl = "⚠️ ウォレットに{symbol}がありません。スワップ前に取得してください。", ql = "⚠️ 残高不足!{balance} {symbol}しかありませんが、{amount}が必要です。金額を減らすかトークンを追加してください。", jl = `スワップする{symbol}の量を選択:
|
|
192
192
|
|
|
193
193
|
利用可能: {balance} {symbol}`, Ql = "⚠️ トークンリストを読み込めませんでした。宛先トークンを指定してください。", Xl = "📈 {chain}チェーンのトレンドトークン。受け取りたいトークンを選択してください:", Kl = "トランザクション処理中... お待ちください。", Zl = "✅ トランザクションが確認されました!スワップが完了しました。", _l = "❌ トランザクションはオンチェーンでリバートされました。もう一度お試しください。", $l = "✅ トランザクションが成功しました!スワップが完了しました。", e0 = "⚠️ トランザクションデータが利用できません。", t0 = "⚠️ 承認データが利用できません。", n0 = "{symbol}を承認中... ウォレットで確認してください。", o0 = "✅ {symbol}が正常に承認されました!", s0 = "スワップを実行できるようになりました。", a0 = "スワップを確認", r0 = "❌ 承認に失敗しました。もう一度お試しください。", i0 = "⚠️ ウォレット残高を取得できませんでした。", c0 = "⚠️ 残高を読み込めませんでした。もう一度お試しください。", l0 = "⚠️ 残高を取得できませんでした。もう一度お試しください。", d0 = `📤 **{name}**を送信 ({standard} #{tokenId})
|
|
194
194
|
|
|
@@ -201,16 +201,16 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
201
201
|
|
|
202
202
|
{list}
|
|
203
203
|
|
|
204
|
-
インタラクトするトークンを選択:`, S0 = "このチェーンのウォレットにトークンがありません。", I0 = "残高の取得中にエラーが発生しました。", N0 = "{symbol}を送る", B0 = "{symbol}をスワップ", F0 = "{symbol}をもっと買う", R0 = "ネイティブトークンを送る", O0 = "ネイティブトークン(ETH、BNB、MATICなど)をアドレスに送る", P0 = "トークンを送る(ERC20)", D0 = "ERC20トークンをアドレスに送る", L0 = "トークンをスワップ", U0 = "あるトークンを別のトークンに交換する", M0 = "トークンを承認", H0 = "指定したアドレスがトークンを使用することを承認する", W0 = "ネイティブトークンをラップ", V0 = "ネイティブトークンをラップする(ETH → WETH)", G0 = "ネイティブトークンをアンラップ", Y0 = "ネイティブトークンをアンラップする(WETH → ETH)",
|
|
204
|
+
インタラクトするトークンを選択:`, S0 = "このチェーンのウォレットにトークンがありません。", I0 = "残高の取得中にエラーが発生しました。", N0 = "{symbol}を送る", B0 = "{symbol}をスワップ", F0 = "{symbol}をもっと買う", R0 = "ネイティブトークンを送る", O0 = "ネイティブトークン(ETH、BNB、MATICなど)をアドレスに送る", P0 = "トークンを送る(ERC20)", D0 = "ERC20トークンをアドレスに送る", L0 = "トークンをスワップ", U0 = "あるトークンを別のトークンに交換する", M0 = "トークンを承認", H0 = "指定したアドレスがトークンを使用することを承認する", W0 = "ネイティブトークンをラップ", V0 = "ネイティブトークンをラップする(ETH → WETH)", G0 = "ネイティブトークンをアンラップ", Y0 = "ネイティブトークンをアンラップする(WETH → ETH)", z0 = "NFTを送る", J0 = "ERC721またはERC1155のNFTを別のアドレスに転送する", q0 = "受取アドレス", j0 = "数量", Q0 = "トークンコントラクト", X0 = "トークンシンボル", K0 = "小数桁数", Z0 = "送信元トークン", _0 = "送信元シンボル", $0 = "送信先トークン", ed = "送信先シンボル", td = "送信元小数桁数", nd = "送信先小数桁数", od = "承認先アドレス", sd = "数量(空欄 = 無制限)", ad = "NFTコントラクト", rd = "Token ID", id = "トークン規格", cd = "NFT名", ld = "正の整数でなければなりません", dd = "数量は利用可能な残高 {max} を超えられません", ud = "受信しました:{value}", fd = 'アクション "{action}" を {value} に対して実行しました', pd = "{symbol}の購入をお手伝いします。取引に使えるトークンを表示します。", md = 'このチェーンでトークン "{symbol}" が見つかりませんでした。購入できるトレンドトークンをご紹介します:', hd = "スワップを準備中...", gd = "はい", wd = "スワップ元のトークンを選択してください:", bd = "{symbol}をスワップしたいですね。受け取りたいトークンを選択してください:", yd = 'スワップの詳細が必要です。スワップするトークンを指定してください(例:"1 ETH を USDC にスワップ")。', Ad = "あなたのNFTコレクションをお見せします!", vd = "どのトークンを送りますか?", kd = "どのNFTを送りますか?", Td = "どのトークンをスワップしますか?現在の残高はこちらです:", Cd = "利用可能", Ed = {
|
|
205
205
|
chatTitle: Mc,
|
|
206
206
|
closeChat: Hc,
|
|
207
207
|
messagePlaceholder: Wc,
|
|
208
208
|
sendMessage: Vc,
|
|
209
209
|
botIsTyping: Gc,
|
|
210
210
|
canIHelpYou: Yc,
|
|
211
|
-
replyToMessage:
|
|
212
|
-
replyingTo:
|
|
213
|
-
replyingToYou:
|
|
211
|
+
replyToMessage: zc,
|
|
212
|
+
replyingTo: Jc,
|
|
213
|
+
replyingToYou: qc,
|
|
214
214
|
replyingToAgent: jc,
|
|
215
215
|
cancelReply: Qc,
|
|
216
216
|
suggestionAskText: Xc,
|
|
@@ -262,9 +262,9 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
262
262
|
swapSelectAmount: Vl,
|
|
263
263
|
swapApprovalRequired: Gl,
|
|
264
264
|
swapEstimationFailed: Yl,
|
|
265
|
-
swapInsufficientNativeBalance:
|
|
266
|
-
swapTokenNotInWallet:
|
|
267
|
-
swapInsufficientTokenBalance:
|
|
265
|
+
swapInsufficientNativeBalance: zl,
|
|
266
|
+
swapTokenNotInWallet: Jl,
|
|
267
|
+
swapInsufficientTokenBalance: ql,
|
|
268
268
|
selectAmountToSwap: jl,
|
|
269
269
|
couldNotLoadTokenList: Ql,
|
|
270
270
|
trendingTokensForReceive: Xl,
|
|
@@ -316,9 +316,9 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
316
316
|
actionWrapNativeDesc: V0,
|
|
317
317
|
actionUnwrapNativeLabel: G0,
|
|
318
318
|
actionUnwrapNativeDesc: Y0,
|
|
319
|
-
actionSendNftLabel:
|
|
320
|
-
actionSendNftDesc:
|
|
321
|
-
fieldToAddress:
|
|
319
|
+
actionSendNftLabel: z0,
|
|
320
|
+
actionSendNftDesc: J0,
|
|
321
|
+
fieldToAddress: q0,
|
|
322
322
|
fieldAmount: j0,
|
|
323
323
|
fieldTokenContract: Q0,
|
|
324
324
|
fieldTokenSymbol: X0,
|
|
@@ -351,7 +351,7 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
351
351
|
sendNftChoose: kd,
|
|
352
352
|
swapChooseToken: Td,
|
|
353
353
|
spendable: Cd
|
|
354
|
-
}, xd = "Keyring 助手", Sd = "关闭聊天", Id = "消息....", Nd = "发送消息", Bd = "机器人正在输入", Fd = "有什么可以帮您的吗?", Rd = "回复消息", Od = "回复", Pd = "你", Dd = "Keyring 助手", Ld = "取消回复", Ud = "提问", Md = "我有一个问题", Hd = "请随时提问", Wd = "购买热门代币", Vd = "您的钱包已连接,但该链不支持交易。请切换到受支持的链以查看热门代币。", Gd = "请连接钱包以查看热门代币。", Yd = "⏳ 交易处理中...",
|
|
354
|
+
}, xd = "Keyring 助手", Sd = "关闭聊天", Id = "消息....", Nd = "发送消息", Bd = "机器人正在输入", Fd = "有什么可以帮您的吗?", Rd = "回复消息", Od = "回复", Pd = "你", Dd = "Keyring 助手", Ld = "取消回复", Ud = "提问", Md = "我有一个问题", Hd = "请随时提问", Wd = "购买热门代币", Vd = "您的钱包已连接,但该链不支持交易。请切换到受支持的链以查看热门代币。", Gd = "请连接钱包以查看热门代币。", Yd = "⏳ 交易处理中...", zd = "✅ 交易完成", Jd = "❌ 操作已取消或失败", qd = "⏳ 交易已提交,等待确认...", jd = "✅ 交易已确认!", Qd = "❌ 交易在链上已回滚。", Xd = "⚠️ 交易已提交,但确认超时,请手动检查。", Kd = "✅ 交易成功!", Zd = "交易失败,请重试。", _d = "⚠️ 未配置交易处理程序。", $d = "⚠️ **{symbol}不足以支付Gas费!** 您有 {balance} {symbol},但需要约 {fee} {symbol} 作为交易费用。请充值钱包后重试。", eu = "❌ 错误:{message}", tu = "确认", nu = "确认兑换", ou = "准备好进行兑换了吗?", su = "⚠️ 无法获取兑换估算。错误:{error}", au = "取消", ru = "🚀 执行", iu = "⏳ 处理中...", cu = "余额:", lu = "您的钱包中未找到该代币。", du = "您的钱包中没有 {symbol} 余额。", uu = "余额不足。可用:{balance} {symbol}", fu = "{field}为必填项", pu = "无效地址(0x + 40个十六进制字符)", mu = "必须为正数", hu = "必须为有效数字", gu = "打开聊天", wu = "打开聊天支持", bu = "这是您在{chain}链上钱包的可用余额。请选择您要用于此交易的代币。", yu = "抱歉,在{chain}链上您的钱包中找不到任何代币。请确保您有一些代币可以交易。", Au = "无法获取钱包余额,请重试。", vu = "获取钱包余额时遇到错误。", ku = "手续费不足。请确保您有足够的 {symbol} 支付交易手续费,或选择其他代币。", Tu = `选择要使用的 {symbol} 数量:
|
|
355
355
|
|
|
356
356
|
可用: {balance} {symbol}`, Cu = `
|
|
357
357
|
⚠️ **{symbol}不足以支付手续费!**
|
|
@@ -365,7 +365,7 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
365
365
|
第1步:授权 {symbol}
|
|
366
366
|
第2步:确认兑换`, Fu = "⚠️ 获取兑换估算失败,请重试。", Ru = "⚠️ 余额不足!您有 {balance} {symbol},但需要 {amount}。请充值钱包或减少金额。", Ou = "⚠️ 您的钱包中没有 {symbol}。请先获取一些再进行兑换。", Pu = "⚠️ 余额不足!您有 {balance} {symbol},但需要 {amount}。请减少金额或添加更多代币。", Du = `选择要兑换的 {symbol} 数量:
|
|
367
367
|
|
|
368
|
-
可用: {balance} {symbol}`, Lu = "⚠️ 无法加载代币列表。请指定目标代币。", Uu = "📈 {chain}链上的热门代币。请选择您想接收的代币:", Mu = "交易处理中... 请稍候。", Hu = "✅ 交易已确认!您的兑换已完成。", Wu = "❌ 交易在链上已回滚,请重试。", Vu = "✅ 交易成功!您的兑换已完成。", Gu = "⚠️ 交易数据不可用。", Yu = "⚠️ 授权数据不可用。",
|
|
368
|
+
可用: {balance} {symbol}`, Lu = "⚠️ 无法加载代币列表。请指定目标代币。", Uu = "📈 {chain}链上的热门代币。请选择您想接收的代币:", Mu = "交易处理中... 请稍候。", Hu = "✅ 交易已确认!您的兑换已完成。", Wu = "❌ 交易在链上已回滚,请重试。", Vu = "✅ 交易成功!您的兑换已完成。", Gu = "⚠️ 交易数据不可用。", Yu = "⚠️ 授权数据不可用。", zu = "正在授权 {symbol}... 请在钱包中确认。", Ju = "✅ {symbol} 授权成功!", qu = "现在您可以执行兑换了。", ju = "确认兑换", Qu = "❌ 授权失败,请重试。", Xu = "⚠️ 无法获取钱包余额。", Ku = "⚠️ 无法加载余额,请重试。", Zu = "⚠️ 无法获取余额,请重试。", _u = `📤 发送 **{name}** ({standard} #{tokenId})
|
|
369
369
|
|
|
370
370
|
请检查并填写收件人地址:`, $u = `您的NFT收藏({count}件):
|
|
371
371
|
|
|
@@ -376,7 +376,7 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
376
376
|
|
|
377
377
|
{list}
|
|
378
378
|
|
|
379
|
-
选择要操作的代币:`, h2 = "您的钱包在此链上没有任何代币。", g2 = "获取余额时遇到错误,请重试。", w2 = "发送{symbol}", b2 = "兑换{symbol}", y2 = "购买更多{symbol}", A2 = "发送原生代币", v2 = "发送原生代币(ETH、BNB、MATIC 等)到某个地址", k2 = "发送代币(ERC20)", T2 = "将 ERC20 代币发送到某个地址", C2 = "兑换代币", E2 = "将一种代币兑换为另一种代币", x2 = "授权代币", S2 = "授权某地址使用您的代币", I2 = "包装原生代币", N2 = "包装原生代币(ETH → WETH)", B2 = "解包原生代币", F2 = "解包原生代币(WETH → ETH)", R2 = "发送 NFT", O2 = "将 ERC721 或 ERC1155 NFT 转移到另一个地址", P2 = "收款地址", D2 = "数量", L2 = "代币合约", U2 = "代币符号", M2 = "小数位数", H2 = "源代币", W2 = "源代币符号", V2 = "目标代币", G2 = "目标代币符号", Y2 = "源代币小数位",
|
|
379
|
+
选择要操作的代币:`, h2 = "您的钱包在此链上没有任何代币。", g2 = "获取余额时遇到错误,请重试。", w2 = "发送{symbol}", b2 = "兑换{symbol}", y2 = "购买更多{symbol}", A2 = "发送原生代币", v2 = "发送原生代币(ETH、BNB、MATIC 等)到某个地址", k2 = "发送代币(ERC20)", T2 = "将 ERC20 代币发送到某个地址", C2 = "兑换代币", E2 = "将一种代币兑换为另一种代币", x2 = "授权代币", S2 = "授权某地址使用您的代币", I2 = "包装原生代币", N2 = "包装原生代币(ETH → WETH)", B2 = "解包原生代币", F2 = "解包原生代币(WETH → ETH)", R2 = "发送 NFT", O2 = "将 ERC721 或 ERC1155 NFT 转移到另一个地址", P2 = "收款地址", D2 = "数量", L2 = "代币合约", U2 = "代币符号", M2 = "小数位数", H2 = "源代币", W2 = "源代币符号", V2 = "目标代币", G2 = "目标代币符号", Y2 = "源代币小数位", z2 = "目标代币小数位", J2 = "授权地址", q2 = "数量(留空 = 无限授权)", j2 = "NFT 合约", Q2 = "Token ID", X2 = "代币标准", K2 = "NFT 名称", Z2 = "必须是正整数", _2 = "数量不能超过可用余额 {max}", $2 = "已收到:{value}", e1 = '操作 "{action}" 已为 {value} 执行', t1 = "我来帮您购买 {symbol}。让我展示您可用于交易的代币。", n1 = '在此链上找不到代币 "{symbol}"。以下是您可以购买的热门代币:', o1 = "正在准备您的兑换...", s1 = "是", a1 = "请选择您要兑换的源代币:", r1 = "您要兑换 {symbol}。请选择您想要接收的代币:", i1 = '我需要更多兑换详情。请指定您要兑换的代币(例如:"兑换 1 ETH 到 USDC")。', c1 = "让我展示您的 NFT 收藏!", l1 = "您想发送哪种代币?", d1 = "您想发送哪个 NFT?", u1 = "您想兑换哪种代币?以下是您当前的余额:", f1 = "可用", p1 = {
|
|
380
380
|
chatTitle: xd,
|
|
381
381
|
closeChat: Sd,
|
|
382
382
|
messagePlaceholder: Id,
|
|
@@ -395,9 +395,9 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
395
395
|
walletConnectedChainUnsupported: Vd,
|
|
396
396
|
walletNotConnected: Gd,
|
|
397
397
|
actionProcessing: Yd,
|
|
398
|
-
actionSuccess:
|
|
399
|
-
actionFail:
|
|
400
|
-
txSubmitted:
|
|
398
|
+
actionSuccess: zd,
|
|
399
|
+
actionFail: Jd,
|
|
400
|
+
txSubmitted: qd,
|
|
401
401
|
txConfirmed: jd,
|
|
402
402
|
txReverted: Qd,
|
|
403
403
|
txTimeout: Xd,
|
|
@@ -449,9 +449,9 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
449
449
|
txSuccessfulSwap: Vu,
|
|
450
450
|
txDataNotAvailable: Gu,
|
|
451
451
|
approvalDataNotAvailable: Yu,
|
|
452
|
-
approving:
|
|
453
|
-
approvalSuccess:
|
|
454
|
-
approvalConfirmSwap:
|
|
452
|
+
approving: zu,
|
|
453
|
+
approvalSuccess: Ju,
|
|
454
|
+
approvalConfirmSwap: qu,
|
|
455
455
|
confirmSwapButton: ju,
|
|
456
456
|
approvalFailed: Qu,
|
|
457
457
|
couldNotFetchBalance: Xu,
|
|
@@ -503,9 +503,9 @@ Select a token to interact with:`, Hi = "You don't have any tokens in your walle
|
|
|
503
503
|
fieldTokenOut: V2,
|
|
504
504
|
fieldTokenOutSymbol: G2,
|
|
505
505
|
fieldTokenInDecimals: Y2,
|
|
506
|
-
fieldTokenOutDecimals:
|
|
507
|
-
fieldSpenderAddress:
|
|
508
|
-
fieldAmountUnlimited:
|
|
506
|
+
fieldTokenOutDecimals: z2,
|
|
507
|
+
fieldSpenderAddress: J2,
|
|
508
|
+
fieldAmountUnlimited: q2,
|
|
509
509
|
fieldNftContract: j2,
|
|
510
510
|
fieldTokenId: Q2,
|
|
511
511
|
fieldTokenStandard: X2,
|
|
@@ -669,11 +669,11 @@ class w1 extends pe {
|
|
|
669
669
|
super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`, { name: "SizeOverflowError" });
|
|
670
670
|
}
|
|
671
671
|
}
|
|
672
|
-
function
|
|
672
|
+
function Jt(e, { strict: t = !0 } = {}) {
|
|
673
673
|
return !e || typeof e != "string" ? !1 : t ? /^0x[0-9a-fA-F]*$/.test(e) : e.startsWith("0x");
|
|
674
674
|
}
|
|
675
675
|
function $e(e) {
|
|
676
|
-
return
|
|
676
|
+
return Jt(e, { strict: !1 }) ? Math.ceil((e.length - 2) / 2) : e.length;
|
|
677
677
|
}
|
|
678
678
|
function En(e, { dir: t = "left" } = {}) {
|
|
679
679
|
let n = typeof e == "string" ? e.replace("0x", "") : e, o = 0;
|
|
@@ -691,7 +691,7 @@ class ds extends pe {
|
|
|
691
691
|
super(`${o.charAt(0).toUpperCase()}${o.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`, { name: "SizeExceedsPaddingSizeError" });
|
|
692
692
|
}
|
|
693
693
|
}
|
|
694
|
-
function
|
|
694
|
+
function qt(e, { dir: t, size: n = 32 } = {}) {
|
|
695
695
|
return typeof e == "string" ? Et(e, { dir: t, size: n }) : b1(e, { dir: t, size: n });
|
|
696
696
|
}
|
|
697
697
|
function Et(e, { dir: t, size: n = 32 } = {}) {
|
|
@@ -728,14 +728,14 @@ function Yt(e, t = {}) {
|
|
|
728
728
|
}
|
|
729
729
|
function us(e, t = {}) {
|
|
730
730
|
const n = `0x${Number(e)}`;
|
|
731
|
-
return typeof t.size == "number" ? (jt(n, { size: t.size }),
|
|
731
|
+
return typeof t.size == "number" ? (jt(n, { size: t.size }), qt(n, { size: t.size })) : n;
|
|
732
732
|
}
|
|
733
733
|
function At(e, t = {}) {
|
|
734
734
|
let n = "";
|
|
735
735
|
for (let s = 0; s < e.length; s++)
|
|
736
736
|
n += y1[e[s]];
|
|
737
737
|
const o = `0x${n}`;
|
|
738
|
-
return typeof t.size == "number" ? (jt(o, { size: t.size }),
|
|
738
|
+
return typeof t.size == "number" ? (jt(o, { size: t.size }), qt(o, { dir: "right", size: t.size })) : o;
|
|
739
739
|
}
|
|
740
740
|
function ue(e, t = {}) {
|
|
741
741
|
const { signed: n, size: o } = t, s = BigInt(e);
|
|
@@ -753,7 +753,7 @@ function ue(e, t = {}) {
|
|
|
753
753
|
});
|
|
754
754
|
}
|
|
755
755
|
const i = `0x${(n && s < 0 ? (1n << BigInt(o * 8)) + BigInt(s) : s).toString(16)}`;
|
|
756
|
-
return o ?
|
|
756
|
+
return o ? qt(i, { size: o }) : i;
|
|
757
757
|
}
|
|
758
758
|
const A1 = /* @__PURE__ */ new TextEncoder();
|
|
759
759
|
function fs(e, t = {}) {
|
|
@@ -762,11 +762,11 @@ function fs(e, t = {}) {
|
|
|
762
762
|
}
|
|
763
763
|
const v1 = /* @__PURE__ */ new TextEncoder();
|
|
764
764
|
function io(e, t = {}) {
|
|
765
|
-
return typeof e == "number" || typeof e == "bigint" ? T1(e, t) : typeof e == "boolean" ? k1(e, t) :
|
|
765
|
+
return typeof e == "number" || typeof e == "bigint" ? T1(e, t) : typeof e == "boolean" ? k1(e, t) : Jt(e) ? Pt(e, t) : ps(e, t);
|
|
766
766
|
}
|
|
767
767
|
function k1(e, t = {}) {
|
|
768
768
|
const n = new Uint8Array(1);
|
|
769
|
-
return n[0] = Number(e), typeof t.size == "number" ? (jt(n, { size: t.size }),
|
|
769
|
+
return n[0] = Number(e), typeof t.size == "number" ? (jt(n, { size: t.size }), qt(n, { size: t.size })) : n;
|
|
770
770
|
}
|
|
771
771
|
const gt = {
|
|
772
772
|
zero: 48,
|
|
@@ -786,7 +786,7 @@ function Do(e) {
|
|
|
786
786
|
}
|
|
787
787
|
function Pt(e, t = {}) {
|
|
788
788
|
let n = e;
|
|
789
|
-
t.size && (jt(n, { size: t.size }), n =
|
|
789
|
+
t.size && (jt(n, { size: t.size }), n = qt(n, { dir: "right", size: t.size }));
|
|
790
790
|
let o = n.slice(2);
|
|
791
791
|
o.length % 2 && (o = `0${o}`);
|
|
792
792
|
const s = o.length / 2, a = new Uint8Array(s);
|
|
@@ -804,7 +804,7 @@ function T1(e, t) {
|
|
|
804
804
|
}
|
|
805
805
|
function ps(e, t = {}) {
|
|
806
806
|
const n = v1.encode(e);
|
|
807
|
-
return typeof t.size == "number" ? (jt(n, { size: t.size }),
|
|
807
|
+
return typeof t.size == "number" ? (jt(n, { size: t.size }), qt(n, { dir: "right", size: t.size })) : n;
|
|
808
808
|
}
|
|
809
809
|
function jt(e, { size: t }) {
|
|
810
810
|
if ($e(e) > t)
|
|
@@ -976,7 +976,7 @@ function P1(e) {
|
|
|
976
976
|
}));
|
|
977
977
|
}
|
|
978
978
|
const Qt = 2n ** 256n - 1n;
|
|
979
|
-
function
|
|
979
|
+
function zt(e) {
|
|
980
980
|
return typeof e[0] == "string" ? Ut(e) : D1(e);
|
|
981
981
|
}
|
|
982
982
|
function D1(e) {
|
|
@@ -1201,14 +1201,14 @@ function bs(e) {
|
|
|
1201
1201
|
return t.map(([o, s]) => ` ${`${o}:`.padEnd(n + 1)} ${s}`).join(`
|
|
1202
1202
|
`);
|
|
1203
1203
|
}
|
|
1204
|
-
class
|
|
1204
|
+
class z1 extends pe {
|
|
1205
1205
|
constructor({ v: t }) {
|
|
1206
1206
|
super(`Invalid \`v\` value "${t}". Expected 27 or 28.`, {
|
|
1207
1207
|
name: "InvalidLegacyVError"
|
|
1208
1208
|
});
|
|
1209
1209
|
}
|
|
1210
1210
|
}
|
|
1211
|
-
class
|
|
1211
|
+
class J1 extends pe {
|
|
1212
1212
|
constructor({ transaction: t }) {
|
|
1213
1213
|
super("Cannot infer a transaction type from provided transaction.", {
|
|
1214
1214
|
metaMessages: [
|
|
@@ -1229,7 +1229,7 @@ class q1 extends pe {
|
|
|
1229
1229
|
});
|
|
1230
1230
|
}
|
|
1231
1231
|
}
|
|
1232
|
-
class
|
|
1232
|
+
class q1 extends pe {
|
|
1233
1233
|
constructor({ storageKey: t }) {
|
|
1234
1234
|
super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length - 2) / 2)} bytes.`, { name: "InvalidStorageKeySizeError" });
|
|
1235
1235
|
}
|
|
@@ -1511,7 +1511,7 @@ class ff extends of {
|
|
|
1511
1511
|
}
|
|
1512
1512
|
const pf = /* @__PURE__ */ Ts(() => new ff()), mf = pf;
|
|
1513
1513
|
function hf(e, t) {
|
|
1514
|
-
return mf(
|
|
1514
|
+
return mf(Jt(e, { strict: !1 }) ? io(e) : e);
|
|
1515
1515
|
}
|
|
1516
1516
|
function gf(e) {
|
|
1517
1517
|
const { commitment: t, version: n = 1 } = e, o = e.to ?? (typeof t == "string" ? "hex" : "bytes"), s = hf(t);
|
|
@@ -1649,7 +1649,7 @@ Object.defineProperty(Lt, "nodeMessage", {
|
|
|
1649
1649
|
writable: !0,
|
|
1650
1650
|
value: /max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/
|
|
1651
1651
|
});
|
|
1652
|
-
class
|
|
1652
|
+
class qn extends pe {
|
|
1653
1653
|
constructor({ cause: t, maxFeePerGas: n } = {}) {
|
|
1654
1654
|
super(`The fee cap (\`maxFeePerGas\`${n ? ` = ${Rt(n)}` : ""} gwei) cannot be lower than the block base fee.`, {
|
|
1655
1655
|
cause: t,
|
|
@@ -1657,7 +1657,7 @@ class zn extends pe {
|
|
|
1657
1657
|
});
|
|
1658
1658
|
}
|
|
1659
1659
|
}
|
|
1660
|
-
Object.defineProperty(
|
|
1660
|
+
Object.defineProperty(qn, "nodeMessage", {
|
|
1661
1661
|
enumerable: !0,
|
|
1662
1662
|
configurable: !0,
|
|
1663
1663
|
writable: !0,
|
|
@@ -1916,7 +1916,7 @@ class po extends ks {
|
|
|
1916
1916
|
}
|
|
1917
1917
|
const Ff = (e, t, n) => Ts(() => new po(t, e, n)), Rf = Ff(1, 136, 256 / 8);
|
|
1918
1918
|
function Ps(e, t) {
|
|
1919
|
-
const n = t || "hex", o = Rf(
|
|
1919
|
+
const n = t || "hex", o = Rf(Jt(e, { strict: !1 }) ? io(e) : e);
|
|
1920
1920
|
return n === "bytes" ? o : Yt(o);
|
|
1921
1921
|
}
|
|
1922
1922
|
const Pn = /* @__PURE__ */ new Ns(8192);
|
|
@@ -1938,7 +1938,7 @@ function Ve(e, t) {
|
|
|
1938
1938
|
return Dn.set(o, s), s;
|
|
1939
1939
|
}
|
|
1940
1940
|
function mo(e, t, n, { strict: o } = {}) {
|
|
1941
|
-
return
|
|
1941
|
+
return Jt(e, { strict: !1 }) ? Lf(e, t, n, {
|
|
1942
1942
|
strict: o
|
|
1943
1943
|
}) : Df(e, t, n, {
|
|
1944
1944
|
strict: o
|
|
@@ -2044,7 +2044,7 @@ function Vf(e) {
|
|
|
2044
2044
|
return "eip1559";
|
|
2045
2045
|
if (typeof e.gasPrice < "u")
|
|
2046
2046
|
return typeof e.accessList < "u" ? "eip2930" : "legacy";
|
|
2047
|
-
throw new
|
|
2047
|
+
throw new J1({ transaction: e });
|
|
2048
2048
|
}
|
|
2049
2049
|
function Bn(e) {
|
|
2050
2050
|
if (!e || e.length === 0)
|
|
@@ -2054,7 +2054,7 @@ function Bn(e) {
|
|
|
2054
2054
|
const { address: o, storageKeys: s } = e[n];
|
|
2055
2055
|
for (let a = 0; a < s.length; a++)
|
|
2056
2056
|
if (s[a].length - 2 !== 64)
|
|
2057
|
-
throw new
|
|
2057
|
+
throw new q1({ storageKey: s[a] });
|
|
2058
2058
|
if (!Ve(o, { strict: !1 }))
|
|
2059
2059
|
throw new pt({ address: o });
|
|
2060
2060
|
t.push([o, s]);
|
|
@@ -2063,7 +2063,7 @@ function Bn(e) {
|
|
|
2063
2063
|
}
|
|
2064
2064
|
function Gf(e, t) {
|
|
2065
2065
|
const n = Vf(e);
|
|
2066
|
-
return n === "eip1559" ?
|
|
2066
|
+
return n === "eip1559" ? Jf(e, t) : n === "eip2930" ? qf(e, t) : n === "eip4844" ? zf(e, t) : n === "eip7702" ? Yf(e, t) : jf(e, t);
|
|
2067
2067
|
}
|
|
2068
2068
|
function Yf(e, t) {
|
|
2069
2069
|
const { authorizationList: n, chainId: o, gas: s, nonce: a, to: r, value: i, maxFeePerGas: l, maxPriorityFeePerGas: v, accessList: R, data: Y } = e;
|
|
@@ -2086,19 +2086,19 @@ function Yf(e, t) {
|
|
|
2086
2086
|
])
|
|
2087
2087
|
]);
|
|
2088
2088
|
}
|
|
2089
|
-
function
|
|
2089
|
+
function zf(e, t) {
|
|
2090
2090
|
const { chainId: n, gas: o, nonce: s, to: a, value: r, maxFeePerBlobGas: i, maxFeePerGas: l, maxPriorityFeePerGas: v, accessList: R, data: Y } = e;
|
|
2091
2091
|
Mf(e);
|
|
2092
2092
|
let g = e.blobVersionedHashes, A = e.sidecars;
|
|
2093
2093
|
if (e.blobs && (typeof g > "u" || typeof A > "u")) {
|
|
2094
|
-
const H = typeof e.blobs[0] == "string" ? e.blobs : e.blobs.map((he) => At(he)),
|
|
2094
|
+
const H = typeof e.blobs[0] == "string" ? e.blobs : e.blobs.map((he) => At(he)), J = e.kzg, me = ys({
|
|
2095
2095
|
blobs: H,
|
|
2096
|
-
kzg:
|
|
2096
|
+
kzg: J
|
|
2097
2097
|
});
|
|
2098
2098
|
if (typeof g > "u" && (g = wf({
|
|
2099
2099
|
commitments: me
|
|
2100
2100
|
})), typeof A > "u") {
|
|
2101
|
-
const he = As({ blobs: H, commitments: me, kzg:
|
|
2101
|
+
const he = As({ blobs: H, commitments: me, kzg: J });
|
|
2102
2102
|
A = kf({ blobs: H, commitments: me, proofs: he });
|
|
2103
2103
|
}
|
|
2104
2104
|
}
|
|
@@ -2118,8 +2118,8 @@ function Jf(e, t) {
|
|
|
2118
2118
|
], B = [], ke = [], N = [];
|
|
2119
2119
|
if (A)
|
|
2120
2120
|
for (let H = 0; H < A.length; H++) {
|
|
2121
|
-
const { blob:
|
|
2122
|
-
B.push(
|
|
2121
|
+
const { blob: J, commitment: me, proof: he } = A[H];
|
|
2122
|
+
B.push(J), ke.push(me), N.push(he);
|
|
2123
2123
|
}
|
|
2124
2124
|
return Ut([
|
|
2125
2125
|
"0x03",
|
|
@@ -2127,7 +2127,7 @@ function Jf(e, t) {
|
|
|
2127
2127
|
Dt(A ? [T, B, ke, N] : T)
|
|
2128
2128
|
]);
|
|
2129
2129
|
}
|
|
2130
|
-
function
|
|
2130
|
+
function Jf(e, t) {
|
|
2131
2131
|
const { chainId: n, gas: o, nonce: s, to: a, value: r, maxFeePerGas: i, maxPriorityFeePerGas: l, accessList: v, data: R } = e;
|
|
2132
2132
|
ho(e);
|
|
2133
2133
|
const Y = Bn(v), g = [
|
|
@@ -2147,7 +2147,7 @@ function qf(e, t) {
|
|
|
2147
2147
|
Dt(g)
|
|
2148
2148
|
]);
|
|
2149
2149
|
}
|
|
2150
|
-
function
|
|
2150
|
+
function qf(e, t) {
|
|
2151
2151
|
const { chainId: n, gas: o, data: s, nonce: a, to: r, value: i, accessList: l, gasPrice: v } = e;
|
|
2152
2152
|
Hf(e);
|
|
2153
2153
|
const R = Bn(l), Y = [
|
|
@@ -2185,7 +2185,7 @@ function jf(e, t) {
|
|
|
2185
2185
|
return BigInt(n * 2) + BigInt(35n + t.v - 27n);
|
|
2186
2186
|
const A = 27n + (t.v === 27n ? 0n : 1n);
|
|
2187
2187
|
if (t.v !== A)
|
|
2188
|
-
throw new
|
|
2188
|
+
throw new z1({ v: t.v });
|
|
2189
2189
|
return A;
|
|
2190
2190
|
})(), Y = En(t.r), g = En(t.s);
|
|
2191
2191
|
v = [
|
|
@@ -2470,7 +2470,7 @@ class cp extends pe {
|
|
|
2470
2470
|
`), { name: "AbiEncodingLengthMismatchError" });
|
|
2471
2471
|
}
|
|
2472
2472
|
}
|
|
2473
|
-
class
|
|
2473
|
+
class zo extends pe {
|
|
2474
2474
|
constructor(t, { docsPath: n } = {}) {
|
|
2475
2475
|
super([
|
|
2476
2476
|
`Function ${t ? `"${t}" ` : ""}not found on ABI.`,
|
|
@@ -2529,17 +2529,17 @@ function mp(e) {
|
|
|
2529
2529
|
function hp(e, t) {
|
|
2530
2530
|
return e.exec(t)?.groups;
|
|
2531
2531
|
}
|
|
2532
|
-
const
|
|
2532
|
+
const Jo = /^tuple(?<array>(\[(\d*)\])*)$/;
|
|
2533
2533
|
function to(e) {
|
|
2534
2534
|
let t = e.type;
|
|
2535
|
-
if (
|
|
2535
|
+
if (Jo.test(e.type) && "components" in e) {
|
|
2536
2536
|
t = "(";
|
|
2537
2537
|
const n = e.components.length;
|
|
2538
2538
|
for (let s = 0; s < n; s++) {
|
|
2539
2539
|
const a = e.components[s];
|
|
2540
2540
|
t += to(a), s < n - 1 && (t += ", ");
|
|
2541
2541
|
}
|
|
2542
|
-
const o = hp(
|
|
2542
|
+
const o = hp(Jo, e.type);
|
|
2543
2543
|
return t += `)${o?.array || ""}`, to({
|
|
2544
2544
|
...e,
|
|
2545
2545
|
type: t
|
|
@@ -2651,7 +2651,7 @@ function bo(e) {
|
|
|
2651
2651
|
const { dynamic: r, encoded: i } = e[a];
|
|
2652
2652
|
r ? (n.push(ue(t + s, { size: 32 })), o.push(i), s += $e(i)) : n.push(i);
|
|
2653
2653
|
}
|
|
2654
|
-
return
|
|
2654
|
+
return zt([...n, ...o]);
|
|
2655
2655
|
}
|
|
2656
2656
|
function kp(e) {
|
|
2657
2657
|
if (!Ve(e))
|
|
@@ -2680,7 +2680,7 @@ function Tp(e, { length: t, param: n }) {
|
|
|
2680
2680
|
const i = ue(a.length, { size: 32 });
|
|
2681
2681
|
return {
|
|
2682
2682
|
dynamic: !0,
|
|
2683
|
-
encoded: a.length > 0 ?
|
|
2683
|
+
encoded: a.length > 0 ? zt([i, r]) : i
|
|
2684
2684
|
};
|
|
2685
2685
|
}
|
|
2686
2686
|
if (s)
|
|
@@ -2688,7 +2688,7 @@ function Tp(e, { length: t, param: n }) {
|
|
|
2688
2688
|
}
|
|
2689
2689
|
return {
|
|
2690
2690
|
dynamic: !1,
|
|
2691
|
-
encoded:
|
|
2691
|
+
encoded: zt(a.map(({ encoded: r }) => r))
|
|
2692
2692
|
};
|
|
2693
2693
|
}
|
|
2694
2694
|
function Cp(e, { param: t }) {
|
|
@@ -2700,7 +2700,7 @@ function Cp(e, { param: t }) {
|
|
|
2700
2700
|
size: Math.ceil((e.length - 2) / 2 / 32) * 32
|
|
2701
2701
|
})), {
|
|
2702
2702
|
dynamic: !0,
|
|
2703
|
-
encoded:
|
|
2703
|
+
encoded: zt([Et(ue(o, { size: 32 })), s])
|
|
2704
2704
|
};
|
|
2705
2705
|
}
|
|
2706
2706
|
if (o !== Number.parseInt(n, 10))
|
|
@@ -2743,7 +2743,7 @@ function Sp(e) {
|
|
|
2743
2743
|
}));
|
|
2744
2744
|
return {
|
|
2745
2745
|
dynamic: !0,
|
|
2746
|
-
encoded:
|
|
2746
|
+
encoded: zt([
|
|
2747
2747
|
Et(ue($e(t), { size: 32 })),
|
|
2748
2748
|
...o
|
|
2749
2749
|
])
|
|
@@ -2761,7 +2761,7 @@ function Ip(e, { param: t }) {
|
|
|
2761
2761
|
}
|
|
2762
2762
|
return {
|
|
2763
2763
|
dynamic: n,
|
|
2764
|
-
encoded: n ? bo(o) :
|
|
2764
|
+
encoded: n ? bo(o) : zt(o.map(({ encoded: s }) => s))
|
|
2765
2765
|
};
|
|
2766
2766
|
}
|
|
2767
2767
|
function Np(e) {
|
|
@@ -2773,7 +2773,7 @@ function Np(e) {
|
|
|
2773
2773
|
}
|
|
2774
2774
|
const Bp = Hs;
|
|
2775
2775
|
function Fp(e) {
|
|
2776
|
-
const { abi: t, args: n = [], name: o } = e, s =
|
|
2776
|
+
const { abi: t, args: n = [], name: o } = e, s = Jt(o, { strict: !1 }), a = t.filter((i) => s ? i.type === "function" ? Ws(i) === o : i.type === "event" ? Bp(i) === o : !1 : "name" in i && i.name === o);
|
|
2777
2777
|
if (a.length === 0)
|
|
2778
2778
|
return;
|
|
2779
2779
|
if (a.length === 1)
|
|
@@ -2838,7 +2838,7 @@ function Vs(e, t, n) {
|
|
|
2838
2838
|
return r;
|
|
2839
2839
|
}
|
|
2840
2840
|
}
|
|
2841
|
-
function
|
|
2841
|
+
function qo(e) {
|
|
2842
2842
|
return e.reduce((t, { slot: n, value: o }) => `${t} ${n}: ${o}
|
|
2843
2843
|
`, "");
|
|
2844
2844
|
}
|
|
@@ -2850,8 +2850,8 @@ function Rp(e) {
|
|
|
2850
2850
|
`), o.balance && (s += ` balance: ${o.balance}
|
|
2851
2851
|
`), o.code && (s += ` code: ${o.code}
|
|
2852
2852
|
`), o.state && (s += ` state:
|
|
2853
|
-
`, s +=
|
|
2854
|
-
`, s +=
|
|
2853
|
+
`, s += qo(o.state)), o.stateDiff && (s += ` stateDiff:
|
|
2854
|
+
`, s += qo(o.stateDiff)), s;
|
|
2855
2855
|
}, ` State Override:
|
|
2856
2856
|
`).slice(0, -1);
|
|
2857
2857
|
}
|
|
@@ -2898,7 +2898,7 @@ function Pp(e, t) {
|
|
|
2898
2898
|
}) : Lt.nodeMessage.test(n) ? new Lt({
|
|
2899
2899
|
cause: e,
|
|
2900
2900
|
maxFeePerGas: t?.maxFeePerGas
|
|
2901
|
-
}) :
|
|
2901
|
+
}) : qn.nodeMessage.test(n) ? new qn({
|
|
2902
2902
|
cause: e,
|
|
2903
2903
|
maxFeePerGas: t?.maxFeePerGas
|
|
2904
2904
|
}) : jn.nodeMessage.test(n) ? new jn({ cause: e, nonce: t?.nonce }) : Qn.nodeMessage.test(n) ? new Qn({ cause: e, nonce: t?.nonce }) : Xn.nodeMessage.test(n) ? new Xn({ cause: e, nonce: t?.nonce }) : Kn.nodeMessage.test(n) ? new Kn({ cause: e }) : Zn.nodeMessage.test(n) ? new Zn({ cause: e, gas: t?.gas }) : _n.nodeMessage.test(n) ? new _n({ cause: e, gas: t?.gas }) : $n.nodeMessage.test(n) ? new $n({ cause: e }) : rn.nodeMessage.test(n) ? new rn({
|
|
@@ -2950,7 +2950,7 @@ async function Mp(e, t) {
|
|
|
2950
2950
|
try {
|
|
2951
2951
|
const { accessList: s, blockNumber: a, blockTag: r, data: i, gas: l, gasPrice: v, maxFeePerGas: R, maxPriorityFeePerGas: Y, nonce: g, to: A, value: y, ...T } = t, ke = (typeof a == "bigint" ? ue(a) : void 0) || r;
|
|
2952
2952
|
Up(t);
|
|
2953
|
-
const N = e.chain?.formatters?.transactionRequest?.format,
|
|
2953
|
+
const N = e.chain?.formatters?.transactionRequest?.format, J = (N || O1)({
|
|
2954
2954
|
// Pick out extra data that might exist on the chain's transaction request type.
|
|
2955
2955
|
...Lp(T, { format: N }),
|
|
2956
2956
|
account: o,
|
|
@@ -2965,7 +2965,7 @@ async function Mp(e, t) {
|
|
|
2965
2965
|
value: y
|
|
2966
2966
|
}, "estimateGas"), { baseFeePerGas: me, gasLimit: he, priorityFeePerGas: Se } = await e.request({
|
|
2967
2967
|
method: "linea_estimateGas",
|
|
2968
|
-
params: ke ? [
|
|
2968
|
+
params: ke ? [J, ke] : [J]
|
|
2969
2969
|
});
|
|
2970
2970
|
return {
|
|
2971
2971
|
baseFeePerGas: BigInt(me),
|
|
@@ -3140,7 +3140,7 @@ const Wp = /* @__PURE__ */ yt({
|
|
|
3140
3140
|
}
|
|
3141
3141
|
}
|
|
3142
3142
|
}), Qo = "/docs/contract/encodeFunctionData";
|
|
3143
|
-
function
|
|
3143
|
+
function zp(e) {
|
|
3144
3144
|
const { abi: t, args: n, functionName: o } = e;
|
|
3145
3145
|
let s = t[0];
|
|
3146
3146
|
if (o) {
|
|
@@ -3150,24 +3150,24 @@ function Jp(e) {
|
|
|
3150
3150
|
name: o
|
|
3151
3151
|
});
|
|
3152
3152
|
if (!a)
|
|
3153
|
-
throw new
|
|
3153
|
+
throw new zo(o, { docsPath: Qo });
|
|
3154
3154
|
s = a;
|
|
3155
3155
|
}
|
|
3156
3156
|
if (s.type !== "function")
|
|
3157
|
-
throw new
|
|
3157
|
+
throw new zo(void 0, { docsPath: Qo });
|
|
3158
3158
|
return {
|
|
3159
3159
|
abi: [s],
|
|
3160
3160
|
functionName: Ws(eo(s))
|
|
3161
3161
|
};
|
|
3162
3162
|
}
|
|
3163
3163
|
function xt(e) {
|
|
3164
|
-
const { args: t } = e, { abi: n, functionName: o } = e.abi.length === 1 && e.functionName?.startsWith("0x") ? e :
|
|
3164
|
+
const { args: t } = e, { abi: n, functionName: o } = e.abi.length === 1 && e.functionName?.startsWith("0x") ? e : zp(e), s = n[0], a = o, r = "inputs" in s && s.inputs ? Ap(s.inputs, t ?? []) : void 0;
|
|
3165
3165
|
return Ut([a, r ?? "0x"]);
|
|
3166
3166
|
}
|
|
3167
|
-
const qp = "data:image/png;base64,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", zp = "data:image/png;base64,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", jp = "data:image/png;base64,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", Qp = "data:image/png;base64,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", Xp = "data:image/png;base64,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", Kp = "data:image/png;base64,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", Zp = "data:image/png;base64,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", _p = "data:image/png;base64,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", ft = {
|
|
3167
|
+
const Jp = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAYAAAAdHLWhAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAOdEVYdFNvZnR3YXJlAEZpZ21hnrGWYwAAJalJREFUeAHVfQl4HNWZ4F/V96Vu3ZItS7IlMLLNEWTAGAwGAjmGhJ1JyHwQIGQ3B2ENhOwm2Xgg6xwfJGQIuwMTNiwTjswZhhyETABD4jiEK8YH2JIPWdjWZVmybqmvqnrz/+9Vtaqrq7pbp81vl6r61Tv///3H+99REry/QTLdmSXc+M3gfQwSnP5AdZTufrwrFpHClwOTGyUJGpmmNYDGGpnEYvg+yhjemaankEGSpBHG1FFZ8hyRXS7QNPUdSfZ0qqmJd4bV4T1/v6llSM//tCbg6UggXqf/9aPjy72uwHVMhvOYplyuqUqDpqVBVdOIUgaaquavPYOs90gwkF0ekGU3vyTJddTl8e5mavo5Na3tvm9T5S5TytMGThcCcS6559HBjZLbcx1TlOtUTWlQlAQgApFR7HEmyy5MiP9kmSiA/2UdvZpIQ89MJe5xxLrb7cXLD5LbfdTl8mzT0qmnv/ulim08k9MATjWBpP/+SHtZhXfJnYqmXqcqyXOVVJwj1AxECBkRiQjkxOCcILkccgRbHtCQUAzzRU7kXKjxS8lOiuW4PT7weINHNU37tsbS2753e817cAq56lQQiJe5+ZGBD2DXvVXStJuTqYmYqqSmIyA3UK8mohDCOGcsADDUWVSumk4i0VLTHQPJgeIPPJ4A3n1PK0r8W6eKUItJIF7W3T/saAqFyh9PpxKXp5FbmIEUJIqOECSODwgX2WaZxEMMBsm9S1lpzA0zxwNLXHO4IFYCFLzQ6ODhxL1ef5g6ytPJxOi3H7hjWSd2oEUj1GIRiIuyqLvqf6uKckcqPs4RQEAI8PiC4PYGdMSBo5iyYFkAszzbxcuHTisl6YZ1I/2XSkzis8rDJU6oELhd3p+q8eSW731lcThqMQgkf+ORk1/GttybTE3GNOyl1Co36hHqmSTGjIrk9nQBdgMcp4pb8yiUphBNSSemkpOc0w2O8gdKjqJW+45v4EdPbNmyZUGNiYUiEM/3qw8cW+EKhX+ipOOXpZNT4gU20OePcN3yfgISx2kklKGniOM9Hv92dWrqv/7ga/WdsEDctFAEkr9OXMOQaxJjMa5nSMd4g1yc4YjEvvR8rANQXBoepgdKkmO+9IoZ7yTn/CQjO/13KjHBRR+l18XeqORyf/v7t5f/Hz31vBJqvgkkfWHLjvKyiuXfTKcTdxhcQ+axLxjl4sEJhAFQuDpm08HOMCDLbPXSfmjvKQMm+TIGRG667DKdnu2AuCg+OayLPSaMCJfv4c7tt939zDPPaDCPRJo3AqFile78QdeKgD/wc5TZ5xhmsy8Q4ZyzGEDKvaVBgnVnHIdfvtwFw+x83ssXCkg3EUcR0NiMdNNUfOiqh792xryJvPkaYEi3fXd3cyAQeiURHztHQeIQYvyhUpTVwayamj2YWRebvoPxm2XLjMw7sL/T4PNjG0L8OeY+DF7WxzmKOZQNlrLBUo+su006jy8EgXA5bysNfuNTIw2BQNkrt9/X0QTz1Pnng0DS3d8/2loSrX8rPjnUQOxPvq5AsBRFmzfTKgPhYLrbthqmCZEJY9mEA5u8qNyrLvBDack0x5S62pFomm38rGfILsORojZ5UFv92Fa6C9E31BAKR3fcdf/+tTAPRJoTgUis3XX/4bWS17s1PjUU0zSG1pmfVxjQFcNMhFnIi/5EQwyuWRfOql/QdRJK5P1CVyxg+eh4hUCoHAfYASAcxCdHom5f6VbquDBHIs2FQNJXHjrW6vZHXkrGx9FSQ2WJLO/zR21dM8zB4WkHxcYV8RiKFxU+eEHANk65+wD6S+N50meX51R2MeG+QAnHAYUlEqNRdPy+TB0Y5kCkWRGIOOeL39nVLLtCW5PxkRh1I25Ce0Xl7C6jMcVcxcbl8bBjnH+WCy5YbU8gWUpDhWcPd4w6lWMuz6nsYsMJB9wowudUciLq9pdsJVzBLIk0YwIRcW77bntzOLxsa2JCiDVSlh5vuDhxBLN7Zx8Hudat5Ig2K0TdXeCDPh2Js6+jNXwaJ9kX4YJwQrhJTA1HCVezJdJMCYR+QskdDldtTaLFQg0mnUMVKhYYm907uzg4JQBXXxSAspLCpnSNdycmiM+4DPNvu3Cn/AgnbnT+cnEXH2kIhpf+O40RYYZEmukgwX33D088hN6Ba7i15hIWzKkBBrGQCjf/RSznzcmTJ+HIkSNZYS5JQYJKEGdVsFg+YhmtWJrK4BOGmlYdDFcH6kree6mtra1ohVw0B5Fo+/KDfV/GAegmkudkCPgCMbBTnoV6nH04y4pjfWcth+pw+6dm1jlKvZ3g0kYtZTFbEaa32bHORlzzPbc9EscR4YoG7qlU/I66ix9Bx3HxeC8qIhHnC5vfOkNT2T00cqbCjYKnG2JWnNl3c7hx5YZDVhzrO3M51CNbz/IUJdrM4EKDocb3dsZgAMtARyDaXP/p39Y6F26nSEszwF5/CQ8nZytT2b1fvGdX0QPZoghEeidUVv84FhAFrgRDWLAbjLqYcZ/V4yzvmc0zcwh3SksNjeGY58Pri9d7Zgi5T0JI7iKRY1MGK6qeM31Hos6LHnwKTybGo6FY3eNQpHopSCCc75DvuK/r1nQ6tYG72vkEWzjTSTJ9hUGWq8YcBlaxZX6wxM8itDWcbojYay4OQll09j62av9ezCguerwepjFTWdZ65vwo8h2bvrs9QU4owmEKp1/ufKCPizqSTpAHChFI6kx+pBkHXPfw6WksyB8ozSIGY7nEsQ0Dm95mDQfLZQ1HLNaUMbhoTQDmAl45jmMjdAORn45Z6g0OnAF5uKdQGv1Ooo4kW4p7+aV7/vK2n1cUmj4vRCC5tLTxXvQU1FMuZNvbuXDAqeJ6mMayucMpXr670D0KfO4v58dqLPd1goedzIg1J5Hq9A5sngvlQS4h4iT6iUSK1i1ff+/111+fVxTkI5B009debVZV5SZCDBkEHk/ItqYMsu/mi1meWYF4WXdm+o29/UMXB+Yk2qxQ439n2sPg0A5rnVmhMJPRYJcHefdlIKsuiXHUTYHm/9lEasSpjo4vWltb3aWlK+7l8/FMGAacF21Y144T7DjKrlexfBcYcYVhcHnr/M4rhT1DUOY5qCM2f1uKvvLgRohSnFn2RfgzSiYoiS1/fNu2bTI4WHW2BCLF1XLV/12hMfZpUmp8QR96aoHZs3QWewNkId+O9e0Ilbkg97eKdfjw+iAE/fO/Pq4qcBALmAI7Jcjy1csprIjL5fbxqRjiMlVJbGi65JHzYSYEQsXlipY2C+6Bae4p6mKzqrNzerTaLlzlhXXnLMysLI2NKn3t3G0043bNoa1uHae0Bs8XLP0MzIBA0i3feHMFzqEI7kHF5tK5p9jLTpnacQ4r0EJuGOBUwkcund2Yp1ioDLwHAfl41tioUJuc2ljIgMhwEXIQLV8WmwCkT9/wuV9V2JncdgSSff7yK9JpNKuB6esJ2LQiNd/NF5iUJDMreciKn2VYMMjNC8z5ayjaAlAeXbh1BQYsC+0SPjNm30ZguQbAdBun04ApPYC1XWD6TcuLhTM1nZqKxhpb75RsJtLsCOT2ekKbyXdEK1tkl89e+YENuzPL70yF8sR1eofEiYU0+IvLIrAY4HXFocrXJhbZO7URINcAAIe22OGDmexDfCbJROvQdVx/DIR3IYuLrASSP7u5fWM6nawXbOgTa9jysOpsL1YgnHTCFz+5uJ7yymAnuGEc5q5Ii7uIAYhIVJyqKWd/9pvtV0ABAkn+UOwmcpFnWHA+6mLTXgCw5ThOHOSeC9d4oK7aA4sJNCWxLLQTkaUVlgxQRJtZnjD9ThKKIJ1K4ORj5ONgoUnWj8bGRg/OAl6m6saBLHtNImfmF1grZL3AJg7+Kw0zuHbD4og2K0S8QxDUDYZMHW3qCQ7tNcIBstsNDp2R/HPENGJJsXwt0sANJi4yE0ja+KlnabthPeVAC/HYXKhjNgpmEIehVfPRDUEoj7nhVEFDyW4gZ6q5jqyItuUYFEXEpzupEvFbqb/oo/9/OTgQyCX7IucpKN74C1nsOjBTHSCXRXPC9cxYEReANS/knogG688NwakEHzcYOrjBAGDfRjtRB5ZnMMdluXGNPDkzAI2JkhCuaiZjIUOXzAO6diS3O3QtrQqlRBJSVbPkaGZNgOxwc+1YHqowu2c9E2Lzu2+phNMBaiOHwM3GwDz7Kh4gq/3W9hi/zQ5iUxPBKhoJZJdfpFHTaMa5zwUbAklvv/22G+Xu2dy6kNxi8XguV9qGOV5QfHpaAXPFWh9UxOY+5unt7YXx8XGYKzSiqKOBZL42gsNvsAsDJyJJXOdrnCPkS2trazN6yMCGdOW1P6yK1a76lqamxIZdt1+8EPmB06Yo4xkc3pu3b9htkhLvSbQx+Dya1R737BZ0JJNJ2LNnD2zduhVeffVVeP755zmRysvLweeb3V4knzsOiuaGSaVM7CIHZ1wYwMBhhwzLH4mOGKBZA5fLE3VLpY9+5saLJ9CJyrgmxjkJ2bPsinON3iJLnkyuLLMlw6bQzN9cpDJrPGaOZ+SrD9zQYrr28tCsnKFEhIMHD8LevXs5kcxA4XRVVVXBhRdeCEuWLIGZwpLwQRiML8N6Bi24mMbyNG5EGMuigOmZGW+kHIQKnCdAQTG3pOWay7ZsWfMzCucEeuaZZ6RbN3/vbKIiRyN6r5lVwVi7TRaY4pggk4RZ4vGX0/mvO8cDl5w3M8Ogr68PduzYwe+F4MSJE5yjIpEI6Vo488wzoVhwyWmoDe6H7slzxVaWLBHAskWB3h79wQ4BPGx6QQpk4jD08gjfY5q4qNHI0bBlZSy9UaODI5iY+XNgmfzAZpBEf0kTZh/bWLzHoL29HTo6OooijBWI21BsAOpbaGlpgaamJk60QlATOQIjyVqYUKqn151niwj7xhYTpv92yYIUfPmwx78MdPuAhzY3N0voXT2blgVx0Ke1FxrI3/YxFG0VBcY8JLpIhNmJsdkAEeqtt97iF3ETcVUhQtWXYPmDFTj84IeiwLyDsZSAvNseqUEvROLWwuTkpMvYxWzsSBOcBJnnTD5S9rtCcc3vs+MxKMMxz8evKAEnmG/C2IGhp4hQdDnpqaB3HKqDHXAivpI7OA2wtt2KB8lCS3O4GS88jFQL96jL9SA4SBgJ6JiUVAb1xG8yl4VGZrk2V/Y7yVKwOb45TMo2M0nDYUX++iP2xCHxtX37dhgdHYXFAoNQ+fTU0pJDMBSvBYVFwQ4nBCxL30o5eJqOZ35vgCSMJokXQJwiBF9/fz8ZkSXT4xfmoAwtck+yxjNXDuyVpF6Ni8/xwvkt2bOkM1H8CwVmPUWEwjFJRvy5ZQUaonvh0NBFfOGmACtOTM8Z1mDTUfPiSScYg0zP5aVUVFRQFlERWcq12c13MLEyy302snBKw0VbCYPrrhR1MMQY9d75GFzOFxiEojFUQ0NDRk+VBU9AeLwfDYYlWaKOwOjHWb+pzZpJpIGNmDMSSJIxwCdaZIwEaXBwUMp4b5lUlIFgz9b2v83hZBh8cF0IIkEVe+meBdUv8wFUN6ueaq56F97pL0V3Di2gzCWS3W/r3T5M5EUeBWQahnQRHFRWVqbHNCWwGw7bDpHB3t1gE5cWUco4GPOm98NTTx2E9xsYhCJDouKMGEDowlyJU4yBZ8aV1Q2hA9kFdOeWwtDQEMu45ZhJXpovpzAAWzFoF5dcTSlFgif/IwTxlBfejyDjDGjSvwFS7ha+FNl2XGOIe6cLwBanmUMIkWpIk6yBKhkGY/iuxHyugJPzwFb3S/b+N2tKUq5pJQZ/Ongu1ESPQ1P1cQh40/B+gEjNRiirvw68gXIcD3kyyjYHR3rbTUZsVjg4xdcyaxZGUcRpmzZtmiYQYnSMrAdzrxCRs49FYRZP07Sfydo5KCBXzlHD3Hz7igdOTPpguDMKtbET0FxzAk5X8EXOgIqmW8AfXsqX7pIjmRMIrPrahJksaWKSacxBdzCYtp5VbYz0z5YtW8BwaxNdRjFCnVjxzyxZ5PIRs3mCPLHMQNMZbo/MD39QVR8cHQpD73A5rKjqhbryxRv7FAKXtwzKm26CUOnZfL+psYVEWG+SZexngBM+WJ73epfWl30hBbqMQLf+gEac2oVPq+0OYHUSdY4sa0lnTh/0S/waHBHT6jR6pt6opH2wvy8Mw1P90Fzdd0rFnuQKoDi7AmJLrgavv4JvlKYpGGPsQ6tR3ehETajCwes0/WANc1IXBmS8OabzWA0Rh/op3QXcSSpOyZVNnlsGRZQEueF2fWZySoHrNoZ5L3zxtTicHJGw8TK4kasICQOTfujdXwH1ZX3QUDkIQd/iEipUcRGUNVwPngCdHBLkR3TKnDAyHyJUh45BFV7v9q/POe3MAGcecQ6nkx3FuEnCzhrfV1dXp3Z3d7MMBynp9DFaispA5UchM5tTdSU9R5an5Hz0ExUBePpXA3Dfl5dA66pS+MUrE/DHnUlxxLKMIkTy8qVIPaN+ODFWikZEH4q9YVho8EWaIVp3LYqzNUKUoZ7hZw3pg8eo7wTUlx6AqP8kvPHeJXxpmMuVv61WyIcbLXOio5vWyB1F4vBjzYwZMi2dGDtmzHdoDmuU+dS0Tbg1Tr73wN31Lvjbf+iCAIq6z38yBg9+tQLqakTZEoo9Wszn8UdBdVVDW+8ZsG3fWTA2tTAnNJI4K1v+aahZ9VWIVLSiSKMTuiJipQ0tLIQkLC/dA2fXvsaJc6BvOcST4iTigm2dAW74EdEcPx6YnOjfu2rVKk5LziYbN26UevtPjlYtW38XHU9MSDSmvBcAJZyNxyfTkEwk4AOrSiAUkOGqi4I47SDD0Z40TCWAy3u+wNzlRuekD44NlsFkQoaSQBynxfMfE2p3TkJOLVx+KKm9Ggecn+dGgMdfguIsqJvPLq6sG2L74ayqtyEWEF8R6Bkqg47BJm7JSboVN1+AYk1MeaO+O7Tz/92zb+cLIxiscQJhY6TU2H6tufW2m9R0qoQvmte36jk5CeyUYsaSdIiXiYsdQEYi7T88BgGfCiuXC2dkwxIPfPhSsYuvvTPFlx0bRoSExJpIhOE9dLGQW6o8MglOUIhAXjSbq868A8KV63BMU4YiLcz37EiSUMkkzs5FjikP9WM9RWeYSnphX08z1iOmrwaVc9ulgxU3zBIn89s01aCkJrmOw07Z/buf3fJDDCL/F8sYCSMjIzgdrryOvft6fkI7IoH2+BuWJLPM/5hrxKwPTsaFEUaiDJHuwvHQz357Ei46twyqyqdF2F99MAIbWoPw7NZx1E8Jzk1uSRCKzNz3TvqhB81ysvaWVYxAsUBmc9nymyEQE2Yz5xiXmwsyapTPPQErK3chx5zMSftuVyOkWCl4iDh2p3mZH0y92hzOLBQy8EhjHLHcAAkhSXvxphixzCWpqpp8h2QgJVT4HkowvKtQaDlVznvrlfNe5j0xqQTg/h8fzmlwZakLbvtUDP7m86VQHhXyXpK9vLd7/TFQpWrY230mvH5wBfbu/Gu4Sc9E6z4BtefeB+GKtTy921uiL7tFcS4loD7WDhfVv2xLnEPHa2E0Uc2JWvAcPCgCZxa8kFrhi3WwAybGB14wE8hsqskllSvHSqtWf4GWXkmyVFAPkZyWJClzt77LIMhwiVjiG9fwWBrGxqfg/NXRnDIqy9zwERR7laWon3pRPyWFfqKeT+OohOKHzuOkn1xQEhT6ySziQpWXQ/kZX4Jg+Xl8byh5MfhgUxZ6Zmn0MKyp/TNOIwzYtpFE2+5jq/jZELJuOBhtM7fFCRdOuDGHKakp5CKF12106MADAXXv0YGBAdVKIOg59MLU6vV3fVpVUA+hXU7m5kIDDcpI17R3jsLq5iBUl9tba6Sf1q7283HUESQUWVHiUzNe3vPG40HoGw7xAaQS74HeQQ/EGm9BQ+AarmdoG6cLDQMxCGRokQ2gAbALCXQso2eskFZkeL1jFWIpxr8lMZ9GQVY5qQnurcExV/fzj63fgsSJgw0HUenulWu/2ISP55MO4iN9QqB53txhjt0MUoF2ZCb5Mglk7u97p/0kXLmuDLwe+/VxZO2tXROAy9cGYGAoDb0nNM4JxFGk0zTww/HRGA52l3NPQCDcAG7s+bQBmt5TmT7XBJxVvRuayvdDwBPPW8+9XfUwllrCO6rguPxtdHpvxZ3Rfj5s0eh7EXH9EzvyC+1vPPxLjEJHJucQiEP9ymslX6j6r4XSkrh1s/AgvgE0OaWimT0Kl11Qljc2EWr9eUGoRLP8SE8KpuK62OOiz4c9McyRyp2a+mDTLaVQzxyClprdEPEVnrntOlkGhwea+LlvwjG6MJBOTXLzmtZnjw923Nv57j8dAKGDOGQR6Prrr4fn/mVz/6qL774W9VAljp74Jq7MXIIO5mlbx4m9mdx5PjIXW13H4+jeQdN7ReGNw41LPfDRDWEg9+LRHgVSqiw8EmSZ0fpyWRgXFaEeOGfJDqgM9zuKMzOQ3tn13kqQPVH0KPimzS/JZqrFrv12kGNjC12kpERn8XhC3b9+bO038JHYOlPJLAK1tbVRNq6Vrf+tDkXCxWKXt/igkpF3sfa+lQ75YHpcIERde8cIXLo2CuFgcXuEVjf5kKMCun5SeIkSNj4WGISW6l3QWNYJbpcCxcL29hZQ5XLOgdxjYNTPVF+7Z7t2SXnCNLSU6cQR4tD45PEth3b95C0wiTcCu60ELJVSDi9tuvIzaHb7GOeiYHbudr1EcqiF3UjVkYskzkmpNIPXdvTDB9eXO+ojK5DYuwD108a1fti5bwRqw22oa/YW1DNWONhbC4NTS7k5L3Fnm1V05GkLOLTVLhzoOxCjII6HCcHxjlfu6el8sRdM4o3Adq/HcP/OdPP5n6sjY4GPbnX3h1N5UGSdi0nPVyEjkSbjKiTQFdS6JgozASJUU3U/tmE3zBQGx0Kwp+tM1Dsl3CfIORFmhnvzezNY46pKAmiptTCQ4JmdL97yJLY3aY1q1z3J/k6N9u38N+MAC1JkGWefURozZWX6zSz3nHeQG269SH+40NX/622j8MauhfdkE9Bgd8/RJs45XKQzybEd+cLN782X9b1w7YgTR47te/bB4eHhFGMsR0Hayo/W1lblD7+4ZSei6g0SO/RdAn46E4DtSLhAXWcRX+JmMSHroaeOQf/gwi/LOtC7BJJaqdjtBvLM2jTDi77uxTcN01mmqcSzb/9+cwc6rNN2Z8fZEmjHjh0kB+NH2v71K4Qkwmo6Oa4flSK6xEw3GLOZxqPhK5rIyXQAHnriCCwkHD5eAT0jS6eNAoc6z7bN1nQKDkzp7vYg97Q982BtbW1827Ztql3dnA5TIgyld72y+RAS5gk+CETPgpKeypZsRpkABTkEWOE4hgjMpOHnBPlhX6cCv3z5OCwEkEm9t3sFHzuRry+rztY2QBFtsIlvTsfHPargHuSkZ3f94ZsH+vr6siw3MziaSEh14qLJAzt+8AN0kYxThYhAmvlDFebKmsPsOpReyyzPg+k9mOKAKQ/goi4Ej/+sHw4fc55imA2QK+fV/Wfy/MnUZSABODBEjm5xameei3BHBKK0qGN7+g489wCIcY/qVEdHAulclBro/HVfPHHiIVLa4mjhMZgtZPUmlt1lrO9MNeH+NhdOkn3nR518rDNfsB9N6qRWJk7z0qf4mUO9mcO7mUAqLqZGSCpMjXU/tON3XyevgdjW6ACFBhk0TxR/9V+vehQp9gZXakpaiDoGi3bxCT6cMjg54oF//FUvzAccHSiFzhPLMsTJW/48tEG4dIRoQ05987Wff/SfMGe0syFvjytEILZly5b05OTkxNGDz97tdoe4XyKdnACaksiKaOkDjOWG2cUrBigNP7cO3U7P/X4UfvHS3LankEm9v3eZGIwWmLrOV99i39FUApnVBOi4HT+y75+/QjhF11pBcVDwUALaCk5l9He+PFG/6gbm8UYvF1vG07ZTvwsH+sfUJeEKuvwCZ1dQoSnv1w82wWS6io+1JGlhz6KjaRvuMWDCY5CaHHxg37bbn1+zZs3Uyy+/XJBAxWKXMpra+tS6HynK5JNcoSK7JuOj4ihJc2+xKhand6YwI9yO61iWAhCzsImUH771cO4sbDHQ1lUDQ1NVwglsszLHWpd8UsA2rkW0EXHIaiNvu5qeeuLFp9f9/djY2JQ+lCkIxRKIRB3JtPH2N+9/QHJ523njOOtOZCqpWSsMkGXtWBvjRNisODB9ifzdfM3akV4JHv3nozATmEST+kBvA3JOCDlHnDLFy7NeDuLa2g6wi2t6JoPK+BAJ+jO7f/v4Od/EYEJYqtjvgRfN37qo01xKX4LJodfLqi/4ME42ldBcBrWTH77k5IjLOz8BlkT6PWuXrSkeTy5W+7QdGoGzV4agpiJ7zspOxE0mPLC9bSU2oFSf45ItdZNy3e9WFGZV0VQ3G8ccShpuTPHzxr2RnqNtP/3UiaO/70K9E8dZg6I/Lz1TAczi8biGBY3hTOX28tp11zMt7dNU4YqRLBNbVpc8cwizQj7HuEgjiX/Y+N37BuHqS3AW1jstDOwItOdIHYq2GjE7atI7Of0IcqdO8gGzpCVQ00ScSf0w+Mh457uP/VXPuw/vW716dbwYvWOG2WhIviR1oOuP49GKltcjpWd8XFOJSGneoYxjzBx7YTFQTFo+NSHBBM7C7js4CB/aMH1KlpVAB3vLoeP4chQzocy2kVnVieX5rYNBHALsDON9Hb+98Z0/bN6Fnuop9BjMeKH5bE2wdHNz8/iOF257E627G9A6GSdkkSlJcjcjx2dInCwdwCDHXWKNbBwZva9DhZ+/aG96k2hr767nxHHpUwgzqVqmDqzQbw3HOmOCODTFjsQ53vGbG3e+sulN0PUOzKK7ztbG1LdNgtrX+ZsT0bLVb0QqViEnpXykk0jkGWvOcsCOO+ymY4uCadO77dAorF0ThrKYN4uDtu5uAUXSvQVUn3xTv4WLy607CFM6nRwFY7maG8Xa8cMv3Hjwzc1vplJ8TjsNsyAOwVwGAdxowEsZH/jDAJPcW0tr11+D4yO+ZIsfa+byZFwoCweCSDQL+8auE/ChSytgfHyYE2jvsRroH1siZoSlnBOPc1szC8nHsJ1cajCxPAAHvz1H9j72iXe3/83u+vr6MezIRJyijQIrzAf2NOwl6kDXq6Nef3B7Wc26a3BwxImkphPCONL1kmT8KSTLC/Rs/sr0jnGrTugj2ja/YqkCf9pxEna9dwbfqSD0opRTBmPTdcrN01JfG8sBxzU6ccRmNJfLt/9Y25OfaX/t/jZSAR0dHXMijqmoOYOMFfJghWjxQuTKm3d8x+OL3mIoS9IVHl9s+jiv2ZaaNy3jXEurZK67TIGXXk9CilWI1bF2XGxnHhZZHnU+JTXGjw4jIPGJxsFTB//8/b/tav+3HgyiLzjNmTgA80cgIy/yvdCUZMllN/zxS4FQzZ2qEo/w/Ub0khS1ZyEPjNU4kWi1jMSXBvvn1ZVDhoCmxNFhPAVi+S6JtNB4fLL377b/y4ZHMco4zoxO6ZNvs9I5VphvBaHhQEzFgZhydO8Tu3yB8IuRyg+sRtN2KXkduA9PXyghy3M4dtmRk4Q+ogUfJNbmRBxmEnsAfMpfcI0Y83GjQ3a/1d3+5Gf3b9/0H2VlZWPoAE2g7ps34hDMJweZgcw3EvxkOoXXf/KlG0MljchNiSWgn8Mg3B8h8f0CMFpkN4zPFv65aik3jaSb0pDzJpey2fnlmndMS3HTWXjvJV3X+McTE71/9+fnrvkxDtwnGhsb40gYijBnkWaFhTKxqHU0YlYqKyuVAzt+3IbWze9LyleXurzhs/iyYhIX2BsFR+nmMucAyOm9PEMGBdd8z1vled3i3AAQ4kwVYxs0OJCLfrr/tXu+sHf7119RFIVmL+M4ZzZrM7oQLLQNrE1NTSloQKQPvfvc8PFDT70suVzPlVScHcOxwlk0ZqKFKIJQcd1UlRbBNHeorJrilhkZGvRFEtD1DE1LoJh+88i7j92084Vbn5HVvkG0FmnwSRNuKiwgLFKfBAmVpwuVJ4k9fyAQCC5dfXtzXcvNdyFn/RdaxIc+PZNpa+ym8+nLjuW8Nc0Re3bOPyvwBHrnIN2Id6a748UCVw95zceV1Mgvhntf+/d3fnfnThDrB+gijplXXeMEi0WgTHlmQuEVOmvd/2iK1lx5cbh05SbkqCVcCVvW7xk7F/id9pHSAvkiuWza+ayKndSgguDclFhGZi6Hcwt98UU7kE4Mbe3Ycd8TfR3P90ej0anR0VHiFsN0nndd4wSLTSBzua66ujpPd3c3EYpf51/9k0si1ed/wu0OXsgkaQmZy3ys4TBgpd0LGUJxBZU5VYCLJ7ETTsshRCa9JOm79fh0RY+SGn1lbHDvS7tfuvVPIDbxJvQ7GQCLwjE5dYRTCPTNNv2zYO6KigovynUfKl4fhnubLrpvTTi6ck0gtvwqWXK1ICaX8CVf1PtpRdgMFzcIn53MlxXT9klM36uqibdSiaH2gSO/fqljx4NHMFo6EokkfD5fanBwkIhi7BVdNI7JqTecHiDpFycWXSUlJV5VVb04tiAl5Kmov6Z0WcsNq/yR5S0eT3gpWlQt4gO87qWI8QgawJFpPNLKGW1cYto4HbOGYrMXuRE5ZLxbSQ93d7f95M2+w7+hww/SNhcRhU+pwCngGCucLgSyAre5W1tb5d7eXk86nXZhj3Zj73ahV8JNx0jje5ff75dxnsUgroQ9XzKO18Rnhs+GvtDQMNFwzKJiHsr4+LhQRvpQALIJcsqJ8n4DiT6lrH/zmrjLMDAC1dXV5DcKo3iM4EieTqktsdzphIygflEa4ka3npcYeJ3mcNpXMA9IDmFOHPC+5Iz/BElwM6GmmQapAAAAAElFTkSuQmCC", qp = "data:image/png;base64,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", jp = "data:image/png;base64,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", Qp = "data:image/png;base64,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", Xp = "data:image/png;base64,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", Kp = "data:image/png;base64,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", Zp = "data:image/png;base64,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", _p = "data:image/png;base64,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", ft = {
|
|
3168
3168
|
1: {
|
|
3169
3169
|
...Vp,
|
|
3170
|
-
logo:
|
|
3170
|
+
logo: Jp,
|
|
3171
3171
|
chainId: 1,
|
|
3172
3172
|
chainType: "ether",
|
|
3173
3173
|
chainTypeMoralis: "eth",
|
|
@@ -3180,7 +3180,7 @@ const qp = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAYAAAAdHLWhAA
|
|
|
3180
3180
|
},
|
|
3181
3181
|
10: {
|
|
3182
3182
|
...Gp,
|
|
3183
|
-
logo:
|
|
3183
|
+
logo: qp,
|
|
3184
3184
|
chainId: 10,
|
|
3185
3185
|
chainType: "optimism",
|
|
3186
3186
|
chainTypeMoralis: "optimism",
|
|
@@ -3372,7 +3372,7 @@ function bt(e, t) {
|
|
|
3372
3372
|
o = o.padEnd(t, "0");
|
|
3373
3373
|
return BigInt(`${s ? "-" : ""}${n}${o}`);
|
|
3374
3374
|
}
|
|
3375
|
-
const sm = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
3375
|
+
const sm = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", ze = "0x0000000000000000000000000000000000000000", Ys = oo(
|
|
3376
3376
|
void 0
|
|
3377
3377
|
), yo = () => {
|
|
3378
3378
|
const e = so(Ys);
|
|
@@ -3490,12 +3490,12 @@ function um(e, t, n) {
|
|
|
3490
3490
|
throw new Error("Random bytes length must be >= 16");
|
|
3491
3491
|
return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, im(o);
|
|
3492
3492
|
}
|
|
3493
|
-
function
|
|
3493
|
+
function zs(e, t, n) {
|
|
3494
3494
|
return Xo.randomUUID && !e ? Xo.randomUUID() : um(e);
|
|
3495
3495
|
}
|
|
3496
3496
|
const fm = "chat_widget_messages", Ao = fm, bn = 200, Ht = [
|
|
3497
3497
|
{
|
|
3498
|
-
id:
|
|
3498
|
+
id: zs(),
|
|
3499
3499
|
text: `**Welcome! 🚀**
|
|
3500
3500
|
You're connected and ready to explore DeFi! I can help you trade, check prices, and analyze your portfolio when you need it.`,
|
|
3501
3501
|
sender: "bot",
|
|
@@ -3551,7 +3551,7 @@ function mm() {
|
|
|
3551
3551
|
}, []);
|
|
3552
3552
|
const r = (g, A, y, T, B) => {
|
|
3553
3553
|
const ke = y ? s.find((H) => H.id === y) : void 0, N = {
|
|
3554
|
-
id:
|
|
3554
|
+
id: zs(),
|
|
3555
3555
|
text: g,
|
|
3556
3556
|
sender: A,
|
|
3557
3557
|
timestamp: /* @__PURE__ */ new Date(),
|
|
@@ -3566,8 +3566,8 @@ function mm() {
|
|
|
3566
3566
|
...B && { actionData: B }
|
|
3567
3567
|
};
|
|
3568
3568
|
return a((H) => {
|
|
3569
|
-
const
|
|
3570
|
-
return
|
|
3569
|
+
const J = [...H, N];
|
|
3570
|
+
return J.length > bn ? J.slice(J.length - bn) : J;
|
|
3571
3571
|
}), N;
|
|
3572
3572
|
}, i = (g, A) => {
|
|
3573
3573
|
a(
|
|
@@ -3598,17 +3598,17 @@ function mm() {
|
|
|
3598
3598
|
clearMessagesById: Y
|
|
3599
3599
|
};
|
|
3600
3600
|
}
|
|
3601
|
-
const
|
|
3602
|
-
const e = so(
|
|
3601
|
+
const Js = oo(void 0), hm = () => {
|
|
3602
|
+
const e = so(Js);
|
|
3603
3603
|
if (!e)
|
|
3604
3604
|
throw new Error("useConfig must be used within ConfigProvider");
|
|
3605
3605
|
return e;
|
|
3606
3606
|
}, gm = ({
|
|
3607
3607
|
children: e,
|
|
3608
3608
|
initialConfig: t
|
|
3609
|
-
}) => /* @__PURE__ */ W(
|
|
3609
|
+
}) => /* @__PURE__ */ W(Js.Provider, { value: { config: t || null }, children: e });
|
|
3610
3610
|
var wm = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, Un = Math.ceil, at = Math.floor, Ze = "[BigNumber Error] ", _o = Ze + "Number primitive has more than 15 significant digits: ", it = 1e14, be = 14, Mn = 9007199254740991, Hn = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], Tt = 1e7, We = 1e9;
|
|
3611
|
-
function
|
|
3611
|
+
function qs(e) {
|
|
3612
3612
|
var t, n, o, s = N.prototype = { constructor: N, toString: null, valueOf: null }, a = new N(1), r = 20, i = 4, l = -7, v = 21, R = -1e7, Y = 1e7, g = !1, A = 1, y = 0, T = {
|
|
3613
3613
|
prefix: "",
|
|
3614
3614
|
groupSize: 3,
|
|
@@ -3686,7 +3686,7 @@ function zs(e) {
|
|
|
3686
3686
|
} else
|
|
3687
3687
|
I.c = [I.e = 0];
|
|
3688
3688
|
}
|
|
3689
|
-
N.clone =
|
|
3689
|
+
N.clone = qs, 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) {
|
|
3690
3690
|
var d, p;
|
|
3691
3691
|
if (c != null)
|
|
3692
3692
|
if (typeof c == "object") {
|
|
@@ -3749,9 +3749,9 @@ function zs(e) {
|
|
|
3749
3749
|
return !0;
|
|
3750
3750
|
throw Error(Ze + "Invalid BigNumber: " + c);
|
|
3751
3751
|
}, N.maximum = N.max = function() {
|
|
3752
|
-
return
|
|
3752
|
+
return J(arguments, -1);
|
|
3753
3753
|
}, N.minimum = N.min = function() {
|
|
3754
|
-
return
|
|
3754
|
+
return J(arguments, 1);
|
|
3755
3755
|
}, N.random = (function() {
|
|
3756
3756
|
var c = 9007199254740992, d = Math.random() * c & 2097151 ? function() {
|
|
3757
3757
|
return at(Math.random() * c);
|
|
@@ -3895,7 +3895,7 @@ function zs(e) {
|
|
|
3895
3895
|
for (w + 1 == h && (b += "."); d--; b += "0") ;
|
|
3896
3896
|
return c.s < 0 && u ? "-" + b : b;
|
|
3897
3897
|
}
|
|
3898
|
-
function
|
|
3898
|
+
function J(c, d) {
|
|
3899
3899
|
for (var p, E, u = 1, w = new N(c[0]); u < c.length; u++)
|
|
3900
3900
|
E = new N(c[u]), (!E.s || (p = Ft(w, E)) === d || p === 0 && w.s === d) && (w = E);
|
|
3901
3901
|
return w;
|
|
@@ -4224,7 +4224,7 @@ function wt(e, t, n) {
|
|
|
4224
4224
|
} else t < o && (e = e.slice(0, t) + "." + e.slice(t));
|
|
4225
4225
|
return e;
|
|
4226
4226
|
}
|
|
4227
|
-
var ie =
|
|
4227
|
+
var ie = qs();
|
|
4228
4228
|
class Xt {
|
|
4229
4229
|
baseUrl;
|
|
4230
4230
|
constructor(t) {
|
|
@@ -4327,7 +4327,7 @@ async function Ke(e) {
|
|
|
4327
4327
|
(R) => new ie(R?.balance || 0).gt(0)
|
|
4328
4328
|
), v.result = v.result.map((R) => ({
|
|
4329
4329
|
...R,
|
|
4330
|
-
token_address: R.token_address === sm ?
|
|
4330
|
+
token_address: R.token_address === sm ? ze : R.token_address
|
|
4331
4331
|
}));
|
|
4332
4332
|
try {
|
|
4333
4333
|
if (v.result.length > 0) {
|
|
@@ -4382,7 +4382,7 @@ async function $o(e) {
|
|
|
4382
4382
|
const o = Gs(n) ?? n, s = await js.get(
|
|
4383
4383
|
`/keyrings/tokens/${o}/v2`,
|
|
4384
4384
|
{ query: { addresses: t } }
|
|
4385
|
-
), a = t ===
|
|
4385
|
+
), a = t === ze, i = (Array.isArray(s.data) ? s.data : []).find((y) => y.address?.toLowerCase() === t.toLowerCase() || a && y.address === "") ?? null;
|
|
4386
4386
|
if (i)
|
|
4387
4387
|
return {
|
|
4388
4388
|
success: !0,
|
|
@@ -5085,14 +5085,14 @@ const Fm = ({
|
|
|
5085
5085
|
if (["send_native", "send_token", "swap_token"].includes(
|
|
5086
5086
|
e
|
|
5087
5087
|
) && a) {
|
|
5088
|
-
const
|
|
5089
|
-
if (
|
|
5088
|
+
const J = parseFloat(a.balanceFormatted || "0");
|
|
5089
|
+
if (J <= 0)
|
|
5090
5090
|
N.amount = l("formNoBalance", {
|
|
5091
5091
|
symbol: a.symbol ?? ""
|
|
5092
5092
|
});
|
|
5093
5093
|
else {
|
|
5094
5094
|
const me = t.amount?.trim();
|
|
5095
|
-
me && Vn(me) && parseFloat(me) >
|
|
5095
|
+
me && Vn(me) && parseFloat(me) > J && (N.amount = l("formInsufficientBalance", {
|
|
5096
5096
|
balance: a.balanceFormatted,
|
|
5097
5097
|
symbol: a.symbol ?? ""
|
|
5098
5098
|
}));
|
|
@@ -5101,8 +5101,8 @@ const Fm = ({
|
|
|
5101
5101
|
return N;
|
|
5102
5102
|
}), T = Ie(
|
|
5103
5103
|
(N, H) => {
|
|
5104
|
-
Y((
|
|
5105
|
-
const me = { ...
|
|
5104
|
+
Y((J) => ({ ...J, [N]: H })), A[N] && y((J) => {
|
|
5105
|
+
const me = { ...J };
|
|
5106
5106
|
return delete me[N], me;
|
|
5107
5107
|
});
|
|
5108
5108
|
},
|
|
@@ -5111,22 +5111,22 @@ const Fm = ({
|
|
|
5111
5111
|
if (!v) return !1;
|
|
5112
5112
|
const N = {};
|
|
5113
5113
|
if (v.fields.forEach((H) => {
|
|
5114
|
-
const
|
|
5115
|
-
if (H.required && !
|
|
5114
|
+
const J = R[H.key]?.trim() || "";
|
|
5115
|
+
if (H.required && !J && !(e === "send_nft" && H.key === "amount")) {
|
|
5116
5116
|
N[H.key] = l("formFieldRequired", {
|
|
5117
5117
|
field: i(H.label)
|
|
5118
5118
|
});
|
|
5119
5119
|
return;
|
|
5120
5120
|
}
|
|
5121
|
-
if (
|
|
5122
|
-
if (H.validation === "address" && !Bm(
|
|
5123
|
-
const me = parseFloat(
|
|
5121
|
+
if (J) {
|
|
5122
|
+
if (H.validation === "address" && !Bm(J) && (N[H.key] = i("formInvalidAddress")), H.validation === "amount" && !Vn(J) && (N[H.key] = i("formMustBePositive")), H.key === "amount" && J && Vn(J) && a?.balanceFormatted) {
|
|
5123
|
+
const me = parseFloat(J), he = parseFloat(a.balanceFormatted);
|
|
5124
5124
|
me > he && (N[H.key] = l("formInsufficientBalance", {
|
|
5125
5125
|
balance: a.balanceFormatted,
|
|
5126
5126
|
symbol: a.symbol ?? ""
|
|
5127
5127
|
}));
|
|
5128
5128
|
}
|
|
5129
|
-
H.validation === "positive_number" && (isNaN(Number(
|
|
5129
|
+
H.validation === "positive_number" && (isNaN(Number(J)) || Number(J) < 0) && (N[H.key] = i("formMustBeValidNumber"));
|
|
5130
5130
|
}
|
|
5131
5131
|
}), e === "send_nft" && R.token_standard?.toUpperCase() === "ERC1155") {
|
|
5132
5132
|
const H = R.amount?.trim();
|
|
@@ -5137,9 +5137,9 @@ const Fm = ({
|
|
|
5137
5137
|
else if (!/^\d+$/.test(H) || parseInt(H, 10) < 1)
|
|
5138
5138
|
N.amount = i("formMustBePositiveInteger");
|
|
5139
5139
|
else {
|
|
5140
|
-
const
|
|
5141
|
-
|
|
5142
|
-
max: String(
|
|
5140
|
+
const J = parseInt(t.maxAmount || "0", 10);
|
|
5141
|
+
J > 0 && parseInt(H, 10) > J && (N.amount = l("formAmountExceedsNft", {
|
|
5142
|
+
max: String(J)
|
|
5143
5143
|
}));
|
|
5144
5144
|
}
|
|
5145
5145
|
}
|
|
@@ -5233,7 +5233,7 @@ const Fm = ({
|
|
|
5233
5233
|
] })
|
|
5234
5234
|
] }),
|
|
5235
5235
|
(() => {
|
|
5236
|
-
const H = N.editable === !1 && !!t[N.key],
|
|
5236
|
+
const H = N.editable === !1 && !!t[N.key], J = s || H, me = [
|
|
5237
5237
|
A[N.key] ? "error" : "",
|
|
5238
5238
|
H ? "readonly" : ""
|
|
5239
5239
|
].filter(Boolean).join(" ");
|
|
@@ -5245,7 +5245,7 @@ const Fm = ({
|
|
|
5245
5245
|
value: R[N.key] || "",
|
|
5246
5246
|
onChange: (he) => T(N.key, he.target.value),
|
|
5247
5247
|
className: me,
|
|
5248
|
-
disabled:
|
|
5248
|
+
disabled: J
|
|
5249
5249
|
}
|
|
5250
5250
|
) : /* @__PURE__ */ W(
|
|
5251
5251
|
"input",
|
|
@@ -5255,7 +5255,7 @@ const Fm = ({
|
|
|
5255
5255
|
value: R[N.key] || "",
|
|
5256
5256
|
onChange: (he) => T(N.key, he.target.value),
|
|
5257
5257
|
className: me,
|
|
5258
|
-
disabled:
|
|
5258
|
+
disabled: J
|
|
5259
5259
|
}
|
|
5260
5260
|
);
|
|
5261
5261
|
})(),
|
|
@@ -6046,7 +6046,7 @@ async function nn(e) {
|
|
|
6046
6046
|
return console.warn("estimateTransactionFee failed:", l), new ie(0);
|
|
6047
6047
|
}
|
|
6048
6048
|
}
|
|
6049
|
-
async function
|
|
6049
|
+
async function zn(e) {
|
|
6050
6050
|
const { chainId: t, rpcUrl: n } = e, o = fn(t, n);
|
|
6051
6051
|
if (!o)
|
|
6052
6052
|
return console.warn(`No RPC endpoint for chain ${t}`), new ie(0);
|
|
@@ -6066,11 +6066,11 @@ async function Jn(e) {
|
|
|
6066
6066
|
return console.warn("getGasPrice failed:", s), new ie(0);
|
|
6067
6067
|
}
|
|
6068
6068
|
}
|
|
6069
|
-
var se = {}, on = { exports: {} },
|
|
6070
|
-
function
|
|
6069
|
+
var se = {}, on = { exports: {} }, zm = on.exports, es;
|
|
6070
|
+
function Jm() {
|
|
6071
6071
|
return es || (es = 1, (function(e, t) {
|
|
6072
6072
|
(function(n, o) {
|
|
6073
|
-
var s = "1.0.41", a = "", r = "?", i = "function", l = "undefined", v = "object", R = "string", Y = "major", g = "model", A = "name", y = "type", T = "vendor", B = "version", ke = "architecture", N = "console", H = "mobile",
|
|
6073
|
+
var s = "1.0.41", a = "", r = "?", i = "function", l = "undefined", v = "object", R = "string", Y = "major", g = "model", A = "name", y = "type", T = "vendor", B = "version", ke = "architecture", N = "console", H = "mobile", J = "tablet", me = "smarttv", he = "wearable", Se = "embedded", c = 500, d = "Amazon", p = "Apple", E = "ASUS", u = "BlackBerry", w = "Browser", x = "Chrome", h = "Edge", b = "Firefox", S = "Google", I = "Honor", F = "Huawei", Q = "Lenovo", oe = "LG", le = "Microsoft", Ce = "Motorola", Te = "Nvidia", j = "OnePlus", ye = "Opera", Be = "OPPO", Ge = "Samsung", je = "Sharp", Qe = "Sony", He = "Xiaomi", et = "Zebra", Fe = "Facebook", Re = "Chromium OS", Ee = "Mac OS", St = " Browser", It = function(D, k) {
|
|
6074
6074
|
var O = {};
|
|
6075
6075
|
for (var ee in D)
|
|
6076
6076
|
k[ee] && k[ee].length % 2 === 0 ? O[ee] = k[ee].concat(D[ee]) : O[ee] = D[ee];
|
|
@@ -6089,12 +6089,12 @@ function qm() {
|
|
|
6089
6089
|
if (typeof D === R)
|
|
6090
6090
|
return D = D.replace(/^\s\s*/, a), typeof k === l ? D : D.substring(0, c);
|
|
6091
6091
|
}, G = function(D, k) {
|
|
6092
|
-
for (var O = 0, ee, te, de, re, U,
|
|
6092
|
+
for (var O = 0, ee, te, de, re, U, q; O < k.length && !U; ) {
|
|
6093
6093
|
var ne = k[O], M = k[O + 1];
|
|
6094
6094
|
for (ee = te = 0; ee < ne.length && !U && ne[ee]; )
|
|
6095
6095
|
if (U = ne[ee++].exec(D), U)
|
|
6096
6096
|
for (de = 0; de < M.length; de++)
|
|
6097
|
-
|
|
6097
|
+
q = U[++te], re = M[de], typeof re === v && re.length > 0 ? re.length === 2 ? typeof re[1] == i ? this[re[0]] = re[1].call(this, q) : this[re[0]] = re[1] : re.length === 3 ? typeof re[1] === i && !(re[1].exec && re[1].test) ? this[re[0]] = q ? re[1].call(this, q, re[2]) : o : this[re[0]] = q ? q.replace(re[1], re[2]) : o : re.length === 4 && (this[re[0]] = q ? re[3].call(this, q.replace(re[1], re[2])) : o) : this[re] = q || o;
|
|
6098
6098
|
O += 2;
|
|
6099
6099
|
}
|
|
6100
6100
|
}, Z = function(D, k) {
|
|
@@ -6106,10 +6106,10 @@ function qm() {
|
|
|
6106
6106
|
} else if (ht(k[O], D))
|
|
6107
6107
|
return O === r ? o : O;
|
|
6108
6108
|
return k.hasOwnProperty("*") ? k["*"] : D;
|
|
6109
|
-
}, _ = { "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" }, J = { 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, ye + " Mini"]], [/\bop(?:rg)?x\/([\w\.]+)/i], [B, [A, ye + " GX"]], [/\bopr\/([\w\.]+)/i], [B, [A, ye]], [/\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, ye + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [B, [A, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [B, [A, "Dolphin"]], [/coast\/([\w\.]+)/i], [B, [A, ye + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [B, [A, "MIUI" + St]], [/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" + St], 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, x + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[A, x + " 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], [[ke, "amd64"]], [/(ia32(?=;))/i, /\b((i[346]|x)86)(pc)?\b/i], [[ke, "ia32"]], [/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i], [[ke, "arm64"]], [/\b(arm(v[67])?ht?n?[fl]p?)\b/i], [[ke, "armhf"]], [/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i], [[ke, "arm"]], [/((ppc|powerpc)(64)?)( mac|;|\))/i], [[ke, /ower/, a, lt]], [/ sun4\w[;\)]/i], [[ke, "sparc"]], [/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i], [[ke, 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, Ge], [y, q]], [/\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, H]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [g, [T, p], [y, H]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [g, [T, p], [y, q]], [/(macintosh);/i], [g, [T, p]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [g, [T, je], [y, H]], [/\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, q]], [/honor([-\w ]+)[;\)]/i], [g, [T, I], [y, H]], [/\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, q]], [/(?:huawei)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [g, [T, F], [y, H]], [/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i, /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i], [[g, /_/g, " "], [T, He], [y, q]], [/\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, He], [y, H]], [/; (\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, Be], [y, H]], [/\b(opd2(\d{3}a?))(?: bui|\))/i], [g, [T, Z, { OnePlus: ["304", "403", "203"], "*": Be }], [y, q]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [g, [T, "Vivo"], [y, H]], [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i], [g, [T, "Realme"], [y, H]], [/\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, H]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [g, [T, Ce], [y, q]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [g, [T, oe], [y, q]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i, /\blg-?([\d\w]+) bui/i], [g, [T, oe], [y, H]], [/(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, q]], [/(nokia) (t[12][01])/i], [T, g, [y, q]], [/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i, /nokia[-_ ]?(([-\w\. ]*))/i], [[g, /_/g, " "], [y, H], [T, "Nokia"]], [/(pixel (c|tablet))\b/i], [g, [T, S], [y, q]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [g, [T, S], [y, H]], [/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, Qe], [y, H]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[g, "Xperia Tablet"], [T, Qe], [y, q]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [g, [T, j], [y, H]], [/(alexa)webm/i, /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [g, [T, d], [y, q]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[g, /(.+)/g, "Fire Phone $1"], [T, d], [y, H]], [/(playbook);[-\w\),; ]+(rim)/i], [g, T, [y, q]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [g, [T, u], [y, H]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [g, [T, E], [y, q]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [g, [T, E], [y, H]], [/(nexus 9)/i], [g, [T, "HTC"], [y, q]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i], [T, [g, /_/g, " "], [y, H]], [/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, q]], [/(itel) ((\w+))/i], [[T, lt], g, [y, Z, { tablet: ["p10001l", "w7001"], "*": "mobile" }]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [g, [T, "Acer"], [y, q]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [g, [T, "Meizu"], [y, H]], [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i], [g, [T, "Ulefone"], [y, H]], [/; (energy ?\w+)(?: bui|\))/i, /; energizer ([\w ]+)(?: bui|\))/i], [g, [T, "Energizer"], [y, H]], [/; cat (b35);/i, /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i], [g, [T, "Cat"], [y, H]], [/((?:new )?andromax[\w- ]+)(?: bui|\))/i], [g, [T, "Smartfren"], [y, H]], [/droid.+; (a(?:015|06[35]|142p?))/i], [g, [T, "Nothing"], [y, H]], [/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i, /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i], [g, [T, "Archos"], [y, q]], [/archos ([\w ]+)( b|\))/i, /; (ac[3-6]\d\w{2,8})( b|\))/i], [g, [T, "Archos"], [y, H]], [/(imo) (tab \w+)/i, /(infinix) (x1101b?)/i], [T, g, [y, q]], [/(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, H]], [/(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, q]], [/(surface duo)/i], [g, [T, le], [y, q]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [g, [T, "Fairphone"], [y, H]], [/(u304aa)/i], [g, [T, "AT&T"], [y, H]], [/\bsie-(\w*)/i], [g, [T, "Siemens"], [y, H]], [/\b(rct\w+) b/i], [g, [T, "RCA"], [y, q]], [/\b(venue[\d ]{2,7}) b/i], [g, [T, "Dell"], [y, q]], [/\b(q(?:mv|ta)\w+) b/i], [g, [T, "Verizon"], [y, q]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [g, [T, "Barnes & Noble"], [y, q]], [/\b(tm\d{3}\w+) b/i], [g, [T, "NuVision"], [y, q]], [/\b(k88) b/i], [g, [T, "ZTE"], [y, q]], [/\b(nx\d{3}j) b/i], [g, [T, "ZTE"], [y, H]], [/\b(gen\d{3}) b.+49h/i], [g, [T, "Swiss"], [y, H]], [/\b(zur\d{3}) b/i], [g, [T, "Swiss"], [y, q]], [/\b((zeki)?tb.*\b) b/i], [g, [T, "Zeki"], [y, q]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[T, "Dragon Touch"], g, [y, q]], [/\b(ns-?\w{0,9}) b/i], [g, [T, "Insignia"], [y, q]], [/\b((nxa|next)-?\w{0,9}) b/i], [g, [T, "NextBook"], [y, q]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[T, "Voice"], g, [y, H]], [/\b(lvtel\-)?(v1[12]) b/i], [[T, "LvTel"], g, [y, H]], [/\b(ph-1) /i], [g, [T, "Essential"], [y, H]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [g, [T, "Envizen"], [y, q]], [/\b(trio[-\w\. ]+) b/i], [g, [T, "MachSpeed"], [y, q]], [/\btu_(1491) b/i], [g, [T, "Rotor"], [y, q]], [/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i], [g, [T, Te], [y, q]], [/(sprint) (\w+)/i], [T, g, [y, H]], [/(kin\.[onetw]{3})/i], [[g, /\./g, " "], [T, le], [y, H]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [g, [T, et], [y, q]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [g, [T, et], [y, H]], [/smart-tv.+(samsung)/i], [T, [y, me]], [/hbbtv.+maple;(\d+)/i], [[g, /^/, "SmartTV"], [T, Ge], [y, me]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[T, oe], [y, me]], [/(apple) ?tv/i], [T, [g, p + " TV"], [y, me]], [/crkey/i], [[g, x + "cast"], [T, S], [y, me]], [/droid.+aft(\w+)( bui|\))/i], [g, [T, d], [y, me]], [/(shield \w+ tv)/i], [g, [T, Te], [y, me]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [g, [T, je], [y, me]], [/(bravia[\w ]+)( bui|\))/i], [g, [T, Qe], [y, me]], [/(mi(tv|box)-?\w+) bui/i], [g, [T, He], [y, me]], [/Hbbtv.*(technisat) (.*);/i], [T, g, [y, me]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[T, X], [g, X], [y, me]], [/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i], [g, [y, me]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[y, me]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [T, g, [y, N]], [/droid.+; (shield)( bui|\))/i], [g, [T, Te], [y, N]], [/(playstation \w+)/i], [g, [T, Qe], [y, N]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [g, [T, le], [y, N]], [/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i], [g, [T, Ge], [y, he]], [/((pebble))app/i, /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i], [T, g, [y, he]], [/(ow(?:19|20)?we?[1-3]{1,3})/i], [g, [T, Be], [y, he]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [g, [T, p], [y, he]], [/(opwwe\d{3})/i], [g, [T, j], [y, he]], [/(moto 360)/i], [g, [T, Ce], [y, he]], [/(smartwatch 3)/i], [g, [T, Qe], [y, he]], [/(g watch r)/i], [g, [T, oe], [y, he]], [/droid.+; (wt63?0{2,3})\)/i], [g, [T, et], [y, he]], [/droid.+; (glass) \d/i], [g, [T, S], [y, he]], [/(pico) (4|neo3(?: link|pro)?)/i], [T, g, [y, he]], [/; (quest( \d| pro)?)/i], [g, [T, Fe], [y, he]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [T, [y, Se]], [/(aeobc)\b/i], [g, [T, d], [y, Se]], [/(homepod).+mac os/i], [g, [T, p], [y, Se]], [/windows iot/i], [[y, Se]], [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i], [g, [y, H]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [g, [y, q]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[y, q]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], [[y, H]], [/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, x + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[A, Re], 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(D, k) {
|
|
6109
|
+
}, _ = { "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, ye + " Mini"]], [/\bop(?:rg)?x\/([\w\.]+)/i], [B, [A, ye + " GX"]], [/\bopr\/([\w\.]+)/i], [B, [A, ye]], [/\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, ye + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [B, [A, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [B, [A, "Dolphin"]], [/coast\/([\w\.]+)/i], [B, [A, ye + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [B, [A, "MIUI" + St]], [/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" + St], 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, x + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[A, x + " 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], [[ke, "amd64"]], [/(ia32(?=;))/i, /\b((i[346]|x)86)(pc)?\b/i], [[ke, "ia32"]], [/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i], [[ke, "arm64"]], [/\b(arm(v[67])?ht?n?[fl]p?)\b/i], [[ke, "armhf"]], [/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i], [[ke, "arm"]], [/((ppc|powerpc)(64)?)( mac|;|\))/i], [[ke, /ower/, a, lt]], [/ sun4\w[;\)]/i], [[ke, "sparc"]], [/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i], [[ke, 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, 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, H]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [g, [T, p], [y, H]], [/\((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, je], [y, H]], [/\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, H]], [/\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, H]], [/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i, /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i], [[g, /_/g, " "], [T, He], [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, He], [y, H]], [/; (\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, Be], [y, H]], [/\b(opd2(\d{3}a?))(?: bui|\))/i], [g, [T, Z, { OnePlus: ["304", "403", "203"], "*": Be }], [y, J]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [g, [T, "Vivo"], [y, H]], [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i], [g, [T, "Realme"], [y, H]], [/\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, H]], [/\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, oe], [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, oe], [y, H]], [/(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, H], [T, "Nokia"]], [/(pixel (c|tablet))\b/i], [g, [T, S], [y, J]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [g, [T, S], [y, H]], [/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, Qe], [y, H]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[g, "Xperia Tablet"], [T, Qe], [y, J]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [g, [T, j], [y, H]], [/(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, H]], [/(playbook);[-\w\),; ]+(rim)/i], [g, T, [y, J]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [g, [T, u], [y, H]], [/(?:\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, H]], [/(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, H]], [/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, H]], [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i], [g, [T, "Ulefone"], [y, H]], [/; (energy ?\w+)(?: bui|\))/i, /; energizer ([\w ]+)(?: bui|\))/i], [g, [T, "Energizer"], [y, H]], [/; cat (b35);/i, /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i], [g, [T, "Cat"], [y, H]], [/((?:new )?andromax[\w- ]+)(?: bui|\))/i], [g, [T, "Smartfren"], [y, H]], [/droid.+; (a(?:015|06[35]|142p?))/i], [g, [T, "Nothing"], [y, H]], [/; (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, H]], [/(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, H]], [/(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, le], [y, J]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [g, [T, "Fairphone"], [y, H]], [/(u304aa)/i], [g, [T, "AT&T"], [y, H]], [/\bsie-(\w*)/i], [g, [T, "Siemens"], [y, H]], [/\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, H]], [/\b(gen\d{3}) b.+49h/i], [g, [T, "Swiss"], [y, H]], [/\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, H]], [/\b(lvtel\-)?(v1[12]) b/i], [[T, "LvTel"], g, [y, H]], [/\b(ph-1) /i], [g, [T, "Essential"], [y, H]], [/\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, H]], [/(kin\.[onetw]{3})/i], [[g, /\./g, " "], [T, le], [y, H]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [g, [T, et], [y, J]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [g, [T, et], [y, H]], [/smart-tv.+(samsung)/i], [T, [y, me]], [/hbbtv.+maple;(\d+)/i], [[g, /^/, "SmartTV"], [T, Ge], [y, me]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[T, oe], [y, me]], [/(apple) ?tv/i], [T, [g, p + " TV"], [y, me]], [/crkey/i], [[g, x + "cast"], [T, S], [y, me]], [/droid.+aft(\w+)( bui|\))/i], [g, [T, d], [y, me]], [/(shield \w+ tv)/i], [g, [T, Te], [y, me]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [g, [T, je], [y, me]], [/(bravia[\w ]+)( bui|\))/i], [g, [T, Qe], [y, me]], [/(mi(tv|box)-?\w+) bui/i], [g, [T, He], [y, me]], [/Hbbtv.*(technisat) (.*);/i], [T, g, [y, me]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[T, X], [g, X], [y, me]], [/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i], [g, [y, me]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[y, me]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [T, g, [y, N]], [/droid.+; (shield)( bui|\))/i], [g, [T, Te], [y, N]], [/(playstation \w+)/i], [g, [T, Qe], [y, N]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [g, [T, le], [y, N]], [/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i], [g, [T, Ge], [y, he]], [/((pebble))app/i, /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i], [T, g, [y, he]], [/(ow(?:19|20)?we?[1-3]{1,3})/i], [g, [T, Be], [y, he]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [g, [T, p], [y, he]], [/(opwwe\d{3})/i], [g, [T, j], [y, he]], [/(moto 360)/i], [g, [T, Ce], [y, he]], [/(smartwatch 3)/i], [g, [T, Qe], [y, he]], [/(g watch r)/i], [g, [T, oe], [y, he]], [/droid.+; (wt63?0{2,3})\)/i], [g, [T, et], [y, he]], [/droid.+; (glass) \d/i], [g, [T, S], [y, he]], [/(pico) (4|neo3(?: link|pro)?)/i], [T, g, [y, he]], [/; (quest( \d| pro)?)/i], [g, [T, Fe], [y, he]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [T, [y, Se]], [/(aeobc)\b/i], [g, [T, d], [y, Se]], [/(homepod).+mac os/i], [g, [T, p], [y, Se]], [/windows iot/i], [[y, Se]], [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i], [g, [y, H]], [/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, H]], [/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, x + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[A, Re], 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(D, k) {
|
|
6110
6110
|
if (typeof D === v && (k = D, D = o), !(this instanceof $))
|
|
6111
6111
|
return new $(D, k).getResult();
|
|
6112
|
-
var O = typeof n !== l && n.navigator ? n.navigator : o, ee = D || (O && O.userAgent ? O.userAgent : a), te = O && O.userAgentData ? O.userAgentData : o, de = k ? It(
|
|
6112
|
+
var O = typeof n !== l && n.navigator ? n.navigator : o, ee = D || (O && O.userAgent ? O.userAgent : a), te = O && O.userAgentData ? O.userAgentData : o, de = k ? It(z, k) : z, re = O && O.userAgent == ee;
|
|
6113
6113
|
return this.getBrowser = function() {
|
|
6114
6114
|
var U = {};
|
|
6115
6115
|
return U[A] = o, U[B] = o, G.call(U, ee, de.browser), U[Y] = L(U[B]), re && O && O.brave && typeof O.brave.isBrave == i && (U[A] = "Brave"), U;
|
|
@@ -6118,7 +6118,7 @@ function qm() {
|
|
|
6118
6118
|
return U[ke] = o, G.call(U, ee, de.cpu), U;
|
|
6119
6119
|
}, this.getDevice = function() {
|
|
6120
6120
|
var U = {};
|
|
6121
|
-
return U[T] = o, U[g] = o, U[y] = o, G.call(U, ee, de.device), re && !U[y] && te && te.mobile && (U[y] = H), re && U[g] == "Macintosh" && O && typeof O.standalone !== l && O.maxTouchPoints && O.maxTouchPoints > 2 && (U[g] = "iPad", U[y] =
|
|
6121
|
+
return U[T] = o, U[g] = o, U[y] = o, G.call(U, ee, de.device), re && !U[y] && te && te.mobile && (U[y] = H), re && U[g] == "Macintosh" && O && typeof O.standalone !== l && O.maxTouchPoints && O.maxTouchPoints > 2 && (U[g] = "iPad", U[y] = J), U;
|
|
6122
6122
|
}, this.getEngine = function() {
|
|
6123
6123
|
var U = {};
|
|
6124
6124
|
return U[A] = o, U[B] = o, G.call(U, ee, de.engine), U;
|
|
@@ -6133,7 +6133,7 @@ function qm() {
|
|
|
6133
6133
|
return ee = typeof U === R && U.length > c ? X(U, c) : U, this;
|
|
6134
6134
|
}, this.setUA(ee), this;
|
|
6135
6135
|
};
|
|
6136
|
-
$.VERSION = s, $.BROWSER = mt([A, B, Y]), $.CPU = mt([ke]), $.DEVICE = mt([g, T, y, N, H, me,
|
|
6136
|
+
$.VERSION = s, $.BROWSER = mt([A, B, Y]), $.CPU = mt([ke]), $.DEVICE = mt([g, T, y, N, H, me, J, he, Se]), $.ENGINE = $.OS = mt([A, B]), e.exports && (t = e.exports = $), t.UAParser = $;
|
|
6137
6137
|
var fe = typeof n !== l && (n.jQuery || n.Zepto);
|
|
6138
6138
|
if (fe && !fe.ua) {
|
|
6139
6139
|
var ae = new $();
|
|
@@ -6146,17 +6146,17 @@ function qm() {
|
|
|
6146
6146
|
fe.ua[O] = k[O];
|
|
6147
6147
|
};
|
|
6148
6148
|
}
|
|
6149
|
-
})(typeof window == "object" ? window :
|
|
6149
|
+
})(typeof window == "object" ? window : zm);
|
|
6150
6150
|
})(on, on.exports)), on.exports;
|
|
6151
6151
|
}
|
|
6152
6152
|
var ts;
|
|
6153
|
-
function
|
|
6153
|
+
function qm() {
|
|
6154
6154
|
if (ts) return se;
|
|
6155
6155
|
ts = 1, Object.defineProperty(se, "__esModule", { value: !0 });
|
|
6156
6156
|
function e(C) {
|
|
6157
6157
|
return C && typeof C == "object" && "default" in C ? C.default : C;
|
|
6158
6158
|
}
|
|
6159
|
-
var t =
|
|
6159
|
+
var t = qa, n = e(t), o = Jm(), s = new o(), a = s.getBrowser(), r = s.getCPU(), i = s.getDevice(), l = s.getEngine(), v = s.getOS(), R = s.getUA(), Y = function(f) {
|
|
6160
6160
|
return s.setUA(f);
|
|
6161
6161
|
}, g = function(f) {
|
|
6162
6162
|
if (!f) {
|
|
@@ -6201,7 +6201,7 @@ function zm() {
|
|
|
6201
6201
|
for (var f = 1; f < arguments.length; f++) {
|
|
6202
6202
|
var m = arguments[f] != null ? arguments[f] : {};
|
|
6203
6203
|
f % 2 ? y(Object(m), !0).forEach(function(P) {
|
|
6204
|
-
|
|
6204
|
+
J(C, P, m[P]);
|
|
6205
6205
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(C, Object.getOwnPropertyDescriptors(m)) : y(Object(m)).forEach(function(P) {
|
|
6206
6206
|
Object.defineProperty(C, P, Object.getOwnPropertyDescriptor(m, P));
|
|
6207
6207
|
});
|
|
@@ -6229,7 +6229,7 @@ function zm() {
|
|
|
6229
6229
|
function H(C, f, m) {
|
|
6230
6230
|
return f && N(C.prototype, f), C;
|
|
6231
6231
|
}
|
|
6232
|
-
function
|
|
6232
|
+
function J(C, f, m) {
|
|
6233
6233
|
return f in C ? Object.defineProperty(C, f, {
|
|
6234
6234
|
value: m,
|
|
6235
6235
|
enumerable: !0,
|
|
@@ -6477,14 +6477,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6477
6477
|
};
|
|
6478
6478
|
};
|
|
6479
6479
|
function Re(C) {
|
|
6480
|
-
var f = C ? g(C) : A, m = f.device, P = f.browser, V = f.engine, Ae = f.os, Ue = f.ua, Xe = Ce(m.type), gn = Xe.isBrowser,
|
|
6480
|
+
var f = C ? g(C) : A, m = f.device, P = f.browser, V = f.engine, Ae = f.os, Ue = f.ua, Xe = Ce(m.type), gn = Xe.isBrowser, za = Xe.isMobile, Ja = Xe.isTablet, No = Xe.isSmartTV, Bo = Xe.isConsole, Fo = Xe.isWearable, Ro = Xe.isEmbedded;
|
|
6481
6481
|
if (gn)
|
|
6482
6482
|
return Ge(gn, P, V, Ae, Ue);
|
|
6483
6483
|
if (No)
|
|
6484
6484
|
return Qe(No, V, Ae, Ue);
|
|
6485
6485
|
if (Bo)
|
|
6486
6486
|
return He(Bo, V, Ae, Ue);
|
|
6487
|
-
if (
|
|
6487
|
+
if (za || Ja)
|
|
6488
6488
|
return je(Xe, m, Ae, Ue);
|
|
6489
6489
|
if (Fo)
|
|
6490
6490
|
return et(Fo, V, Ae, Ue);
|
|
@@ -6527,7 +6527,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6527
6527
|
}, K = function(f) {
|
|
6528
6528
|
var m = f.name;
|
|
6529
6529
|
return m === oe.Android;
|
|
6530
|
-
},
|
|
6530
|
+
}, z = function(f) {
|
|
6531
6531
|
var m = f.name;
|
|
6532
6532
|
return m === oe.Windows;
|
|
6533
6533
|
}, $ = function(f) {
|
|
@@ -6563,7 +6563,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6563
6563
|
}, U = function(f) {
|
|
6564
6564
|
var m = f.name;
|
|
6565
6565
|
return m === Q.Safari || m === Q.MobileSafari;
|
|
6566
|
-
},
|
|
6566
|
+
}, q = function(f) {
|
|
6567
6567
|
var m = f.name;
|
|
6568
6568
|
return m === Q.MobileSafari;
|
|
6569
6569
|
}, ne = function(f) {
|
|
@@ -6596,12 +6596,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6596
6596
|
}, tt = function() {
|
|
6597
6597
|
var f = ye(), m = f && f.userAgent && f.userAgent.toLowerCase();
|
|
6598
6598
|
return typeof m == "string" ? /electron/.test(m) : !1;
|
|
6599
|
-
},
|
|
6599
|
+
}, Je = function(f) {
|
|
6600
6600
|
return typeof f == "string" && f.indexOf("Edg/") !== -1;
|
|
6601
6601
|
}, dt = function() {
|
|
6602
6602
|
var f = ye();
|
|
6603
6603
|
return f && (/iPad|iPhone|iPod/.test(f.platform) || f.platform === "MacIntel" && f.maxTouchPoints > 1) && !window.MSStream;
|
|
6604
|
-
},
|
|
6604
|
+
}, qe = function() {
|
|
6605
6605
|
return Be("iPad");
|
|
6606
6606
|
}, Nt = function() {
|
|
6607
6607
|
return Be("iPhone");
|
|
@@ -6617,16 +6617,16 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6617
6617
|
isConsole: L(m),
|
|
6618
6618
|
isWearable: lt(m),
|
|
6619
6619
|
isEmbedded: X(m),
|
|
6620
|
-
isMobileSafari:
|
|
6620
|
+
isMobileSafari: q(P) || qe(),
|
|
6621
6621
|
isChromium: te(P),
|
|
6622
|
-
isMobile: It(m) ||
|
|
6622
|
+
isMobile: It(m) || qe(),
|
|
6623
6623
|
isMobileOnly: Ee(m),
|
|
6624
|
-
isTablet: St(m) ||
|
|
6624
|
+
isTablet: St(m) || qe(),
|
|
6625
6625
|
isBrowser: ht(m),
|
|
6626
6626
|
isDesktop: ht(m),
|
|
6627
6627
|
isAndroid: K(V),
|
|
6628
6628
|
isWinPhone: fe(V),
|
|
6629
|
-
isIOS: ae(V) ||
|
|
6629
|
+
isIOS: ae(V) || qe(),
|
|
6630
6630
|
isChrome: O(P),
|
|
6631
6631
|
isFirefox: ee(P),
|
|
6632
6632
|
isSafari: U(P),
|
|
@@ -6642,23 +6642,23 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6642
6642
|
engineName: Ne(Ae),
|
|
6643
6643
|
engineVersion: Pe(Ae),
|
|
6644
6644
|
getUA: Zt(Ue),
|
|
6645
|
-
isEdge: de(P) ||
|
|
6645
|
+
isEdge: de(P) || Je(Ue),
|
|
6646
6646
|
isYandex: re(P),
|
|
6647
6647
|
deviceType: _(m),
|
|
6648
6648
|
isIOS13: dt(),
|
|
6649
|
-
isIPad13:
|
|
6649
|
+
isIPad13: qe(),
|
|
6650
6650
|
isIPhone13: Nt(),
|
|
6651
6651
|
isIPod13: Kt(),
|
|
6652
6652
|
isElectron: tt(),
|
|
6653
|
-
isEdgeChromium:
|
|
6654
|
-
isLegacyEdge: de(P) && !
|
|
6655
|
-
isWindows:
|
|
6653
|
+
isEdgeChromium: Je(Ue),
|
|
6654
|
+
isLegacyEdge: de(P) && !Je(Ue),
|
|
6655
|
+
isWindows: z(V),
|
|
6656
6656
|
isMacOs: $(V),
|
|
6657
6657
|
isMIUI: we(P),
|
|
6658
6658
|
isSamsungBrowser: ge(P)
|
|
6659
6659
|
};
|
|
6660
6660
|
}
|
|
6661
|
-
var Le = mt(i), pn = L(i), mn = lt(i), Ks = X(i), Zs =
|
|
6661
|
+
var Le = mt(i), pn = L(i), mn = lt(i), Ks = X(i), Zs = q(a) || qe(), _s = te(a), hn = It(i) || qe(), vo = Ee(i), ko = St(i) || qe(), To = ht(i), $s = ht(i), Co = K(v), Eo = fe(v), xo = ae(v) || qe(), ea = O(a), ta = ee(a), na = U(a), oa = ne(a), So = M(a), sa = D(v), aa = k(v), ra = ce(a), ia = xe(a), ca = Oe(a), la = G(i), da = Z(i), ua = Ne(l), fa = Pe(l), pa = Zt(R), ma = de(a) || Je(R), ha = re(a), ga = _(i), wa = dt(), ba = qe(), ya = Nt(), Aa = Kt(), va = tt(), ka = Je(R), Ta = de(a) && !Je(R), Ca = z(v), Ea = $(v), xa = we(a), Sa = ge(a), Ia = function(f) {
|
|
6662
6662
|
if (!f || typeof f != "string") {
|
|
6663
6663
|
console.error("No valid user agent string was provided");
|
|
6664
6664
|
return;
|
|
@@ -6795,7 +6795,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
6795
6795
|
}
|
|
6796
6796
|
return se.AndroidView = Na, se.BrowserTypes = Q, se.BrowserView = Ba, se.ConsoleView = Ma, se.CustomView = Wa, se.IEView = Fa, se.IOSView = Ra, se.MobileOnlyView = La, se.MobileView = Oa, se.OsTypes = oe, se.SmartTVView = Ua, se.TabletView = Pa, se.WearableView = Ha, se.WinPhoneView = Da, se.browserName = ca, se.browserVersion = ia, se.deviceDetect = Re, se.deviceType = ga, se.engineName = ua, se.engineVersion = fa, se.fullBrowserVersion = ra, se.getSelectorsByUserAgent = Ia, se.getUA = pa, se.isAndroid = Co, se.isBrowser = To, se.isChrome = ea, se.isChromium = _s, se.isConsole = pn, se.isDesktop = $s, se.isEdge = ma, se.isEdgeChromium = ka, se.isElectron = va, se.isEmbedded = Ks, se.isFirefox = ta, se.isIE = So, se.isIOS = xo, se.isIOS13 = wa, se.isIPad13 = ba, se.isIPhone13 = ya, se.isIPod13 = Aa, se.isLegacyEdge = Ta, se.isMIUI = xa, se.isMacOs = Ea, se.isMobile = hn, se.isMobileOnly = vo, se.isMobileSafari = Zs, se.isOpera = oa, se.isSafari = na, se.isSamsungBrowser = Sa, se.isSmartTV = Le, se.isTablet = ko, se.isWearable = mn, se.isWinPhone = Eo, se.isWindows = Ca, se.isYandex = ha, se.mobileModel = da, se.mobileVendor = la, se.osName = aa, se.osVersion = sa, se.parseUserAgent = g, se.setUserAgent = Te, se.useDeviceData = Io, se.useDeviceSelectors = Ya, se.useMobileOrientation = Ga, se.withOrientationChange = Va, se;
|
|
6797
6797
|
}
|
|
6798
|
-
var Wt =
|
|
6798
|
+
var Wt = qm();
|
|
6799
6799
|
const jm = void 0, ns = [
|
|
6800
6800
|
"AIzaSyCcjTkMquc7DNzqQYOXEFj7qoEypnCdUOs",
|
|
6801
6801
|
"AIzaSyDWJj9ufkN-39vkT6_qvnAu9s_3BECbdcM",
|
|
@@ -6806,7 +6806,17 @@ const jm = void 0, ns = [
|
|
|
6806
6806
|
"AIzaSyC0EVYjl81EVo_RwKpDE6jhTbTK-cO1n4U",
|
|
6807
6807
|
"AIzaSyAmHgpfmkBJVM9dUUXQ81ZCJvTjbdbFP54",
|
|
6808
6808
|
"AIzaSyDD2tujUZ7FpgJ4-gn8BNzYkVSrrAc4nC8",
|
|
6809
|
-
"AIzaSyAQkB8-XZj7IpnWnVWJRrFUontxaWcYts4"
|
|
6809
|
+
"AIzaSyAQkB8-XZj7IpnWnVWJRrFUontxaWcYts4",
|
|
6810
|
+
"AIzaSyCuMsh9tdgwnXkA0VCfGEhOJ9m-PpMTLOI",
|
|
6811
|
+
"AIzaSyAEyg3fu64RsyvCoJQPr1ljRxp2tH61mGE",
|
|
6812
|
+
"AIzaSyB1lMSRtZGSMUHBblpz8KtNKrmWmmFIWbk",
|
|
6813
|
+
"AIzaSyDuEnXlwTsmVVUF2oqcUED-X1SeVWEK0tI",
|
|
6814
|
+
"AIzaSyA1urvuv3-QJBno3WdUTMgb_YC3S1Bfd8o",
|
|
6815
|
+
"AIzaSyAHrEi0Lj8QskYDf_jJq6Ntgt0tEMT5dCM",
|
|
6816
|
+
"AIzaSyDOJISQFLeWkJnu0uqjl82j_EkIbGzuwO0",
|
|
6817
|
+
"AIzaSyAopV-1f7330jy9qpMzdIm0rrXEzxhFSHk",
|
|
6818
|
+
"AIzaSyAnz8McdnnPR914ecmW1th-FjBD2Ru_W6Y",
|
|
6819
|
+
"AIzaSyCxuS7oGGrzIWUZ-VizZdEIWFQRa3RR1XU"
|
|
6810
6820
|
], os = {
|
|
6811
6821
|
model: "gemini-2.5-flash",
|
|
6812
6822
|
"model2.0": "gemini-2.5-flash",
|
|
@@ -6918,7 +6928,7 @@ Do not provide any explanation or additional text.`, s = this.getUrl("generateCo
|
|
|
6918
6928
|
}
|
|
6919
6929
|
}
|
|
6920
6930
|
const ss = new Qm();
|
|
6921
|
-
function
|
|
6931
|
+
function Jn(e, t) {
|
|
6922
6932
|
if (!e) return e;
|
|
6923
6933
|
const n = e.toLowerCase().trim();
|
|
6924
6934
|
if (n === "max" || n === "all")
|
|
@@ -6944,7 +6954,7 @@ const Xm = ({
|
|
|
6944
6954
|
updateMessageText: R,
|
|
6945
6955
|
getMessageById: Y,
|
|
6946
6956
|
clearMessagesById: g
|
|
6947
|
-
} = mm(), [A, y] = _e(""), [T, B] = _e(!1), [ke, N] = _e(!0), [H,
|
|
6957
|
+
} = mm(), [A, y] = _e(""), [T, B] = _e(!1), [ke, N] = _e(!0), [H, J] = _e(null), me = Bt(null), he = Bt(null), Se = Bt(null), c = Bt(null), d = Bt(null), p = Bt(!1), E = Bt(ke);
|
|
6948
6958
|
ct(() => {
|
|
6949
6959
|
E.current = ke;
|
|
6950
6960
|
}, [ke]);
|
|
@@ -6988,7 +6998,7 @@ const Xm = ({
|
|
|
6988
6998
|
},
|
|
6989
6999
|
[Q, oe]
|
|
6990
7000
|
), Ce = Ie((L) => {
|
|
6991
|
-
|
|
7001
|
+
J(L), Wt.isDesktop && Se.current?.focus();
|
|
6992
7002
|
}, []), Te = Ie(
|
|
6993
7003
|
async (L, X) => {
|
|
6994
7004
|
le({
|
|
@@ -7060,9 +7070,9 @@ const Xm = ({
|
|
|
7060
7070
|
srcTokenDecimals: Z || 18
|
|
7061
7071
|
});
|
|
7062
7072
|
let K = G || "0";
|
|
7063
|
-
if (L ===
|
|
7073
|
+
if (L === ze)
|
|
7064
7074
|
try {
|
|
7065
|
-
const $ = await
|
|
7075
|
+
const $ = await zn({
|
|
7066
7076
|
chainId: b,
|
|
7067
7077
|
rpcUrl: F
|
|
7068
7078
|
});
|
|
@@ -7080,7 +7090,7 @@ const Xm = ({
|
|
|
7080
7090
|
$
|
|
7081
7091
|
);
|
|
7082
7092
|
}
|
|
7083
|
-
const
|
|
7093
|
+
const z = _.map(
|
|
7084
7094
|
($) => ({
|
|
7085
7095
|
id: `percent-${$}`,
|
|
7086
7096
|
text: `${$}%`,
|
|
@@ -7109,7 +7119,7 @@ const Xm = ({
|
|
|
7109
7119
|
}),
|
|
7110
7120
|
"bot",
|
|
7111
7121
|
void 0,
|
|
7112
|
-
|
|
7122
|
+
z
|
|
7113
7123
|
);
|
|
7114
7124
|
},
|
|
7115
7125
|
[l, b, F, le, r]
|
|
@@ -7119,13 +7129,13 @@ const Xm = ({
|
|
|
7119
7129
|
amount: (parseFloat(X) * (L / 100)).toFixed(6)
|
|
7120
7130
|
};
|
|
7121
7131
|
G !== void 0 && (_.srcTokenAddress = G), Z !== void 0 && (_.srcTokenDecimals = Z), le(_);
|
|
7122
|
-
const K = Q(),
|
|
7132
|
+
const K = Q(), z = bt(
|
|
7123
7133
|
K.amount,
|
|
7124
7134
|
K.srcTokenDecimals || 18
|
|
7125
7135
|
).toString(), $ = await Wn({
|
|
7126
7136
|
chainId: b,
|
|
7127
7137
|
tokenIn: K.srcTokenAddress,
|
|
7128
|
-
tokenInAmount:
|
|
7138
|
+
tokenInAmount: z,
|
|
7129
7139
|
tokenOut: K.descTokenAddress,
|
|
7130
7140
|
tokenOutRecipient: u?.address || "",
|
|
7131
7141
|
slippage: "auto",
|
|
@@ -7136,7 +7146,7 @@ const Xm = ({
|
|
|
7136
7146
|
Me(BigInt(ae.amount || 0), ae.decimals)
|
|
7137
7147
|
).decimalPlaces(6).toFormat(), O = ie(
|
|
7138
7148
|
Me(BigInt(D.amount || 0), D.decimals)
|
|
7139
|
-
).decimalPlaces(6).toFormat(), ee = K.srcTokenAddress ===
|
|
7149
|
+
).decimalPlaces(6).toFormat(), ee = K.srcTokenAddress === ze || K.srcTokenAddress === "";
|
|
7140
7150
|
let te = !1;
|
|
7141
7151
|
if (!ee && u?.address && fe.tx?.to)
|
|
7142
7152
|
try {
|
|
@@ -7148,7 +7158,7 @@ const Xm = ({
|
|
|
7148
7158
|
rpcUrl: F
|
|
7149
7159
|
});
|
|
7150
7160
|
te = ie(ge.toString()).isLessThan(
|
|
7151
|
-
|
|
7161
|
+
z
|
|
7152
7162
|
);
|
|
7153
7163
|
} catch (ge) {
|
|
7154
7164
|
console.warn("Allowance check failed:", ge), te = !0;
|
|
@@ -7173,7 +7183,7 @@ const Xm = ({
|
|
|
7173
7183
|
} catch (ge) {
|
|
7174
7184
|
console.warn("Approve fee estimation failed:", ge);
|
|
7175
7185
|
}
|
|
7176
|
-
const U = de.plus(re),
|
|
7186
|
+
const U = de.plus(re), q = w?.nativeCurrency?.symbol || "native";
|
|
7177
7187
|
let ne = "", M = !1;
|
|
7178
7188
|
if (u?.address && U.isGreaterThan(0))
|
|
7179
7189
|
try {
|
|
@@ -7190,7 +7200,7 @@ const Xm = ({
|
|
|
7190
7200
|
Me(BigInt(U.toFixed(0)), 18)
|
|
7191
7201
|
).decimalPlaces(6).toFormat();
|
|
7192
7202
|
ne = r("swapFeeWarning", {
|
|
7193
|
-
symbol:
|
|
7203
|
+
symbol: q,
|
|
7194
7204
|
balance: ce,
|
|
7195
7205
|
needed: xe
|
|
7196
7206
|
});
|
|
@@ -7303,18 +7313,18 @@ To: ${O} ${D.symbol}
|
|
|
7303
7313
|
}, K = l(a("txProcessing"), "bot");
|
|
7304
7314
|
try {
|
|
7305
7315
|
B(!1);
|
|
7306
|
-
const
|
|
7307
|
-
if (
|
|
7316
|
+
const z = await n(_);
|
|
7317
|
+
if (z.status === "success" && z.transactionHash) {
|
|
7308
7318
|
const $ = w?.blockExplorers?.default?.url, fe = $ ? `
|
|
7309
|
-
[View on Explorer](${$}/tx/${
|
|
7310
|
-
Tx: ${
|
|
7319
|
+
[View on Explorer](${$}/tx/${z.transactionHash})` : `
|
|
7320
|
+
Tx: ${z.transactionHash}`;
|
|
7311
7321
|
R(
|
|
7312
7322
|
K.id,
|
|
7313
7323
|
a("txSubmitted") + fe
|
|
7314
7324
|
);
|
|
7315
7325
|
try {
|
|
7316
7326
|
await nt(2e3), (await Gn({
|
|
7317
|
-
transactionHash:
|
|
7327
|
+
transactionHash: z.transactionHash,
|
|
7318
7328
|
chainId: b || 1,
|
|
7319
7329
|
rpcUrl: F
|
|
7320
7330
|
})).status === "success" ? R(
|
|
@@ -7330,24 +7340,24 @@ Tx: ${J.transactionHash}`;
|
|
|
7330
7340
|
a("txTimeout") + fe
|
|
7331
7341
|
);
|
|
7332
7342
|
}
|
|
7333
|
-
} else if (
|
|
7343
|
+
} else if (z.status === "success")
|
|
7334
7344
|
R(K.id, a("txSuccessfulSwap"));
|
|
7335
7345
|
else {
|
|
7336
|
-
const $ =
|
|
7337
|
-
Error: ${
|
|
7346
|
+
const $ = z.error ? `
|
|
7347
|
+
Error: ${z.error}` : "";
|
|
7338
7348
|
R(
|
|
7339
7349
|
K.id,
|
|
7340
7350
|
a("txFailed") + $
|
|
7341
7351
|
);
|
|
7342
7352
|
}
|
|
7343
|
-
} catch (
|
|
7344
|
-
console.error("Transaction error:",
|
|
7353
|
+
} catch (z) {
|
|
7354
|
+
console.error("Transaction error:", z), R(K.id, a("txFailed"));
|
|
7345
7355
|
}
|
|
7346
7356
|
} else
|
|
7347
7357
|
l(a("txDataNotAvailable"), "bot");
|
|
7348
7358
|
break;
|
|
7349
7359
|
case "approve_for_swap": {
|
|
7350
|
-
const Z = G?.tokenAddress || "", _ = G?.spenderAddress || "", K = G?.tokenSymbol || "token",
|
|
7360
|
+
const Z = G?.tokenAddress || "", _ = G?.spenderAddress || "", K = G?.tokenSymbol || "token", z = G?.tx;
|
|
7351
7361
|
if (!Z || !_ || !n) {
|
|
7352
7362
|
l(a("approvalDataNotAvailable"), "bot");
|
|
7353
7363
|
break;
|
|
@@ -7392,7 +7402,7 @@ Error: ${J.error}` : "";
|
|
|
7392
7402
|
value: a("swapConfirmValue"),
|
|
7393
7403
|
action: "confirm_swap",
|
|
7394
7404
|
fullWidth: !0,
|
|
7395
|
-
extraData: { tx:
|
|
7405
|
+
extraData: { tx: z }
|
|
7396
7406
|
}
|
|
7397
7407
|
];
|
|
7398
7408
|
l(
|
|
@@ -7417,7 +7427,7 @@ Error: ${ae.error}` : "";
|
|
|
7417
7427
|
descTokenAddress: Z,
|
|
7418
7428
|
descTokenDecimals: K
|
|
7419
7429
|
});
|
|
7420
|
-
const
|
|
7430
|
+
const z = Q(), $ = z.srcTokenAddress || "", fe = $ === ze;
|
|
7421
7431
|
try {
|
|
7422
7432
|
const ae = await Ke({
|
|
7423
7433
|
address: u?.address || "",
|
|
@@ -7438,7 +7448,7 @@ Error: ${ae.error}` : "";
|
|
|
7438
7448
|
ee && (k = ee.symbol, O = ee.balance_formatted);
|
|
7439
7449
|
}
|
|
7440
7450
|
if (k && parseFloat(O) > 0) {
|
|
7441
|
-
const ee = [25, 50, 75, 100], te =
|
|
7451
|
+
const ee = [25, 50, 75, 100], te = z.srcTokenDecimals || 18, de = ee.map((re) => ({
|
|
7442
7452
|
id: `percent-${re}`,
|
|
7443
7453
|
text: `${re}%`,
|
|
7444
7454
|
value: r("buttonUsePercent", {
|
|
@@ -7474,11 +7484,11 @@ Error: ${ae.error}` : "";
|
|
|
7474
7484
|
break;
|
|
7475
7485
|
}
|
|
7476
7486
|
case "select_nft_to_send": {
|
|
7477
|
-
const Z = G?.name || "NFT", _ = G?.contractAddress || "", K = G?.tokenId || "",
|
|
7487
|
+
const Z = G?.name || "NFT", _ = G?.contractAddress || "", K = G?.tokenId || "", z = G?.tokenStandard || "ERC721", $ = G?.amount || "1", fe = G?.image || "", ae = {
|
|
7478
7488
|
contract_address: _,
|
|
7479
7489
|
token_id: K,
|
|
7480
7490
|
to_address: "",
|
|
7481
|
-
token_standard:
|
|
7491
|
+
token_standard: z,
|
|
7482
7492
|
amount: "1",
|
|
7483
7493
|
maxAmount: $,
|
|
7484
7494
|
nft_name: Z
|
|
@@ -7486,7 +7496,7 @@ Error: ${ae.error}` : "";
|
|
|
7486
7496
|
l(
|
|
7487
7497
|
r("nftSendReview", {
|
|
7488
7498
|
name: Z,
|
|
7489
|
-
standard:
|
|
7499
|
+
standard: z,
|
|
7490
7500
|
tokenId: K
|
|
7491
7501
|
}),
|
|
7492
7502
|
"bot",
|
|
@@ -7501,7 +7511,7 @@ Error: ${ae.error}` : "";
|
|
|
7501
7511
|
image: fe || void 0,
|
|
7502
7512
|
tokenId: K,
|
|
7503
7513
|
contractAddress: _,
|
|
7504
|
-
tokenStandard:
|
|
7514
|
+
tokenStandard: z
|
|
7505
7515
|
}
|
|
7506
7516
|
}
|
|
7507
7517
|
);
|
|
@@ -7547,22 +7557,22 @@ Error: ${ae.error}` : "";
|
|
|
7547
7557
|
]);
|
|
7548
7558
|
let Z = [];
|
|
7549
7559
|
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(
|
|
7550
|
-
(
|
|
7551
|
-
(ae) => ae.address.toLowerCase() ===
|
|
7560
|
+
(z, $, fe) => $ === fe.findIndex(
|
|
7561
|
+
(ae) => ae.address.toLowerCase() === z.address.toLowerCase()
|
|
7552
7562
|
)
|
|
7553
7563
|
);
|
|
7554
|
-
const _ = Z.map((
|
|
7555
|
-
id:
|
|
7556
|
-
text:
|
|
7564
|
+
const _ = Z.map((z) => ({
|
|
7565
|
+
id: z?.symbol,
|
|
7566
|
+
text: z?.symbol,
|
|
7557
7567
|
value: r("buttonBuyToken", {
|
|
7558
|
-
name:
|
|
7559
|
-
symbol:
|
|
7568
|
+
name: z.name,
|
|
7569
|
+
symbol: z?.symbol || ""
|
|
7560
7570
|
}),
|
|
7561
7571
|
action: "click_buy_item_token_button",
|
|
7562
7572
|
extraData: {
|
|
7563
|
-
tokenAddress:
|
|
7564
|
-
symbol:
|
|
7565
|
-
decimals:
|
|
7573
|
+
tokenAddress: z?.address || "",
|
|
7574
|
+
symbol: z?.symbol || "",
|
|
7575
|
+
decimals: z?.decimals || 18
|
|
7566
7576
|
}
|
|
7567
7577
|
}));
|
|
7568
7578
|
await nt(1e3), B(!1), l(
|
|
@@ -7570,10 +7580,10 @@ Error: ${ae.error}` : "";
|
|
|
7570
7580
|
"bot"
|
|
7571
7581
|
);
|
|
7572
7582
|
const K = Z.map(
|
|
7573
|
-
(
|
|
7583
|
+
(z, $) => `${$ + 1}. ${z.name} (${z?.auditGoplus?.token_symbol || z.symbol || "Unknown"})
|
|
7574
7584
|
$${ie(
|
|
7575
|
-
|
|
7576
|
-
).decimalPlaces(4).toFormat()} (${
|
|
7585
|
+
z?.price || 0
|
|
7586
|
+
).decimalPlaces(4).toFormat()} (${z.price_change_percentage_24h || z.priceChange}%)
|
|
7577
7587
|
|
|
7578
7588
|
---
|
|
7579
7589
|
`
|
|
@@ -7608,7 +7618,7 @@ $${ie(
|
|
|
7608
7618
|
});
|
|
7609
7619
|
if (L?.success && L?.data?.result && L.data.result.length > 0) {
|
|
7610
7620
|
const X = L.data.result, G = X.map((_) => {
|
|
7611
|
-
const K = _.normalized_metadata?.name || _.name || `#${_.token_id}`,
|
|
7621
|
+
const K = _.normalized_metadata?.name || _.name || `#${_.token_id}`, z = _.normalized_metadata?.image || _.media?.original_media_url || "";
|
|
7612
7622
|
return {
|
|
7613
7623
|
id: `${_.token_address}-${_.token_id}`,
|
|
7614
7624
|
text: `${K} (${_.symbol || _.contract_type}) - ${_.token_id}`,
|
|
@@ -7622,13 +7632,13 @@ $${ie(
|
|
|
7622
7632
|
name: K,
|
|
7623
7633
|
symbol: _.symbol,
|
|
7624
7634
|
amount: _.amount,
|
|
7625
|
-
image:
|
|
7635
|
+
image: z
|
|
7626
7636
|
}
|
|
7627
7637
|
};
|
|
7628
7638
|
}), Z = X.map((_, K) => {
|
|
7629
|
-
const
|
|
7639
|
+
const z = _.normalized_metadata?.name || _.name || `#${_.token_id}`, $ = _.contract_type === "ERC1155" ? ` (x${_.amount})` : "", fe = _.normalized_metadata?.image || _.media?.original_media_url || "", ae = fe ? `
|
|
7630
7640
|
` : "🖼️ ";
|
|
7631
|
-
return `${K + 1}. ${ae}**${
|
|
7641
|
+
return `${K + 1}. ${ae}**${z}**${$}
|
|
7632
7642
|
${_.symbol || _.contract_type} | Token ID: ${_.token_id}`;
|
|
7633
7643
|
}).join(`
|
|
7634
7644
|
|
|
@@ -7680,9 +7690,9 @@ $${ie(
|
|
|
7680
7690
|
}
|
|
7681
7691
|
]
|
|
7682
7692
|
), Z = X.map((_, K) => {
|
|
7683
|
-
const
|
|
7693
|
+
const z = _.usd_value !== void 0 ? ` ≈ $${ie(_.usd_value).decimalPlaces(2).toFormat()}` : "";
|
|
7684
7694
|
return `${K + 1}. **${_.name}** (${_.symbol})
|
|
7685
|
-
Balance: ${_.balance_formatted}${
|
|
7695
|
+
Balance: ${_.balance_formatted}${z}`;
|
|
7686
7696
|
}).join(`
|
|
7687
7697
|
|
|
7688
7698
|
`);
|
|
@@ -7744,7 +7754,7 @@ $${ie(
|
|
|
7744
7754
|
"user",
|
|
7745
7755
|
H?.id
|
|
7746
7756
|
);
|
|
7747
|
-
y(""),
|
|
7757
|
+
y(""), J(null), B(!0), N(!1), B(!0);
|
|
7748
7758
|
try {
|
|
7749
7759
|
let G, Z;
|
|
7750
7760
|
const _ = i.slice(-20);
|
|
@@ -7767,17 +7777,17 @@ $${ie(
|
|
|
7767
7777
|
---
|
|
7768
7778
|
`;
|
|
7769
7779
|
}
|
|
7770
|
-
let
|
|
7771
|
-
L && (
|
|
7780
|
+
let z = A?.trim();
|
|
7781
|
+
L && (z = `[Replying to ${L.sender === "user" ? "my previous" : "your"} message: "${L.text}"]
|
|
7772
7782
|
|
|
7773
|
-
${
|
|
7783
|
+
${z}`);
|
|
7774
7784
|
try {
|
|
7775
7785
|
if ((await ss.checkTypeQuestion(
|
|
7776
|
-
|
|
7786
|
+
z,
|
|
7777
7787
|
K
|
|
7778
7788
|
))?.startsWith("no")) {
|
|
7779
7789
|
const D = await ss.generateContent(
|
|
7780
|
-
|
|
7790
|
+
z,
|
|
7781
7791
|
K
|
|
7782
7792
|
);
|
|
7783
7793
|
let k = null;
|
|
@@ -7833,7 +7843,7 @@ ${J}`);
|
|
|
7833
7843
|
walletTokens: G,
|
|
7834
7844
|
walletNfts: Z
|
|
7835
7845
|
}), fe = await Am({
|
|
7836
|
-
prompt:
|
|
7846
|
+
prompt: z,
|
|
7837
7847
|
model: "gpt-4.1-mini",
|
|
7838
7848
|
stream: !1,
|
|
7839
7849
|
systemPrompt: $ + K
|
|
@@ -7851,7 +7861,7 @@ ${J}`);
|
|
|
7851
7861
|
if (D.action === "buy_token") {
|
|
7852
7862
|
const k = D.parameters?.token_symbol || "";
|
|
7853
7863
|
let O = D.parameters?.contract_address || "", ee = 18;
|
|
7854
|
-
if (O.toLowerCase() === "native" && (O =
|
|
7864
|
+
if (O.toLowerCase() === "native" && (O = ze), O && O !== ze)
|
|
7855
7865
|
try {
|
|
7856
7866
|
const te = await st.getTokensDetails(
|
|
7857
7867
|
[O],
|
|
@@ -7882,11 +7892,11 @@ ${J}`);
|
|
|
7882
7892
|
de,
|
|
7883
7893
|
x
|
|
7884
7894
|
)
|
|
7885
|
-
]),
|
|
7886
|
-
re.status === "fulfilled" && re.value?.data &&
|
|
7887
|
-
const ne =
|
|
7895
|
+
]), q = [];
|
|
7896
|
+
re.status === "fulfilled" && re.value?.data && q.push(...re.value.data), U.status === "fulfilled" && U.value?.data && q.push(...U.value.data);
|
|
7897
|
+
const ne = q.find(
|
|
7888
7898
|
(M) => M.address?.toLowerCase() === O.toLowerCase()
|
|
7889
|
-
) ||
|
|
7899
|
+
) || q.find(
|
|
7890
7900
|
(M) => M.symbol?.toUpperCase() === k.toUpperCase()
|
|
7891
7901
|
);
|
|
7892
7902
|
ne && (O = ne.address, ee = ne.decimals || 18);
|
|
@@ -7905,16 +7915,16 @@ ${J}`);
|
|
|
7905
7915
|
), await Ge());
|
|
7906
7916
|
} else if (D.action === "swap_token") {
|
|
7907
7917
|
const k = { ...D.parameters || {} }, O = k.token_in === "native" || k.token_in_symbol?.toUpperCase() === w?.nativeCurrency?.symbol?.toUpperCase(), ee = k.token_out === "native" || k.token_out_symbol?.toUpperCase() === w?.nativeCurrency?.symbol?.toUpperCase();
|
|
7908
|
-
if (ee && (k.token_out =
|
|
7918
|
+
if (ee && (k.token_out = ze), !O && (k.token_in || k.token_in_symbol) && u?.address)
|
|
7909
7919
|
try {
|
|
7910
7920
|
const U = await Ke({
|
|
7911
7921
|
address: u.address,
|
|
7912
7922
|
chain: h
|
|
7913
7923
|
});
|
|
7914
7924
|
if (U?.success && U?.data?.result) {
|
|
7915
|
-
const
|
|
7925
|
+
const q = U.data.result, ne = k.token_in ? q.find(
|
|
7916
7926
|
(M) => M.token_address.toLowerCase() === k.token_in.toLowerCase()
|
|
7917
|
-
) :
|
|
7927
|
+
) : q.find(
|
|
7918
7928
|
(M) => M.symbol.toUpperCase() === k.token_in_symbol.toUpperCase()
|
|
7919
7929
|
);
|
|
7920
7930
|
ne && (k.token_in = ne.token_address, k.token_in_decimals = String(ne.decimals));
|
|
@@ -7929,9 +7939,9 @@ ${J}`);
|
|
|
7929
7939
|
chain: h
|
|
7930
7940
|
});
|
|
7931
7941
|
if (U?.success && U?.data?.result) {
|
|
7932
|
-
const
|
|
7942
|
+
const q = U.data.result, ne = k.token_out ? q.find(
|
|
7933
7943
|
(M) => M.token_address.toLowerCase() === k.token_out.toLowerCase()
|
|
7934
|
-
) :
|
|
7944
|
+
) : q.find(
|
|
7935
7945
|
(M) => M.symbol.toUpperCase() === k.token_out_symbol.toUpperCase()
|
|
7936
7946
|
);
|
|
7937
7947
|
ne && (k.token_out = ne.token_address, k.token_out_decimals = String(ne.decimals));
|
|
@@ -7949,7 +7959,7 @@ ${J}`);
|
|
|
7949
7959
|
try {
|
|
7950
7960
|
const U = [];
|
|
7951
7961
|
k.token_out && U.push(k.token_out), k.token_in && !O && U.push(k.token_in);
|
|
7952
|
-
let
|
|
7962
|
+
let q = 18, ne = 18;
|
|
7953
7963
|
if (U.length > 0)
|
|
7954
7964
|
try {
|
|
7955
7965
|
const ce = await st.getTokensDetails(
|
|
@@ -7958,7 +7968,7 @@ ${J}`);
|
|
|
7958
7968
|
);
|
|
7959
7969
|
if (ce?.data)
|
|
7960
7970
|
for (const xe of ce.data)
|
|
7961
|
-
!O && xe.address.toLowerCase() === k.token_in?.toLowerCase() && (
|
|
7971
|
+
!O && xe.address.toLowerCase() === k.token_in?.toLowerCase() && (q = xe.decimals || 18), xe.address.toLowerCase() === k.token_out?.toLowerCase() && (ne = xe.decimals || 18);
|
|
7962
7972
|
} catch (ce) {
|
|
7963
7973
|
console.warn(
|
|
7964
7974
|
"getTokensDetails failed, using default decimals:",
|
|
@@ -7975,16 +7985,16 @@ ${J}`);
|
|
|
7975
7985
|
const xe = ce.data.result;
|
|
7976
7986
|
if (O) {
|
|
7977
7987
|
const Oe = xe.find(
|
|
7978
|
-
(
|
|
7988
|
+
(Je) => Je.native_token
|
|
7979
7989
|
);
|
|
7980
7990
|
let Ne = Oe?.balance_formatted || "0";
|
|
7981
7991
|
try {
|
|
7982
|
-
const
|
|
7992
|
+
const Je = await zn({
|
|
7983
7993
|
chainId: b,
|
|
7984
7994
|
rpcUrl: F
|
|
7985
7995
|
});
|
|
7986
|
-
if (
|
|
7987
|
-
const dt =
|
|
7996
|
+
if (Je.isGreaterThan(0)) {
|
|
7997
|
+
const dt = Je.times(1e6), Nt = new ie(
|
|
7988
7998
|
Oe?.balance || "0"
|
|
7989
7999
|
).minus(dt);
|
|
7990
8000
|
Nt.isGreaterThan(0) ? Ne = ie(
|
|
@@ -7994,13 +8004,13 @@ ${J}`);
|
|
|
7994
8004
|
)
|
|
7995
8005
|
).toFixed() : Ne = "0";
|
|
7996
8006
|
}
|
|
7997
|
-
} catch (
|
|
8007
|
+
} catch (Je) {
|
|
7998
8008
|
console.warn(
|
|
7999
8009
|
"getGasPrice for swap native fee deduction failed:",
|
|
8000
|
-
|
|
8010
|
+
Je
|
|
8001
8011
|
);
|
|
8002
8012
|
}
|
|
8003
|
-
k.amount =
|
|
8013
|
+
k.amount = Jn(
|
|
8004
8014
|
k.amount,
|
|
8005
8015
|
Ne
|
|
8006
8016
|
);
|
|
@@ -8043,7 +8053,7 @@ ${J}`);
|
|
|
8043
8053
|
), B(!1);
|
|
8044
8054
|
return;
|
|
8045
8055
|
}
|
|
8046
|
-
k.amount =
|
|
8056
|
+
k.amount = Jn(
|
|
8047
8057
|
k.amount,
|
|
8048
8058
|
Oe.balance_formatted || "0"
|
|
8049
8059
|
);
|
|
@@ -8068,17 +8078,17 @@ ${J}`);
|
|
|
8068
8078
|
} catch (ce) {
|
|
8069
8079
|
console.warn("Balance check failed:", ce);
|
|
8070
8080
|
}
|
|
8071
|
-
const M = O ?
|
|
8081
|
+
const M = O ? ze : k.token_in;
|
|
8072
8082
|
le({
|
|
8073
8083
|
srcTokenAddress: M,
|
|
8074
8084
|
descTokenAddress: k.token_out,
|
|
8075
8085
|
amount: k.amount,
|
|
8076
|
-
srcTokenDecimals:
|
|
8086
|
+
srcTokenDecimals: q,
|
|
8077
8087
|
descTokenDecimals: ne
|
|
8078
8088
|
});
|
|
8079
8089
|
const we = bt(
|
|
8080
8090
|
k.amount,
|
|
8081
|
-
|
|
8091
|
+
q
|
|
8082
8092
|
).toString(), ge = await Wn({
|
|
8083
8093
|
chainId: b,
|
|
8084
8094
|
tokenIn: M,
|
|
@@ -8110,7 +8120,7 @@ ${J}`);
|
|
|
8110
8120
|
} catch (Le) {
|
|
8111
8121
|
console.warn("Allowance check failed (CASE 1):", Le), tt = !0;
|
|
8112
8122
|
}
|
|
8113
|
-
const
|
|
8123
|
+
const Je = ce.estimatedTransactionFee?.total ? ie(ce.estimatedTransactionFee.total) : ie(0);
|
|
8114
8124
|
let dt = ie(0);
|
|
8115
8125
|
if (tt && u?.address)
|
|
8116
8126
|
try {
|
|
@@ -8130,21 +8140,21 @@ ${J}`);
|
|
|
8130
8140
|
} catch (Le) {
|
|
8131
8141
|
console.warn("Approve fee estimation failed:", Le);
|
|
8132
8142
|
}
|
|
8133
|
-
const
|
|
8143
|
+
const qe = Je.plus(dt), Nt = w?.nativeCurrency?.symbol || "native";
|
|
8134
8144
|
let Kt = "", Zt = !1;
|
|
8135
|
-
if (u?.address &&
|
|
8145
|
+
if (u?.address && qe.isGreaterThan(0))
|
|
8136
8146
|
try {
|
|
8137
8147
|
const Le = await Cn({
|
|
8138
8148
|
address: u.address,
|
|
8139
8149
|
chainId: b,
|
|
8140
8150
|
rpcUrl: F
|
|
8141
8151
|
});
|
|
8142
|
-
if (Le.isLessThan(
|
|
8152
|
+
if (Le.isLessThan(qe)) {
|
|
8143
8153
|
Zt = !0;
|
|
8144
8154
|
const pn = ie(
|
|
8145
8155
|
Me(BigInt(Le.toFixed(0)), 18)
|
|
8146
8156
|
).decimalPlaces(6).toFormat(), mn = ie(
|
|
8147
|
-
Me(BigInt(
|
|
8157
|
+
Me(BigInt(qe.toFixed(0)), 18)
|
|
8148
8158
|
).decimalPlaces(6).toFormat();
|
|
8149
8159
|
Kt = r("swapFeeWarning", {
|
|
8150
8160
|
symbol: Nt,
|
|
@@ -8217,7 +8227,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8217
8227
|
console.error("Swap estimation error:", U), l(a("swapEstimationFailed"), "bot");
|
|
8218
8228
|
}
|
|
8219
8229
|
} else if (te && de && !re) {
|
|
8220
|
-
let U = O ? 18 : parseInt(k.token_in_decimals || "18", 10),
|
|
8230
|
+
let U = O ? 18 : parseInt(k.token_in_decimals || "18", 10), q = parseInt(
|
|
8221
8231
|
k.token_out_decimals || "18",
|
|
8222
8232
|
10
|
|
8223
8233
|
);
|
|
@@ -8230,7 +8240,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8230
8240
|
);
|
|
8231
8241
|
if (M?.data)
|
|
8232
8242
|
for (const we of M.data)
|
|
8233
|
-
!O && we.address.toLowerCase() === k.token_in?.toLowerCase() && (U = we.decimals || U), we.address.toLowerCase() === k.token_out?.toLowerCase() && (
|
|
8243
|
+
!O && we.address.toLowerCase() === k.token_in?.toLowerCase() && (U = we.decimals || U), we.address.toLowerCase() === k.token_out?.toLowerCase() && (q = we.decimals || q);
|
|
8234
8244
|
} catch (M) {
|
|
8235
8245
|
console.warn(
|
|
8236
8246
|
"getTokensDetails failed in CASE 2, using fallback decimals:",
|
|
@@ -8239,7 +8249,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8239
8249
|
}
|
|
8240
8250
|
if (le({
|
|
8241
8251
|
descTokenAddress: k.token_out,
|
|
8242
|
-
descTokenDecimals:
|
|
8252
|
+
descTokenDecimals: q
|
|
8243
8253
|
}), O)
|
|
8244
8254
|
try {
|
|
8245
8255
|
const M = await Ke({
|
|
@@ -8252,7 +8262,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8252
8262
|
), ce = w?.nativeCurrency?.symbol || "ETH";
|
|
8253
8263
|
let xe = ge?.balance_formatted || "0";
|
|
8254
8264
|
try {
|
|
8255
|
-
const Pe = await
|
|
8265
|
+
const Pe = await zn({
|
|
8256
8266
|
chainId: b,
|
|
8257
8267
|
rpcUrl: F
|
|
8258
8268
|
});
|
|
@@ -8274,7 +8284,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8274
8284
|
);
|
|
8275
8285
|
}
|
|
8276
8286
|
le({
|
|
8277
|
-
srcTokenAddress:
|
|
8287
|
+
srcTokenAddress: ze,
|
|
8278
8288
|
srcTokenDecimals: U
|
|
8279
8289
|
});
|
|
8280
8290
|
const Ne = [25, 50, 75, 100].map((Pe) => ({
|
|
@@ -8287,7 +8297,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8287
8297
|
action: "select_percent",
|
|
8288
8298
|
extraData: {
|
|
8289
8299
|
percent: Pe,
|
|
8290
|
-
tokenAddress:
|
|
8300
|
+
tokenAddress: ze,
|
|
8291
8301
|
tokenSymbol: ce,
|
|
8292
8302
|
tokenDecimals: U,
|
|
8293
8303
|
tokenBalance: xe
|
|
@@ -8372,15 +8382,15 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8372
8382
|
);
|
|
8373
8383
|
if (k.token_out)
|
|
8374
8384
|
try {
|
|
8375
|
-
const
|
|
8385
|
+
const q = await st.getTokensDetails(
|
|
8376
8386
|
[k.token_out],
|
|
8377
8387
|
x
|
|
8378
8388
|
);
|
|
8379
|
-
|
|
8380
|
-
} catch (
|
|
8389
|
+
q?.data?.[0] && (U = q.data[0].decimals || U);
|
|
8390
|
+
} catch (q) {
|
|
8381
8391
|
console.warn(
|
|
8382
8392
|
"getTokensDetails failed in CASE 3, using fallback:",
|
|
8383
|
-
|
|
8393
|
+
q
|
|
8384
8394
|
);
|
|
8385
8395
|
}
|
|
8386
8396
|
await Te(
|
|
@@ -8391,19 +8401,19 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8391
8401
|
let U = O ? 18 : parseInt(k.token_in_decimals || "18", 10);
|
|
8392
8402
|
if (k.token_in && !O)
|
|
8393
8403
|
try {
|
|
8394
|
-
const
|
|
8404
|
+
const q = await st.getTokensDetails(
|
|
8395
8405
|
[k.token_in],
|
|
8396
8406
|
x
|
|
8397
8407
|
);
|
|
8398
|
-
|
|
8399
|
-
} catch (
|
|
8408
|
+
q?.data?.[0] && (U = q.data[0].decimals || U);
|
|
8409
|
+
} catch (q) {
|
|
8400
8410
|
console.warn(
|
|
8401
8411
|
"getTokensDetails failed in CASE 4, using fallback:",
|
|
8402
|
-
|
|
8412
|
+
q
|
|
8403
8413
|
);
|
|
8404
8414
|
}
|
|
8405
8415
|
le(O ? {
|
|
8406
|
-
srcTokenAddress:
|
|
8416
|
+
srcTokenAddress: ze,
|
|
8407
8417
|
srcTokenDecimals: 18
|
|
8408
8418
|
} : {
|
|
8409
8419
|
srcTokenAddress: k.token_in,
|
|
@@ -8417,9 +8427,9 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8417
8427
|
);
|
|
8418
8428
|
try {
|
|
8419
8429
|
B(!0);
|
|
8420
|
-
const
|
|
8430
|
+
const q = w?.tokenTrendingDefault || [], [ne, M] = await Promise.allSettled([
|
|
8421
8431
|
st.getTopGainers(x, "24h", 5),
|
|
8422
|
-
st.getTokensDetails(
|
|
8432
|
+
st.getTokensDetails(q, x)
|
|
8423
8433
|
]);
|
|
8424
8434
|
let we = [];
|
|
8425
8435
|
ne.status === "fulfilled" && ne.value?.data && (we = [...ne.value.data]), M.status === "fulfilled" && M.value?.data && (we = [...M.value.data, ...we]), we = we.filter(
|
|
@@ -8449,8 +8459,8 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8449
8459
|
void 0,
|
|
8450
8460
|
ge
|
|
8451
8461
|
);
|
|
8452
|
-
} catch (
|
|
8453
|
-
console.error("Error fetching trending tokens for swap:",
|
|
8462
|
+
} catch (q) {
|
|
8463
|
+
console.error("Error fetching trending tokens for swap:", q), l(a("couldNotLoadTokenList"), "bot");
|
|
8454
8464
|
} finally {
|
|
8455
8465
|
B(!1);
|
|
8456
8466
|
}
|
|
@@ -8556,11 +8566,11 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8556
8566
|
});
|
|
8557
8567
|
if (k?.success && k?.data?.result) {
|
|
8558
8568
|
const O = k.data.result, ee = (D.parameters?.nft_name || "").toLowerCase(), te = D.parameters?.token_id || "", de = O.find((re) => {
|
|
8559
|
-
const U = (re.normalized_metadata?.name || re.name || "").toLowerCase(),
|
|
8569
|
+
const U = (re.normalized_metadata?.name || re.name || "").toLowerCase(), q = (re.name || "").toLowerCase(), ne = ee && (U.includes(ee) || q.includes(ee)), M = te && re.token_id === te;
|
|
8560
8570
|
return ee && te ? ne && M : ee ? ne : M;
|
|
8561
8571
|
});
|
|
8562
8572
|
if (de) {
|
|
8563
|
-
const re = de.normalized_metadata?.name || de.name || `#${de.token_id}`, U = de.normalized_metadata?.image || de.media?.original_media_url || "",
|
|
8573
|
+
const re = de.normalized_metadata?.name || de.name || `#${de.token_id}`, U = de.normalized_metadata?.image || de.media?.original_media_url || "", q = {
|
|
8564
8574
|
contract_address: de.token_address,
|
|
8565
8575
|
token_id: de.token_id,
|
|
8566
8576
|
to_address: D.parameters?.to_address || "",
|
|
@@ -8580,7 +8590,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8580
8590
|
void 0,
|
|
8581
8591
|
{
|
|
8582
8592
|
action: "send_nft",
|
|
8583
|
-
parameters:
|
|
8593
|
+
parameters: q,
|
|
8584
8594
|
status: "pending",
|
|
8585
8595
|
nftInfo: {
|
|
8586
8596
|
name: re,
|
|
@@ -8614,12 +8624,12 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8614
8624
|
const de = ["send_token", "approve_token"].includes(D.action) && (O.contract_address || O.token_symbol), re = D.action === "send_native", U = D.action === "send_nft" && O.contract_address;
|
|
8615
8625
|
if (de && u?.address)
|
|
8616
8626
|
try {
|
|
8617
|
-
const
|
|
8627
|
+
const q = await Ke({
|
|
8618
8628
|
address: u.address,
|
|
8619
8629
|
chain: h
|
|
8620
8630
|
});
|
|
8621
|
-
if (
|
|
8622
|
-
const ne =
|
|
8631
|
+
if (q?.success && q?.data?.result) {
|
|
8632
|
+
const ne = q.data.result, M = O.contract_address ? ne.find(
|
|
8623
8633
|
(we) => we.token_address.toLowerCase() === O.contract_address.toLowerCase()
|
|
8624
8634
|
) : ne.find(
|
|
8625
8635
|
(we) => we.symbol.toUpperCase() === O.token_symbol.toUpperCase()
|
|
@@ -8640,17 +8650,17 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8640
8650
|
contractAddress: M.token_address
|
|
8641
8651
|
});
|
|
8642
8652
|
}
|
|
8643
|
-
} catch (
|
|
8644
|
-
console.warn("Token enrichment failed:",
|
|
8653
|
+
} catch (q) {
|
|
8654
|
+
console.warn("Token enrichment failed:", q);
|
|
8645
8655
|
}
|
|
8646
8656
|
if (de && !ee && O.contract_address)
|
|
8647
8657
|
try {
|
|
8648
|
-
const
|
|
8658
|
+
const q = await $o({
|
|
8649
8659
|
address: O.contract_address,
|
|
8650
8660
|
chain: h
|
|
8651
8661
|
});
|
|
8652
|
-
if (
|
|
8653
|
-
const ne =
|
|
8662
|
+
if (q?.success && q?.data) {
|
|
8663
|
+
const ne = q.data;
|
|
8654
8664
|
ee = {
|
|
8655
8665
|
symbol: ne.symbol,
|
|
8656
8666
|
name: ne.name,
|
|
@@ -8665,17 +8675,17 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8665
8675
|
decimals: String(ne.decimals)
|
|
8666
8676
|
};
|
|
8667
8677
|
}
|
|
8668
|
-
} catch (
|
|
8669
|
-
console.warn("Token metadata fallback failed:",
|
|
8678
|
+
} catch (q) {
|
|
8679
|
+
console.warn("Token metadata fallback failed:", q);
|
|
8670
8680
|
}
|
|
8671
8681
|
if (re && u?.address)
|
|
8672
8682
|
try {
|
|
8673
|
-
const
|
|
8683
|
+
const q = await Ke({
|
|
8674
8684
|
address: u.address,
|
|
8675
8685
|
chain: h
|
|
8676
8686
|
});
|
|
8677
|
-
if (
|
|
8678
|
-
const M =
|
|
8687
|
+
if (q?.success && q?.data?.result) {
|
|
8688
|
+
const M = q.data.result.find(
|
|
8679
8689
|
(we) => we.native_token
|
|
8680
8690
|
);
|
|
8681
8691
|
if (M) {
|
|
@@ -8715,11 +8725,11 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8715
8725
|
usdPrice: M.usd_price,
|
|
8716
8726
|
decimals: M.decimals,
|
|
8717
8727
|
logo: M.logo || M.thumbnail,
|
|
8718
|
-
contractAddress:
|
|
8728
|
+
contractAddress: ze
|
|
8719
8729
|
};
|
|
8720
8730
|
} else {
|
|
8721
8731
|
const we = await $o({
|
|
8722
|
-
address:
|
|
8732
|
+
address: ze,
|
|
8723
8733
|
chain: h
|
|
8724
8734
|
});
|
|
8725
8735
|
if (we?.success && we?.data) {
|
|
@@ -8733,22 +8743,22 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8733
8743
|
usdPrice: ge.usd_price,
|
|
8734
8744
|
decimals: ge.decimals,
|
|
8735
8745
|
logo: ge.logo || ge.thumbnail,
|
|
8736
|
-
contractAddress:
|
|
8746
|
+
contractAddress: ze
|
|
8737
8747
|
};
|
|
8738
8748
|
}
|
|
8739
8749
|
}
|
|
8740
8750
|
}
|
|
8741
|
-
} catch (
|
|
8742
|
-
console.warn("Native token balance fetch failed:",
|
|
8751
|
+
} catch (q) {
|
|
8752
|
+
console.warn("Native token balance fetch failed:", q);
|
|
8743
8753
|
}
|
|
8744
8754
|
if (U) {
|
|
8745
8755
|
try {
|
|
8746
|
-
const
|
|
8756
|
+
const q = await vm({
|
|
8747
8757
|
address: O.contract_address,
|
|
8748
8758
|
chain: h
|
|
8749
8759
|
});
|
|
8750
|
-
if (
|
|
8751
|
-
const ne =
|
|
8760
|
+
if (q?.success && q?.data) {
|
|
8761
|
+
const ne = q.data;
|
|
8752
8762
|
ne.contract_type && (O = {
|
|
8753
8763
|
...O,
|
|
8754
8764
|
token_standard: ne.contract_type
|
|
@@ -8757,19 +8767,19 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8757
8767
|
nft_name: ne.name
|
|
8758
8768
|
});
|
|
8759
8769
|
}
|
|
8760
|
-
} catch (
|
|
8761
|
-
console.warn("NFT contract metadata fetch failed:",
|
|
8770
|
+
} catch (q) {
|
|
8771
|
+
console.warn("NFT contract metadata fetch failed:", q);
|
|
8762
8772
|
}
|
|
8763
8773
|
if (u?.address)
|
|
8764
8774
|
try {
|
|
8765
|
-
const
|
|
8775
|
+
const q = await kn({
|
|
8766
8776
|
address: u.address,
|
|
8767
8777
|
chain: h,
|
|
8768
8778
|
limit: 100,
|
|
8769
8779
|
exclude_spam: !1
|
|
8770
8780
|
});
|
|
8771
|
-
if (
|
|
8772
|
-
const ne =
|
|
8781
|
+
if (q?.success && q?.data?.result) {
|
|
8782
|
+
const ne = q.data.result.find(
|
|
8773
8783
|
(M) => M.token_address.toLowerCase() === O.contract_address.toLowerCase() && M.token_id === O.token_id
|
|
8774
8784
|
);
|
|
8775
8785
|
if (ne) {
|
|
@@ -8788,17 +8798,17 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8788
8798
|
};
|
|
8789
8799
|
}
|
|
8790
8800
|
}
|
|
8791
|
-
} catch (
|
|
8792
|
-
console.warn("NFT ownership lookup failed:",
|
|
8801
|
+
} catch (q) {
|
|
8802
|
+
console.warn("NFT ownership lookup failed:", q);
|
|
8793
8803
|
}
|
|
8794
8804
|
}
|
|
8795
|
-
if (O.amount && ee?.balanceFormatted && (D.action === "send_token" || D.action === "send_native") && (O.amount =
|
|
8805
|
+
if (O.amount && ee?.balanceFormatted && (D.action === "send_token" || D.action === "send_native") && (O.amount = Jn(
|
|
8796
8806
|
O.amount,
|
|
8797
8807
|
ee.balanceFormatted
|
|
8798
8808
|
)), k) {
|
|
8799
|
-
const
|
|
8809
|
+
const q = D.message || "Please review and complete the form below.";
|
|
8800
8810
|
l(
|
|
8801
|
-
|
|
8811
|
+
q,
|
|
8802
8812
|
"bot",
|
|
8803
8813
|
X.id,
|
|
8804
8814
|
void 0,
|
|
@@ -8881,17 +8891,17 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8881
8891
|
try {
|
|
8882
8892
|
if (N(!1), v(G, "submitted"), L === "swap_token") {
|
|
8883
8893
|
let Z = 18;
|
|
8884
|
-
if (X.token_in && X.token_in !==
|
|
8894
|
+
if (X.token_in && X.token_in !== ze)
|
|
8885
8895
|
try {
|
|
8886
|
-
const
|
|
8896
|
+
const z = await st.getTokensDetails(
|
|
8887
8897
|
[X.token_in],
|
|
8888
8898
|
x
|
|
8889
8899
|
);
|
|
8890
|
-
|
|
8891
|
-
} catch (
|
|
8900
|
+
z?.data?.[0] && (Z = z.data[0].decimals || 18);
|
|
8901
|
+
} catch (z) {
|
|
8892
8902
|
console.warn(
|
|
8893
8903
|
"getTokensDetails failed in ActionForm swap, using default 18:",
|
|
8894
|
-
|
|
8904
|
+
z
|
|
8895
8905
|
);
|
|
8896
8906
|
}
|
|
8897
8907
|
const _ = bt(
|
|
@@ -8907,18 +8917,18 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8907
8917
|
accesstoken: "d6c45897b8f6"
|
|
8908
8918
|
});
|
|
8909
8919
|
if (K.success && K.data) {
|
|
8910
|
-
const
|
|
8920
|
+
const z = K.data, $ = z.tokenIn, fe = z.tokenOut, ae = ie(
|
|
8911
8921
|
Me(BigInt($.amount || 0), $.decimals)
|
|
8912
8922
|
).decimalPlaces(6).toFormat(), D = ie(
|
|
8913
8923
|
Me(BigInt(fe.amount || 0), fe.decimals)
|
|
8914
|
-
).decimalPlaces(6).toFormat(), k = !X.token_in || X.token_in ===
|
|
8924
|
+
).decimalPlaces(6).toFormat(), k = !X.token_in || X.token_in === ze;
|
|
8915
8925
|
let O = !1;
|
|
8916
|
-
if (!k && u?.address &&
|
|
8926
|
+
if (!k && u?.address && z.tx?.to)
|
|
8917
8927
|
try {
|
|
8918
8928
|
const M = await Yn({
|
|
8919
8929
|
tokenAddress: X.token_in,
|
|
8920
8930
|
ownerAddress: u.address,
|
|
8921
|
-
spenderAddress:
|
|
8931
|
+
spenderAddress: z.tx.to,
|
|
8922
8932
|
chainId: b,
|
|
8923
8933
|
rpcUrl: F
|
|
8924
8934
|
});
|
|
@@ -8928,13 +8938,13 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8928
8938
|
} catch (M) {
|
|
8929
8939
|
console.warn("Allowance check failed in ActionForm swap:", M);
|
|
8930
8940
|
}
|
|
8931
|
-
const ee =
|
|
8941
|
+
const ee = z.estimatedTransactionFee?.total ? ie(z.estimatedTransactionFee.total) : ie(0);
|
|
8932
8942
|
let te = ie(0);
|
|
8933
8943
|
if (O && u?.address)
|
|
8934
8944
|
try {
|
|
8935
8945
|
const M = Tn({
|
|
8936
8946
|
tokenAddress: X.token_in,
|
|
8937
|
-
spenderAddress:
|
|
8947
|
+
spenderAddress: z.tx?.to || "",
|
|
8938
8948
|
fromAddress: u.address,
|
|
8939
8949
|
chainId: b
|
|
8940
8950
|
});
|
|
@@ -8949,7 +8959,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8949
8959
|
console.warn("Approve fee estimation failed:", M);
|
|
8950
8960
|
}
|
|
8951
8961
|
const de = ee.plus(te), re = w?.nativeCurrency?.symbol || "native";
|
|
8952
|
-
let U = "",
|
|
8962
|
+
let U = "", q = !1;
|
|
8953
8963
|
if (u?.address && de.isGreaterThan(0))
|
|
8954
8964
|
try {
|
|
8955
8965
|
const M = await Cn({
|
|
@@ -8958,7 +8968,7 @@ To: ${Pe} ${Oe.symbol}
|
|
|
8958
8968
|
rpcUrl: F
|
|
8959
8969
|
});
|
|
8960
8970
|
if (M.isLessThan(de)) {
|
|
8961
|
-
|
|
8971
|
+
q = !0;
|
|
8962
8972
|
const we = ie(
|
|
8963
8973
|
Me(BigInt(M.toFixed(0)), 18)
|
|
8964
8974
|
).decimalPlaces(6).toFormat(), ge = ie(
|
|
@@ -8979,7 +8989,7 @@ To: ${D} ${fe.symbol}
|
|
|
8979
8989
|
|
|
8980
8990
|
` + U + `
|
|
8981
8991
|
`;
|
|
8982
|
-
if (
|
|
8992
|
+
if (q)
|
|
8983
8993
|
v(G, "pending"), l(ne, "bot");
|
|
8984
8994
|
else if (O) {
|
|
8985
8995
|
const M = [
|
|
@@ -8990,9 +9000,9 @@ To: ${D} ${fe.symbol}
|
|
|
8990
9000
|
action: "approve_for_swap",
|
|
8991
9001
|
extraData: {
|
|
8992
9002
|
tokenAddress: X.token_in,
|
|
8993
|
-
spenderAddress:
|
|
9003
|
+
spenderAddress: z.tx.to,
|
|
8994
9004
|
tokenSymbol: $.symbol,
|
|
8995
|
-
tx:
|
|
9005
|
+
tx: z.tx
|
|
8996
9006
|
},
|
|
8997
9007
|
fullWidth: !0
|
|
8998
9008
|
}
|
|
@@ -9010,7 +9020,7 @@ To: ${D} ${fe.symbol}
|
|
|
9010
9020
|
text: a("swapConfirmYes"),
|
|
9011
9021
|
value: a("swapConfirmValue"),
|
|
9012
9022
|
action: "confirm_swap",
|
|
9013
|
-
extraData: { tx:
|
|
9023
|
+
extraData: { tx: z.tx }
|
|
9014
9024
|
}
|
|
9015
9025
|
];
|
|
9016
9026
|
v(G, "success"), l(
|
|
@@ -9042,7 +9052,7 @@ To: ${D} ${fe.symbol}
|
|
|
9042
9052
|
};
|
|
9043
9053
|
if ((L === "send_token" || L === "send_native" || L === "send_nft") && u?.address)
|
|
9044
9054
|
try {
|
|
9045
|
-
const
|
|
9055
|
+
const z = w?.nativeCurrency?.symbol || "native", $ = await nn({
|
|
9046
9056
|
from: Z.from,
|
|
9047
9057
|
to: Z.to,
|
|
9048
9058
|
data: Z.data,
|
|
@@ -9064,7 +9074,7 @@ To: ${D} ${fe.symbol}
|
|
|
9064
9074
|
).decimalPlaces(6).toFormat();
|
|
9065
9075
|
v(G, "pending"), l(
|
|
9066
9076
|
r("txInsufficientGas", {
|
|
9067
|
-
symbol:
|
|
9077
|
+
symbol: z,
|
|
9068
9078
|
balance: ae,
|
|
9069
9079
|
fee: D
|
|
9070
9080
|
}),
|
|
@@ -9073,20 +9083,20 @@ To: ${D} ${fe.symbol}
|
|
|
9073
9083
|
return;
|
|
9074
9084
|
}
|
|
9075
9085
|
}
|
|
9076
|
-
} catch (
|
|
9077
|
-
console.warn("Pre-execution fee check failed:",
|
|
9086
|
+
} catch (z) {
|
|
9087
|
+
console.warn("Pre-execution fee check failed:", z);
|
|
9078
9088
|
}
|
|
9079
9089
|
const K = Y(G);
|
|
9080
9090
|
if (n) {
|
|
9081
9091
|
B(!1);
|
|
9082
|
-
const
|
|
9083
|
-
if (
|
|
9092
|
+
const z = await n(_);
|
|
9093
|
+
if (z.status === "success" && z.transactionHash) {
|
|
9084
9094
|
const $ = w?.blockExplorers?.default?.url, fe = $ ? `
|
|
9085
|
-
[View on Explorer](${$}/tx/${
|
|
9086
|
-
Tx: ${
|
|
9095
|
+
[View on Explorer](${$}/tx/${z.transactionHash})` : `
|
|
9096
|
+
Tx: ${z.transactionHash}`;
|
|
9087
9097
|
try {
|
|
9088
9098
|
await nt(2e3), (await Gn({
|
|
9089
|
-
transactionHash:
|
|
9099
|
+
transactionHash: z.transactionHash,
|
|
9090
9100
|
chainId: b || 1,
|
|
9091
9101
|
rpcUrl: F
|
|
9092
9102
|
})).status === "success" ? (v(G, "success"), R(
|
|
@@ -9099,12 +9109,12 @@ Tx: ${J.transactionHash}`;
|
|
|
9099
9109
|
console.warn("Transaction tracking timeout:", ae), v(G, "success"), l(a("txTimeout") + `
|
|
9100
9110
|
` + fe, "bot");
|
|
9101
9111
|
}
|
|
9102
|
-
} else if (
|
|
9112
|
+
} else if (z.status === "success")
|
|
9103
9113
|
v(G, "success");
|
|
9104
9114
|
else {
|
|
9105
9115
|
v(G, "pending");
|
|
9106
|
-
const $ =
|
|
9107
|
-
Error: ${
|
|
9116
|
+
const $ = z.error ? `
|
|
9117
|
+
Error: ${z.error}` : "";
|
|
9108
9118
|
l(a("txFailed") + $, "bot");
|
|
9109
9119
|
}
|
|
9110
9120
|
} else
|
|
@@ -9374,7 +9384,7 @@ Error: ${J.error}` : "";
|
|
|
9374
9384
|
"button",
|
|
9375
9385
|
{
|
|
9376
9386
|
className: "reply-preview-close",
|
|
9377
|
-
onClick: () =>
|
|
9387
|
+
onClick: () => J(null),
|
|
9378
9388
|
"aria-label": a("cancelReply"),
|
|
9379
9389
|
type: "button",
|
|
9380
9390
|
children: /* @__PURE__ */ W("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ W(
|