keyring-chatbot-agent-sdk-test 0.0.32 → 0.0.33
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 +2801 -2801
- package/dist/chat-widget.umd.js +47 -47
- package/package.json +1 -1
package/dist/chat-widget.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".chat-button{cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;transition:all .3s ease;border-radius:16px}.chat-button:hover{transform:scale(1.1);box-shadow:0 6px 16px #0003}.chat-button:active{transform:scale(.95)}.chat-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;display:flex;align-items:flex-end;justify-content:flex-end;z-index:9999;pointer-events:all;animation:fadeIn .2s ease}#chat-modal-title{color:#0b3988;font-weight:900;font-style:Regular;font-size:18px}.chat-modal-overlay.chat-modal-overlay--left{justify-content:flex-start}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-modal{width:90%;max-width:480px;height:700px;max-height:calc(100dvh - 64px);background:#f5f5f7;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d;margin:20px;pointer-events:all;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.chat-modal-header{background:#fff;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e5e7}.chat-modal-header-left{display:flex;align-items:center;gap:12px}.keyring-logo{width:32px;height:32px}.chat-modal-header h3{margin:0;font-size:18px;font-weight:700;color:#1a1a1d}.close-button{background:transparent;border:none;cursor:pointer;padding:8px;border-radius:8px;color:#666;transition:all .2s}.close-button:hover{background:#f5f5f7;color:#000}.chat-user-info{background:#fff;padding:12px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #e5e5e7}.user-avatar{width:20px;height:20px;border-radius:50%}.user-avatar img{border-radius:50%}.user-wallet,.user-wallet a{font-size:14px;font-weight:500;color:#0b3988}.copy-address-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:3px;color:#999;border-radius:4px;transition:color .15s,background .15s;line-height:0}@media(min-width:640px){.copy-address-btn:hover{color:#1a1a1d;background:#f0f0f0}}.chat-modal-messages-wrapper{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column}.chat-modal-messages{flex:1;padding:20px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px}.date-separator{text-align:center;font-size:12px;font-weight:600;color:#666;background:#e5e5e7;padding:6px 16px;border-radius:12px;align-self:center;width:fit-content;margin:8px auto}.message{display:flex;animation:messageSlide .3s ease;position:relative}@media(min-width:640px){.message:hover .message-reply-button{opacity:1}}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-reply-button{position:absolute;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #e5e5e7;border-radius:8px;padding:6px;cursor:pointer;opacity:0;transition:all .2s;box-shadow:0 2px 8px #0000001a;z-index:10}.message-bot .message-reply-button{right:20px}.message-user .message-reply-button{left:20px}.message-reply-button:hover{background:#f5f5f7;transform:translateY(-50%) scale(1.1)}.message-reply-button svg{display:block;width:16px;height:16px;color:#666}.message-bot{justify-content:flex-start}.message-user{justify-content:flex-end}.message-bubble{max-width:85%;padding:14px 16px;border-radius:20px}.message-bot .message-bubble{background:#fff;box-shadow:0 2px 8px #0000000f;border-bottom-left-radius:4px}.message-user .message-bubble{background:#5b7fff;color:#fff;border-bottom-right-radius:4px}.message-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}.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:#6c5ce7;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:#6c5ce7;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:#6c5ce7;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:#6c5ce7;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:#6c5ce7;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}.scroll-to-bottom-btn{position:absolute;bottom:16px;right:20px;background:#1a1a1dd6;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:50%;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000040;z-index:20;transition:background .15s,transform .15s,box-shadow .15s;animation:fadeInUp .18s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:640px){.scroll-to-bottom-btn:hover{background:#2d2d35;box-shadow:0 6px 16px #0000004d;transform:scale(1.08)}}.scroll-to-bottom-btn:active{transform:scale(.96)}")),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
|
-
(function(
|
|
2
|
+
(function(wt,F){typeof exports=="object"&&typeof module<"u"?F(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],F):(wt=typeof globalThis<"u"?globalThis:wt||self,F(wt.ChatWidgetSDK={},wt.jsxRuntime,wt.React))})(this,(function(wt,F,ne){"use strict";const Vs="data:image/png;base64,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",po={en:{chatTitle:"Keyring Agent",closeChat:"Close chat",messagePlaceholder:"Message ....",sendMessage:"Send message",botIsTyping:"Bot is typing",canIHelpYou:"Can I help you with anything?",replyToMessage:"Reply to message",replyingTo:"Replying to",replyingToYou:"You",replyingToAgent:"Keyring Agent",cancelReply:"Cancel reply",suggestionAskText:"Ask a question",suggestionAskUserMessage:"I have a question",suggestionAskBotReply:"Ask me anything",suggestionBuyText:"Buy trending token",walletConnectedChainUnsupported:"Your wallet is connected but the chain is not supported for trading. Please switch to a supported chain to see trending tokens.",walletNotConnected:"Please connect your wallet to see trending tokens.",actionProcessing:"⏳ Processing transaction...",actionSuccess:"✅ Transaction completed",actionFail:"❌ Action cancelled or failed",txSubmitted:"⏳ Transaction submitted. Waiting for confirmation...",txConfirmed:"✅ Transaction confirmed!",txReverted:"❌ Transaction reverted on-chain.",txTimeout:"⚠️ Transaction submitted but confirmation timed out. Please check manually.",txSuccessful:"✅ Transaction successful!",txFailed:"Transaction failed. Please try again.",txNoHandler:"⚠️ No transaction handler configured.",txInsufficientGas:"⚠️ **Insufficient {symbol} for gas!** You have {balance} {symbol} but need ~{fee} {symbol} for the transaction fee. Please top up your wallet and try again.",txError:"❌ Error: {message}",swapConfirmButton:"Confirm",swapConfirmValue:"Confirm swap",swapReadyToProceed:"Ready to proceed with the swap?",swapEstimationError:"⚠️ Unable to get swap estimation. Error: {error}",formCancel:"Cancel",formExecute:"🚀 Execute",formProcessing:"⏳ Processing...",formBalance:"Balance:",formTokenNotFound:"Token not found in your wallet.",formNoBalance:"You have no {symbol} balance in your wallet.",formInsufficientBalance:"Insufficient balance. Available: {balance} {symbol}",formFieldRequired:"{field} is required",formInvalidAddress:"Invalid address (0x + 40 hex chars)",formMustBePositive:"Must be a positive number",formMustBeValidNumber:"Must be a valid number",openChat:"Open chat",openChatTitle:"Open chat support",walletBalanceSpendable:"This is the spendable balance of your wallet on {chain} chain. Please choose the coins you want to use for this trade.",walletNoTokensFound:"Sorry, I couldn't find any tokens in your wallet on {chain} chain. Please make sure you have some tokens to trade.",walletFetchFailed:"Sorry, I could not fetch your wallet balance. Please try again.",walletFetchError:"Sorry, I encountered an error fetching your wallet balance.",insufficientFeeToken:"Insufficient fee. Please ensure you have enough {symbol} to cover the transaction fees, or select a different token.",selectAmountOf:`📊 Select the amount of {symbol} to use:
|
|
3
3
|
|
|
4
4
|
Available: {balance} {symbol}`,swapFeeWarning:`
|
|
5
5
|
⚠️ **Insufficient {symbol} for fees!**
|
|
@@ -74,19 +74,19 @@ Select a token to interact with:`,viewBalancesEmpty:"💰 You don't have any tok
|
|
|
74
74
|
|
|
75
75
|
{list}
|
|
76
76
|
|
|
77
|
-
选择要操作的代币:`,viewBalancesEmpty:"💰 您的钱包在此链上没有任何代币。",viewBalancesFetchError:"获取余额时遇到错误,请重试。",buttonSendToken:"发送{symbol}",buttonSwapToken:"兑换{symbol}",buttonBuyMoreToken:"购买更多{symbol}",actionSendNativeLabel:"发送原生代币",actionSendNativeDesc:"发送原生代币(ETH、BNB、MATIC 等)到某个地址",actionSendTokenLabel:"发送代币(ERC20)",actionSendTokenDesc:"将 ERC20 代币发送到某个地址",actionSwapTokenLabel:"兑换代币",actionSwapTokenDesc:"将一种代币兑换为另一种代币",actionApproveTokenLabel:"授权代币",actionApproveTokenDesc:"授权某地址使用您的代币",actionWrapNativeLabel:"包装原生代币",actionWrapNativeDesc:"包装原生代币(ETH → WETH)",actionUnwrapNativeLabel:"解包原生代币",actionUnwrapNativeDesc:"解包原生代币(WETH → ETH)",actionSendNftLabel:"发送 NFT",actionSendNftDesc:"将 ERC721 或 ERC1155 NFT 转移到另一个地址",fieldToAddress:"收款地址",fieldAmount:"数量",fieldTokenContract:"代币合约",fieldTokenSymbol:"代币符号",fieldDecimals:"小数位数",fieldTokenIn:"源代币",fieldTokenInSymbol:"源代币符号",fieldTokenOut:"目标代币",fieldTokenOutSymbol:"目标代币符号",fieldTokenInDecimals:"源代币小数位",fieldTokenOutDecimals:"目标代币小数位",fieldSpenderAddress:"授权地址",fieldAmountUnlimited:"数量(留空 = 无限授权)",fieldNftContract:"NFT 合约",fieldTokenId:"Token ID",fieldTokenStandard:"代币标准",fieldNftName:"NFT 名称",formMustBePositiveInteger:"必须是正整数",formAmountExceedsNft:"数量不能超过可用余额 {max}"}};function mo(e,t){return po[t]?.[e]??po.en[e]??e}function
|
|
78
|
-
`);super(r,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=o,this.docsPath=s,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=bo}walk(t){return go(this,t)}}function go(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?go(e.cause,t):t?null:e}class Cn extends ue{constructor({max:t,min:n,signed:o,size:s,value:a}){super(`Number "${a}" is not in safe ${s?`${s*8}-bit ${o?"signed":"unsigned"} `:""}integer range ${t?`(${n} to ${t})`:`(above ${n})`}`,{name:"IntegerOutOfRangeError"})}}class zs extends ue{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function Dt(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function Ge(e){return Dt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function cn(e,{dir:t="left"}={}){let n=typeof e=="string"?e.replace("0x",""):e,o=0;for(let s=0;s<n.length-1&&n[t==="left"?s:n.length-s-1].toString()==="0";s++)o++;return n=t==="left"?n.slice(o):n.slice(0,n.length-o),typeof e=="string"?(n.length===1&&t==="right"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}class wo extends ue{constructor({offset:t,position:n,size:o}){super(`Slice ${n==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${o}).`,{name:"SliceOffsetOutOfBoundsError"})}}class yo extends ue{constructor({size:t,targetSize:n,type:o}){super(`${o.charAt(0).toUpperCase()}${o.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`,{name:"SizeExceedsPaddingSizeError"})}}function _t(e,{dir:t,size:n=32}={}){return typeof e=="string"?wt(e,{dir:t,size:n}):qs(e,{dir:t,size:n})}function wt(e,{dir:t,size:n=32}={}){if(n===null)return e;const o=e.replace("0x","");if(o.length>n*2)throw new yo({size:Math.ceil(o.length/2),targetSize:n,type:"hex"});return`0x${o[t==="right"?"padEnd":"padStart"](n*2,"0")}`}function qs(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new yo({size:e.length,targetSize:n,type:"bytes"});const o=new Uint8Array(n);for(let s=0;s<n;s++){const a=t==="right";o[a?s:n-s-1]=e[a?s:e.length-s-1]}return o}const Ys=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ot(e,t={}){return typeof e=="number"||typeof e=="bigint"?le(e,t):typeof e=="string"?ko(e,t):typeof e=="boolean"?vo(e,t):ft(e,t)}function vo(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(Ut(n,{size:t.size}),_t(n,{size:t.size})):n}function ft(e,t={}){let n="";for(let s=0;s<e.length;s++)n+=Ys[e[s]];const o=`0x${n}`;return typeof t.size=="number"?(Ut(o,{size:t.size}),_t(o,{dir:"right",size:t.size})):o}function le(e,t={}){const{signed:n,size:o}=t,s=BigInt(e);let a;o?n?a=(1n<<BigInt(o)*8n-1n)-1n:a=2n**(BigInt(o)*8n)-1n:typeof e=="number"&&(a=BigInt(Number.MAX_SAFE_INTEGER));const r=typeof a=="bigint"&&n?-a-1n:0;if(a&&s>a||s<r){const d=typeof e=="bigint"?"n":"";throw new Cn({max:a?`${a}${d}`:void 0,min:`${r}${d}`,signed:n,size:o,value:`${e}${d}`})}const i=`0x${(n&&s<0?(1n<<BigInt(o*8))+BigInt(s):s).toString(16)}`;return o?_t(i,{size:o}):i}const js=new TextEncoder;function ko(e,t={}){const n=js.encode(e);return ft(n,t)}const Js=new TextEncoder;function Bn(e,t={}){return typeof e=="number"||typeof e=="bigint"?Ks(e,t):typeof e=="boolean"?Xs(e,t):Dt(e)?xt(e,t):To(e,t)}function Xs(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),typeof t.size=="number"?(Ut(n,{size:t.size}),_t(n,{size:t.size})):n}const pt={zero:48,nine:57,A:65,F:70,a:97,f:102};function Ao(e){if(e>=pt.zero&&e<=pt.nine)return e-pt.zero;if(e>=pt.A&&e<=pt.F)return e-(pt.A-10);if(e>=pt.a&&e<=pt.f)return e-(pt.a-10)}function xt(e,t={}){let n=e;t.size&&(Ut(n,{size:t.size}),n=_t(n,{dir:"right",size:t.size}));let o=n.slice(2);o.length%2&&(o=`0${o}`);const s=o.length/2,a=new Uint8Array(s);for(let r=0,i=0;r<s;r++){const d=Ao(o.charCodeAt(i++)),T=Ao(o.charCodeAt(i++));if(d===void 0||T===void 0)throw new ue(`Invalid byte sequence ("${o[i-2]}${o[i-1]}" in "${o}").`);a[r]=d*16+T}return a}function Ks(e,t){const n=le(e,t);return xt(n)}function To(e,t={}){const n=Js.encode(e);return typeof t.size=="number"?(Ut(n,{size:t.size}),_t(n,{dir:"right",size:t.size})):n}function Ut(e,{size:t}){if(Ge(e)>t)throw new zs({givenSize:Ge(e),maxSize:t})}function Lt(e,t={}){const{signed:n}=t;t.size&&Ut(e,{size:t.size});const o=BigInt(e);if(!n)return o;const s=(e.length-2)/2,a=(1n<<BigInt(s)*8n-1n)-1n;return o<=a?o:o-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function ln(e,t={}){const n=Lt(e,t),o=Number(n);if(!Number.isSafeInteger(o))throw new Cn({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:t.signed,size:t.size,value:`${n}n`});return o}function In(e,t){return({exclude:n,format:o})=>({exclude:n,format:(s,a)=>{const r=t(s,a);if(n)for(const i of n)delete r[i];return{...r,...o(s,a)}},type:e})}const xo={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Pn(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?ln(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?ln(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?xo[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=Qs(e.authorizationList)),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof n.v=="bigint"){if(n.v===0n||n.v===27n)return 0;if(n.v===1n||n.v===28n)return 1;if(n.v>=35n)return n.v%2n===0n?1:0}})(),n.type==="legacy"&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),n.type==="eip2930"&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),n.type==="eip1559"&&delete n.maxFeePerBlobGas,n}const Zs=In("transaction",Pn);function Qs(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function ea(e,t){const n=(e.transactions??[]).map(o=>typeof o=="string"?o:Pn(o));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const ta=In("block",ea);function na(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):e.blockTimestamp===null?null:void 0,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}const oa={"0x0":"reverted","0x1":"success"};function sa(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(o=>na(o)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?ln(e.transactionIndex):null,status:e.status?oa[e.status]:null,type:e.type?xo[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const aa=In("transactionReceipt",sa),ra={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function ia(e,t){const n={};return typeof e.authorizationList<"u"&&(n.authorizationList=ca(e.authorizationList)),typeof e.accessList<"u"&&(n.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(n.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?n.blobs=e.blobs.map(o=>ft(o)):n.blobs=e.blobs),typeof e.data<"u"&&(n.data=e.data),e.account&&(n.from=e.account.address),typeof e.from<"u"&&(n.from=e.from),typeof e.gas<"u"&&(n.gas=le(e.gas)),typeof e.gasPrice<"u"&&(n.gasPrice=le(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(n.maxFeePerBlobGas=le(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(n.maxFeePerGas=le(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(n.maxPriorityFeePerGas=le(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(n.nonce=le(e.nonce)),typeof e.to<"u"&&(n.to=e.to),typeof e.type<"u"&&(n.type=ra[e.type]),typeof e.value<"u"&&(n.value=le(e.value)),n}function ca(e){return e.map(t=>({address:t.address,r:t.r?le(BigInt(t.r)):t.r,s:t.s?le(BigInt(t.s)):t.s,chainId:le(t.chainId),nonce:le(t.nonce),...typeof t.yParity<"u"?{yParity:le(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:le(t.v)}:{}}))}const Mt=2n**256n-1n;function Rt(e){return typeof e[0]=="string"?Et(e):la(e)}function la(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let o=0;for(const s of e)n.set(s,o),o+=s.length;return n}function Et(e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}class Eo extends ue{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class da extends ue{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class ua extends ue{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const fa={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ua({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new da({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Eo({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Eo({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function So(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(fa);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function St(e,t="hex"){const n=No(e),o=So(new Uint8Array(n.length));return n.encode(o),t==="hex"?ft(o.bytes):o.bytes}function No(e){return Array.isArray(e)?pa(e.map(t=>No(t))):ma(e)}function pa(e){const t=e.reduce((s,a)=>s+a.length,0),n=Co(t);return{length:t<=55?1+t:1+n+t,encode(s){t<=55?s.pushByte(192+t):(s.pushByte(247+n),n===1?s.pushUint8(t):n===2?s.pushUint16(t):n===3?s.pushUint24(t):s.pushUint32(t));for(const{encode:a}of e)a(s)}}}function ma(e){const t=typeof e=="string"?xt(e):e,n=Co(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(s){t.length===1&&t[0]<128?s.pushBytes(t):t.length<=55?(s.pushByte(128+t.length),s.pushBytes(t)):(s.pushByte(183+n),n===1?s.pushUint8(t.length):n===2?s.pushUint16(t.length):n===3?s.pushUint24(t.length):s.pushUint32(t.length),s.pushBytes(t))}}}function Co(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new ue("Length is too large.")}const ha={gwei:9,wei:18},ba={ether:-9,wei:9};function Oe(e,t){let n=e.toString();const o=n.startsWith("-");o&&(n=n.slice(1)),n=n.padStart(t,"0");let[s,a]=[n.slice(0,n.length-t),n.slice(n.length-t)];return a=a.replace(/(0+)$/,""),`${o?"-":""}${s||"0"}${a?`.${a}`:""}`}function ga(e,t="wei"){return Oe(e,ha[t])}function Nt(e,t="wei"){return Oe(e,ba[t])}function Bo(e){const t=Object.entries(e).map(([o,s])=>s===void 0||s===!1?null:[o,s]).filter(Boolean),n=t.reduce((o,[s])=>Math.max(o,s.length),0);return t.map(([o,s])=>` ${`${o}:`.padEnd(n+1)} ${s}`).join(`
|
|
79
|
-
`)}class wa extends ue{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class ya extends ue{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Bo(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class va extends ue{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function ka(e){if(!e||e.length===0)return[];const t=[];for(const n of e){const{chainId:o,nonce:s,...a}=n,r=n.address;t.push([o?Ot(o):"0x",r,s?Ot(s):"0x",...Jt({},a)])}return t}function Io(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),o=typeof e.blobs[0]=="string"?e.blobs.map(a=>xt(a)):e.blobs,s=[];for(const a of o)s.push(Uint8Array.from(t.blobToKzgCommitment(a)));return n==="bytes"?s:s.map(a=>ft(a))}function Po(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),o=typeof e.blobs[0]=="string"?e.blobs.map(r=>xt(r)):e.blobs,s=typeof e.commitments[0]=="string"?e.commitments.map(r=>xt(r)):e.commitments,a=[];for(let r=0;r<o.length;r++){const i=o[r],d=s[r];a.push(Uint8Array.from(t.computeBlobKzgProof(i,d)))}return n==="bytes"?a:a.map(r=>ft(r))}function Aa(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Fo(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function zt(e,...t){if(!Aa(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function dn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Do(e,t){zt(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ta(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function qt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Fn(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function it(e,t){return e<<32-t|e>>>t}const xa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Ea(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Sa(e){for(let t=0;t<e.length;t++)e[t]=Ea(e[t]);return e}const _o=xa?e=>e:Sa;function Na(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Dn(e){return typeof e=="string"&&(e=Na(e)),zt(e),e}class Oo{}function Uo(e){const t=o=>e().update(Dn(o)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ca(e,t,n,o){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,o);const s=BigInt(32),a=BigInt(4294967295),r=Number(n>>s&a),i=Number(n&a),d=o?4:0,T=o?0:4;e.setUint32(t+d,r,o),e.setUint32(t+T,i,o)}function Ba(e,t,n){return e&t^~e&n}function Ia(e,t,n){return e&t^e&n^t&n}class Pa extends Oo{constructor(t,n,o,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=o,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Fn(this.buffer)}update(t){dn(this),t=Dn(t),zt(t);const{view:n,buffer:o,blockLen:s}=this,a=t.length;for(let r=0;r<a;){const i=Math.min(s-this.pos,a-r);if(i===s){const d=Fn(t);for(;s<=a-r;r+=s)this.process(d,r);continue}o.set(t.subarray(r,r+i),this.pos),this.pos+=i,r+=i,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){dn(this),Do(t,this),this.finished=!0;const{buffer:n,view:o,blockLen:s,isLE:a}=this;let{pos:r}=this;n[r++]=128,qt(this.buffer.subarray(r)),this.padOffset>s-r&&(this.process(o,0),r=0);for(let R=r;R<s;R++)n[R]=0;Ca(o,s-8,BigInt(this.length*8),a),this.process(o,0);const i=Fn(t),d=this.outputLen;if(d%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const T=d/4,B=this.get();if(T>B.length)throw new Error("_sha2: outputLen bigger than state");for(let R=0;R<T;R++)i.setUint32(4*R,B[R],a)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const o=t.slice(0,n);return this.destroy(),o}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:n,buffer:o,length:s,finished:a,destroyed:r,pos:i}=this;return t.destroyed=r,t.finished=a,t.length=s,t.pos=i,s%n&&t.buffer.set(o),t}clone(){return this._cloneInto()}}const yt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),un=BigInt(2**32-1),Lo=BigInt(32);function Fa(e,t=!1){return t?{h:Number(e&un),l:Number(e>>Lo&un)}:{h:Number(e>>Lo&un)|0,l:Number(e&un)|0}}function Da(e,t=!1){const n=e.length;let o=new Uint32Array(n),s=new Uint32Array(n);for(let a=0;a<n;a++){const{h:r,l:i}=Fa(e[a],t);[o[a],s[a]]=[r,i]}return[o,s]}const _a=(e,t,n)=>e<<n|t>>>32-n,Oa=(e,t,n)=>t<<n|e>>>32-n,Ua=(e,t,n)=>t<<n-32|e>>>64-n,La=(e,t,n)=>e<<n-32|t>>>64-n,Ma=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),vt=new Uint32Array(64);class Ra extends Pa{constructor(t=32){super(64,t,8,!1),this.A=yt[0]|0,this.B=yt[1]|0,this.C=yt[2]|0,this.D=yt[3]|0,this.E=yt[4]|0,this.F=yt[5]|0,this.G=yt[6]|0,this.H=yt[7]|0}get(){const{A:t,B:n,C:o,D:s,E:a,F:r,G:i,H:d}=this;return[t,n,o,s,a,r,i,d]}set(t,n,o,s,a,r,i,d){this.A=t|0,this.B=n|0,this.C=o|0,this.D=s|0,this.E=a|0,this.F=r|0,this.G=i|0,this.H=d|0}process(t,n){for(let R=0;R<16;R++,n+=4)vt[R]=t.getUint32(n,!1);for(let R=16;R<64;R++){const h=vt[R-15],x=vt[R-2],m=it(h,7)^it(h,18)^h>>>3,C=it(x,17)^it(x,19)^x>>>10;vt[R]=C+vt[R-7]+m+vt[R-16]|0}let{A:o,B:s,C:a,D:r,E:i,F:d,G:T,H:B}=this;for(let R=0;R<64;R++){const h=it(i,6)^it(i,11)^it(i,25),x=B+h+Ba(i,d,T)+Ma[R]+vt[R]|0,C=(it(o,2)^it(o,13)^it(o,22))+Ia(o,s,a)|0;B=T,T=d,d=i,i=r+x|0,r=a,a=s,s=o,o=x+C|0}o=o+this.A|0,s=s+this.B|0,a=a+this.C|0,r=r+this.D|0,i=i+this.E|0,d=d+this.F|0,T=T+this.G|0,B=B+this.H|0,this.set(o,s,a,r,i,d,T,B)}roundClean(){qt(vt)}destroy(){this.set(0,0,0,0,0,0,0,0),qt(this.buffer)}}const $a=Uo(()=>new Ra);function Ha(e,t){return $a(Dt(e,{strict:!1})?Bn(e):e)}function Wa(e){const{commitment:t,version:n=1}=e,o=e.to??(typeof t=="string"?"hex":"bytes"),s=Ha(t);return s.set([n],0),o==="bytes"?s:ft(s)}function Va(e){const{commitments:t,version:n}=e,o=e.to??(typeof t[0]=="string"?"hex":"bytes"),s=[];for(const a of t)s.push(Wa({commitment:a,to:o,version:n}));return s}const Mo=6,Ro=32,_n=4096,$o=Ro*_n,Ho=$o*Mo-1-1*_n*Mo,Wo=1;class Ga extends ue{constructor({maxSize:t,size:n}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${n} bytes`],name:"BlobSizeTooLargeError"})}}class Vo extends ue{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class za extends ue{constructor({hash:t,size:n}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${n}`],name:"InvalidVersionedHashSizeError"})}}class qa extends ue{constructor({hash:t,version:n}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${Wo}`,`Received: ${n}`],name:"InvalidVersionedHashVersionError"})}}function Ya(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),n=typeof e.data=="string"?xt(e.data):e.data,o=Ge(n);if(!o)throw new Vo;if(o>Ho)throw new Ga({maxSize:Ho,size:o});const s=[];let a=!0,r=0;for(;a;){const i=So(new Uint8Array($o));let d=0;for(;d<_n;){const T=n.slice(r,r+(Ro-1));if(i.pushByte(0),i.pushBytes(T),T.length<31){i.pushByte(128),a=!1;break}d++,r+=31}s.push(i)}return t==="bytes"?s.map(i=>i.bytes):s.map(i=>ft(i.bytes))}function ja(e){const{data:t,kzg:n,to:o}=e,s=e.blobs??Ya({data:t,to:o}),a=e.commitments??Io({blobs:s,kzg:n,to:o}),r=e.proofs??Po({blobs:s,commitments:a,kzg:n,to:o}),i=[];for(let d=0;d<s.length;d++)i.push({blob:s[d],commitment:a[d],proof:r[d]});return i}class ct extends ue{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class fn extends ue{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class $t extends ue{constructor({cause:t,message:n}={}){const o=n?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${o?`with reason: ${o}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}}Object.defineProperty($t,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty($t,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class Ct extends ue{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${Nt(n)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(Ct,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class On extends ue{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${Nt(n)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}}Object.defineProperty(On,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class Un extends ue{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}}Object.defineProperty(Un,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class Ln extends ue{constructor({cause:t,nonce:n}={}){super([`Nonce provided for the transaction ${n?`(${n}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
|
|
80
|
-
`),{cause:t,name:"NonceTooLowError"})}}Object.defineProperty(
|
|
81
|
-
`),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(
|
|
82
|
-
`),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(Yt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Go extends ue{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}class zo extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const n=super.get(t);return super.has(t)&&n!==void 0&&(this.delete(t),super.set(t,n)),n}set(t,n){if(super.set(t,n),this.maxSize&&this.size>this.maxSize){const o=this.keys().next().value;o&&this.delete(o)}return this}}const Ja=BigInt(0),jt=BigInt(1),Xa=BigInt(2),Ka=BigInt(7),Za=BigInt(256),Qa=BigInt(113),qo=[],Yo=[],jo=[];for(let e=0,t=jt,n=1,o=0;e<24;e++){[n,o]=[o,(2*n+3*o)%5],qo.push(2*(5*o+n)),Yo.push((e+1)*(e+2)/2%64);let s=Ja;for(let a=0;a<7;a++)t=(t<<jt^(t>>Ka)*Qa)%Za,t&Xa&&(s^=jt<<(jt<<BigInt(a))-jt);jo.push(s)}const Jo=Da(jo,!0),er=Jo[0],tr=Jo[1],Xo=(e,t,n)=>n>32?Ua(e,t,n):_a(e,t,n),Ko=(e,t,n)=>n>32?La(e,t,n):Oa(e,t,n);function nr(e,t=24){const n=new Uint32Array(10);for(let o=24-t;o<24;o++){for(let r=0;r<10;r++)n[r]=e[r]^e[r+10]^e[r+20]^e[r+30]^e[r+40];for(let r=0;r<10;r+=2){const i=(r+8)%10,d=(r+2)%10,T=n[d],B=n[d+1],R=Xo(T,B,1)^n[i],h=Ko(T,B,1)^n[i+1];for(let x=0;x<50;x+=10)e[r+x]^=R,e[r+x+1]^=h}let s=e[2],a=e[3];for(let r=0;r<24;r++){const i=Yo[r],d=Xo(s,a,i),T=Ko(s,a,i),B=qo[r];s=e[B],a=e[B+1],e[B]=d,e[B+1]=T}for(let r=0;r<50;r+=10){for(let i=0;i<10;i++)n[i]=e[r+i];for(let i=0;i<10;i++)e[r+i]^=~n[(i+2)%10]&n[(i+4)%10]}e[0]^=er[o],e[1]^=tr[o]}qt(n)}class Vn extends Oo{constructor(t,n,o,s=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=o,this.enableXOF=s,this.rounds=a,Fo(o),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Ta(this.state)}clone(){return this._cloneInto()}keccak(){_o(this.state32),nr(this.state32,this.rounds),_o(this.state32),this.posOut=0,this.pos=0}update(t){dn(this),t=Dn(t),zt(t);const{blockLen:n,state:o}=this,s=t.length;for(let a=0;a<s;){const r=Math.min(n-this.pos,s-a);for(let i=0;i<r;i++)o[this.pos++]^=t[a++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:o,blockLen:s}=this;t[o]^=n,(n&128)!==0&&o===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){dn(this,!1),zt(t),this.finish();const n=this.state,{blockLen:o}=this;for(let s=0,a=t.length;s<a;){this.posOut>=o&&this.keccak();const r=Math.min(o-this.posOut,a-s);t.set(n.subarray(this.posOut,this.posOut+r),s),this.posOut+=r,s+=r}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Fo(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Do(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,qt(this.state)}_cloneInto(t){const{blockLen:n,suffix:o,outputLen:s,rounds:a,enableXOF:r}=this;return t||(t=new Vn(n,o,s,r,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=o,t.outputLen=s,t.enableXOF=r,t.destroyed=this.destroyed,t}}const or=(e,t,n)=>Uo(()=>new Vn(t,e,n)),sr=or(1,136,256/8);function Zo(e,t){const n=t||"hex",o=sr(Dt(e,{strict:!1})?Bn(e):e);return n==="bytes"?o:Ot(o)}const Gn=new zo(8192);function ar(e,t){if(Gn.has(`${e}.${t}`))return Gn.get(`${e}.${t}`);const n=e.substring(2).toLowerCase(),o=Zo(To(n),"bytes"),s=n.split("");for(let r=0;r<40;r+=2)o[r>>1]>>4>=8&&s[r]&&(s[r]=s[r].toUpperCase()),(o[r>>1]&15)>=8&&s[r+1]&&(s[r+1]=s[r+1].toUpperCase());const a=`0x${s.join("")}`;return Gn.set(`${e}.${t}`,a),a}const rr=/^0x[a-fA-F0-9]{40}$/,zn=new zo(8192);function Re(e,t){const{strict:n=!0}=t??{},o=`${e}.${n}`;if(zn.has(o))return zn.get(o);const s=rr.test(e)?e.toLowerCase()===e?!0:n?ar(e)===e:!0:!1;return zn.set(o,s),s}function qn(e,t,n,{strict:o}={}){return Dt(e,{strict:!1})?cr(e,t,n,{strict:o}):ir(e,t,n,{strict:o})}function Qo(e,t){if(typeof t=="number"&&t>0&&t>Ge(e)-1)throw new wo({offset:t,position:"start",size:Ge(e)})}function es(e,t,n){if(typeof t=="number"&&typeof n=="number"&&Ge(e)!==n-t)throw new wo({offset:n,position:"end",size:Ge(e)})}function ir(e,t,n,{strict:o}={}){Qo(e,t);const s=e.slice(t,n);return o&&es(s,t,n),s}function cr(e,t,n,{strict:o}={}){Qo(e,t);const s=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return o&&es(s,t,n),s}function lr(e){const{authorizationList:t}=e;if(t)for(const n of t){const{chainId:o}=n,s=n.address;if(!Re(s))throw new ct({address:s});if(o<0)throw new fn({chainId:o})}Yn(e)}function dr(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Vo;for(const n of t){const o=Ge(n),s=ln(qn(n,0,1));if(o!==32)throw new za({hash:n,size:o});if(s!==Wo)throw new qa({hash:n,version:s})}}Yn(e)}function Yn(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new fn({chainId:t});if(s&&!Re(s))throw new ct({address:s});if(o&&o>Mt)throw new Ct({maxFeePerGas:o});if(n&&o&&n>o)throw new Yt({maxFeePerGas:o,maxPriorityFeePerGas:n})}function ur(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:o,maxFeePerGas:s,to:a}=e;if(t<=0)throw new fn({chainId:t});if(a&&!Re(a))throw new ct({address:a});if(n||s)throw new ue("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(o&&o>Mt)throw new Ct({maxFeePerGas:o})}function fr(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:o,maxFeePerGas:s,to:a}=e;if(a&&!Re(a))throw new ct({address:a});if(typeof t<"u"&&t<=0)throw new fn({chainId:t});if(n||s)throw new ue("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(o&&o>Mt)throw new Ct({maxFeePerGas:o})}function pr(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new ya({transaction:e})}function pn(e){if(!e||e.length===0)return[];const t=[];for(let n=0;n<e.length;n++){const{address:o,storageKeys:s}=e[n];for(let a=0;a<s.length;a++)if(s[a].length-2!==64)throw new va({storageKey:s[a]});if(!Re(o,{strict:!1}))throw new ct({address:o});t.push([o,s])}return t}function mr(e,t){const n=pr(e);return n==="eip1559"?gr(e,t):n==="eip2930"?wr(e,t):n==="eip4844"?br(e,t):n==="eip7702"?hr(e,t):yr(e,t)}function hr(e,t){const{authorizationList:n,chainId:o,gas:s,nonce:a,to:r,value:i,maxFeePerGas:d,maxPriorityFeePerGas:T,accessList:B,data:R}=e;lr(e);const h=pn(B),x=ka(n);return Et(["0x04",St([le(o),a?le(a):"0x",T?le(T):"0x",d?le(d):"0x",s?le(s):"0x",r??"0x",i?le(i):"0x",R??"0x",h,x,...Jt(e,t)])])}function br(e,t){const{chainId:n,gas:o,nonce:s,to:a,value:r,maxFeePerBlobGas:i,maxFeePerGas:d,maxPriorityFeePerGas:T,accessList:B,data:R}=e;dr(e);let h=e.blobVersionedHashes,x=e.sidecars;if(e.blobs&&(typeof h>"u"||typeof x>"u")){const V=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(pe=>ft(pe)),X=e.kzg,fe=Io({blobs:V,kzg:X});if(typeof h>"u"&&(h=Va({commitments:fe})),typeof x>"u"){const pe=Po({blobs:V,commitments:fe,kzg:X});x=ja({blobs:V,commitments:fe,proofs:pe})}}const m=pn(B),C=[le(n),s?le(s):"0x",T?le(T):"0x",d?le(d):"0x",o?le(o):"0x",a??"0x",r?le(r):"0x",R??"0x",m,i?le(i):"0x",h??[],...Jt(e,t)],L=[],ke=[],N=[];if(x)for(let V=0;V<x.length;V++){const{blob:X,commitment:fe,proof:pe}=x[V];L.push(X),ke.push(fe),N.push(pe)}return Et(["0x03",St(x?[C,L,ke,N]:C)])}function gr(e,t){const{chainId:n,gas:o,nonce:s,to:a,value:r,maxFeePerGas:i,maxPriorityFeePerGas:d,accessList:T,data:B}=e;Yn(e);const R=pn(T),h=[le(n),s?le(s):"0x",d?le(d):"0x",i?le(i):"0x",o?le(o):"0x",a??"0x",r?le(r):"0x",B??"0x",R,...Jt(e,t)];return Et(["0x02",St(h)])}function wr(e,t){const{chainId:n,gas:o,data:s,nonce:a,to:r,value:i,accessList:d,gasPrice:T}=e;ur(e);const B=pn(d),R=[le(n),a?le(a):"0x",T?le(T):"0x",o?le(o):"0x",r??"0x",i?le(i):"0x",s??"0x",B,...Jt(e,t)];return Et(["0x01",St(R)])}function yr(e,t){const{chainId:n=0,gas:o,data:s,nonce:a,to:r,value:i,gasPrice:d}=e;fr(e);let T=[a?le(a):"0x",d?le(d):"0x",o?le(o):"0x",r??"0x",i?le(i):"0x",s??"0x"];if(t){const B=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+t.v-27n);const x=27n+(t.v===27n?0n:1n);if(t.v!==x)throw new wa({v:t.v});return x})(),R=cn(t.r),h=cn(t.s);T=[...T,le(B),R==="0x00"?"0x":R,h==="0x00"?"0x":h]}else n>0&&(T=[...T,le(n),"0x","0x"]);return St(T)}function Jt(e,t){const n=t??e,{v:o,yParity:s}=n;if(typeof n.r>"u")return[];if(typeof n.s>"u")return[];if(typeof o>"u"&&typeof s>"u")return[];const a=cn(n.r),r=cn(n.s);return[typeof s=="number"?s?le(1):"0x":o===0n?"0x":o===1n?le(1):o===27n?"0x":le(1),a==="0x00"?"0x":a,r==="0x00"?"0x":r]}const vr={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},kr={block:ta({format(e){return{transactions:e.transactions?.map(n=>{if(typeof n=="string")return n;const o=Pn(n);return o.typeHex==="0x7e"&&(o.isSystemTx=n.isSystemTx,o.mint=n.mint?Lt(n.mint):void 0,o.sourceHash=n.sourceHash,o.type="deposit"),o}),stateRoot:e.stateRoot}}}),transaction:Zs({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Lt(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:aa({format(e){return{l1GasPrice:e.l1GasPrice?Lt(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Lt(e.l1GasUsed):null,l1Fee:e.l1Fee?Lt(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function Ar(e,t){return Er(e)?xr(e):mr(e,t)}const Tr={transaction:Ar};function xr(e){Sr(e);const{sourceHash:t,data:n,from:o,gas:s,isSystemTx:a,mint:r,to:i,value:d}=e,T=[t,o,i??"0x",r?Ot(r):"0x",d?Ot(d):"0x",s?Ot(s):"0x",a?"0x1":"0x",n??"0x"];return Et(["0x7e",St(T)])}function Er(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function Sr(e){const{from:t,to:n}=e;if(t&&!Re(t))throw new ct({address:t});if(n&&!Re(n))throw new ct({address:n})}const mn={blockTime:2e3,contracts:vr,formatters:kr,serializers:Tr},Nr=ut({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:250,rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),Cr=ut({id:43114,name:"Avalanche",blockTime:1700,nativeCurrency:{decimals:18,name:"Avalanche",symbol:"AVAX"},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},blockExplorers:{default:{name:"SnowTrace",url:"https://snowtrace.io",apiUrl:"https://api.snowtrace.io"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}}}),Xt=1,ts=ut({...mn,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...mn.contracts,disputeGameFactory:{[Xt]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Xt]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Xt]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Xt]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:Xt});({...ts});const Br=ut({id:56,name:"BNB Smart Chain",blockTime:750,nativeCurrency:{decimals:18,name:"BNB",symbol:"BNB"},rpcUrls:{default:{http:["https://56.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com",apiUrl:"https://api.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}}});function jn(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}class Ir extends ue{constructor({docsPath:t}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
|
|
83
|
-
`),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}}function
|
|
84
|
-
`),{name:"AbiEncodingArrayLengthMismatchError"})}}class Dr extends ue{constructor({expectedSize:t,value:n}){super(`Size of bytes "${n}" (bytes${
|
|
77
|
+
选择要操作的代币:`,viewBalancesEmpty:"💰 您的钱包在此链上没有任何代币。",viewBalancesFetchError:"获取余额时遇到错误,请重试。",buttonSendToken:"发送{symbol}",buttonSwapToken:"兑换{symbol}",buttonBuyMoreToken:"购买更多{symbol}",actionSendNativeLabel:"发送原生代币",actionSendNativeDesc:"发送原生代币(ETH、BNB、MATIC 等)到某个地址",actionSendTokenLabel:"发送代币(ERC20)",actionSendTokenDesc:"将 ERC20 代币发送到某个地址",actionSwapTokenLabel:"兑换代币",actionSwapTokenDesc:"将一种代币兑换为另一种代币",actionApproveTokenLabel:"授权代币",actionApproveTokenDesc:"授权某地址使用您的代币",actionWrapNativeLabel:"包装原生代币",actionWrapNativeDesc:"包装原生代币(ETH → WETH)",actionUnwrapNativeLabel:"解包原生代币",actionUnwrapNativeDesc:"解包原生代币(WETH → ETH)",actionSendNftLabel:"发送 NFT",actionSendNftDesc:"将 ERC721 或 ERC1155 NFT 转移到另一个地址",fieldToAddress:"收款地址",fieldAmount:"数量",fieldTokenContract:"代币合约",fieldTokenSymbol:"代币符号",fieldDecimals:"小数位数",fieldTokenIn:"源代币",fieldTokenInSymbol:"源代币符号",fieldTokenOut:"目标代币",fieldTokenOutSymbol:"目标代币符号",fieldTokenInDecimals:"源代币小数位",fieldTokenOutDecimals:"目标代币小数位",fieldSpenderAddress:"授权地址",fieldAmountUnlimited:"数量(留空 = 无限授权)",fieldNftContract:"NFT 合约",fieldTokenId:"Token ID",fieldTokenStandard:"代币标准",fieldNftName:"NFT 名称",formMustBePositiveInteger:"必须是正整数",formAmountExceedsNft:"数量不能超过可用余额 {max}"}};function mo(e,t){return po[t]?.[e]??po.en[e]??e}function Gs(e,t){return e.replace(/\{(\w+)\}/g,(n,o)=>t[o]??`{${o}}`)}const ho=ne.createContext(void 0),Ys=({children:e,initialLanguage:t="en"})=>{const[n,o]=ne.useState(t);ne.useEffect(()=>{t&&o(t)},[t]);const s=ne.useCallback(r=>mo(r,n),[n]),a=ne.useCallback((r,i)=>Gs(mo(r,n),i),[n]);return F.jsx(ho.Provider,{value:{language:n,setLanguage:o,t:s,ti:a},children:e})},xn=()=>{const e=ne.useContext(ho);if(!e)throw new Error("useLanguage must be used within a LanguageProvider");return e},Js=ne.memo(({onClick:e})=>{const{t}=xn(),n=o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),e())};return F.jsx("button",{className:"chat-button",onClick:e,onKeyDown:n,"aria-label":t("openChat"),title:t("openChatTitle"),type:"button",children:F.jsx("img",{src:Vs,width:56,height:56,alt:"Ask AI"})})});function ut(e){const t={formatters:void 0,fees:void 0,serializers:void 0,...e};function n(o){return s=>{const a=typeof s=="function"?s(o):s,r={...o,...a};return Object.assign(r,{extend:n(r)})}}return Object.assign(t,{extend:n(t)})}const go="2.45.1";let In={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,version:`viem@${go}`};class ue extends Error{constructor(t,n={}){const o=n.cause instanceof ue?n.cause.details:n.cause?.message?n.cause.message:n.details,s=n.cause instanceof ue&&n.cause.docsPath||n.docsPath,a=In.getDocsUrl?.({...n,docsPath:s}),r=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...a?[`Docs: ${a}`]:[],...o?[`Details: ${o}`]:[],...In.version?[`Version: ${In.version}`]:[]].join(`
|
|
78
|
+
`);super(r,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=o,this.docsPath=s,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=go}walk(t){return wo(this,t)}}function wo(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?wo(e.cause,t):t?null:e}class Cn extends ue{constructor({max:t,min:n,signed:o,size:s,value:a}){super(`Number "${a}" is not in safe ${s?`${s*8}-bit ${o?"signed":"unsigned"} `:""}integer range ${t?`(${n} to ${t})`:`(above ${n})`}`,{name:"IntegerOutOfRangeError"})}}class zs extends ue{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function Dt(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function Je(e){return Dt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function cn(e,{dir:t="left"}={}){let n=typeof e=="string"?e.replace("0x",""):e,o=0;for(let s=0;s<n.length-1&&n[t==="left"?s:n.length-s-1].toString()==="0";s++)o++;return n=t==="left"?n.slice(o):n.slice(0,n.length-o),typeof e=="string"?(n.length===1&&t==="right"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}class bo extends ue{constructor({offset:t,position:n,size:o}){super(`Slice ${n==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${o}).`,{name:"SliceOffsetOutOfBoundsError"})}}class yo extends ue{constructor({size:t,targetSize:n,type:o}){super(`${o.charAt(0).toUpperCase()}${o.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`,{name:"SizeExceedsPaddingSizeError"})}}function Ot(e,{dir:t,size:n=32}={}){return typeof e=="string"?bt(e,{dir:t,size:n}):js(e,{dir:t,size:n})}function bt(e,{dir:t,size:n=32}={}){if(n===null)return e;const o=e.replace("0x","");if(o.length>n*2)throw new yo({size:Math.ceil(o.length/2),targetSize:n,type:"hex"});return`0x${o[t==="right"?"padEnd":"padStart"](n*2,"0")}`}function js(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new yo({size:e.length,targetSize:n,type:"bytes"});const o=new Uint8Array(n);for(let s=0;s<n;s++){const a=t==="right";o[a?s:n-s-1]=e[a?s:e.length-s-1]}return o}const qs=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ut(e,t={}){return typeof e=="number"||typeof e=="bigint"?le(e,t):typeof e=="string"?vo(e,t):typeof e=="boolean"?Ao(e,t):ft(e,t)}function Ao(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(Rt(n,{size:t.size}),Ot(n,{size:t.size})):n}function ft(e,t={}){let n="";for(let s=0;s<e.length;s++)n+=qs[e[s]];const o=`0x${n}`;return typeof t.size=="number"?(Rt(o,{size:t.size}),Ot(o,{dir:"right",size:t.size})):o}function le(e,t={}){const{signed:n,size:o}=t,s=BigInt(e);let a;o?n?a=(1n<<BigInt(o)*8n-1n)-1n:a=2n**(BigInt(o)*8n)-1n:typeof e=="number"&&(a=BigInt(Number.MAX_SAFE_INTEGER));const r=typeof a=="bigint"&&n?-a-1n:0;if(a&&s>a||s<r){const d=typeof e=="bigint"?"n":"";throw new Cn({max:a?`${a}${d}`:void 0,min:`${r}${d}`,signed:n,size:o,value:`${e}${d}`})}const i=`0x${(n&&s<0?(1n<<BigInt(o*8))+BigInt(s):s).toString(16)}`;return o?Ot(i,{size:o}):i}const Qs=new TextEncoder;function vo(e,t={}){const n=Qs.encode(e);return ft(n,t)}const Xs=new TextEncoder;function Bn(e,t={}){return typeof e=="number"||typeof e=="bigint"?Zs(e,t):typeof e=="boolean"?Ks(e,t):Dt(e)?Et(e,t):To(e,t)}function Ks(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),typeof t.size=="number"?(Rt(n,{size:t.size}),Ot(n,{size:t.size})):n}const pt={zero:48,nine:57,A:65,F:70,a:97,f:102};function ko(e){if(e>=pt.zero&&e<=pt.nine)return e-pt.zero;if(e>=pt.A&&e<=pt.F)return e-(pt.A-10);if(e>=pt.a&&e<=pt.f)return e-(pt.a-10)}function Et(e,t={}){let n=e;t.size&&(Rt(n,{size:t.size}),n=Ot(n,{dir:"right",size:t.size}));let o=n.slice(2);o.length%2&&(o=`0${o}`);const s=o.length/2,a=new Uint8Array(s);for(let r=0,i=0;r<s;r++){const d=ko(o.charCodeAt(i++)),T=ko(o.charCodeAt(i++));if(d===void 0||T===void 0)throw new ue(`Invalid byte sequence ("${o[i-2]}${o[i-1]}" in "${o}").`);a[r]=d*16+T}return a}function Zs(e,t){const n=le(e,t);return Et(n)}function To(e,t={}){const n=Xs.encode(e);return typeof t.size=="number"?(Rt(n,{size:t.size}),Ot(n,{dir:"right",size:t.size})):n}function Rt(e,{size:t}){if(Je(e)>t)throw new zs({givenSize:Je(e),maxSize:t})}function Mt(e,t={}){const{signed:n}=t;t.size&&Rt(e,{size:t.size});const o=BigInt(e);if(!n)return o;const s=(e.length-2)/2,a=(1n<<BigInt(s)*8n-1n)-1n;return o<=a?o:o-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function ln(e,t={}){const n=Mt(e,t),o=Number(n);if(!Number.isSafeInteger(o))throw new Cn({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:t.signed,size:t.size,value:`${n}n`});return o}function Nn(e,t){return({exclude:n,format:o})=>({exclude:n,format:(s,a)=>{const r=t(s,a);if(n)for(const i of n)delete r[i];return{...r,...o(s,a)}},type:e})}const Eo={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Fn(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?ln(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?ln(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?Eo[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=$s(e.authorizationList)),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof n.v=="bigint"){if(n.v===0n||n.v===27n)return 0;if(n.v===1n||n.v===28n)return 1;if(n.v>=35n)return n.v%2n===0n?1:0}})(),n.type==="legacy"&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),n.type==="eip2930"&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),n.type==="eip1559"&&delete n.maxFeePerBlobGas,n}const _s=Nn("transaction",Fn);function $s(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function ea(e,t){const n=(e.transactions??[]).map(o=>typeof o=="string"?o:Fn(o));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const ta=Nn("block",ea);function na(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):e.blockTimestamp===null?null:void 0,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}const oa={"0x0":"reverted","0x1":"success"};function sa(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(o=>na(o)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?ln(e.transactionIndex):null,status:e.status?oa[e.status]:null,type:e.type?Eo[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const aa=Nn("transactionReceipt",sa),ra={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function ia(e,t){const n={};return typeof e.authorizationList<"u"&&(n.authorizationList=ca(e.authorizationList)),typeof e.accessList<"u"&&(n.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(n.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?n.blobs=e.blobs.map(o=>ft(o)):n.blobs=e.blobs),typeof e.data<"u"&&(n.data=e.data),e.account&&(n.from=e.account.address),typeof e.from<"u"&&(n.from=e.from),typeof e.gas<"u"&&(n.gas=le(e.gas)),typeof e.gasPrice<"u"&&(n.gasPrice=le(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(n.maxFeePerBlobGas=le(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(n.maxFeePerGas=le(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(n.maxPriorityFeePerGas=le(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(n.nonce=le(e.nonce)),typeof e.to<"u"&&(n.to=e.to),typeof e.type<"u"&&(n.type=ra[e.type]),typeof e.value<"u"&&(n.value=le(e.value)),n}function ca(e){return e.map(t=>({address:t.address,r:t.r?le(BigInt(t.r)):t.r,s:t.s?le(BigInt(t.s)):t.s,chainId:le(t.chainId),nonce:le(t.nonce),...typeof t.yParity<"u"?{yParity:le(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:le(t.v)}:{}}))}const Lt=2n**256n-1n;function Ht(e){return typeof e[0]=="string"?St(e):la(e)}function la(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let o=0;for(const s of e)n.set(s,o),o+=s.length;return n}function St(e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}class So extends ue{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class da extends ue{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class ua extends ue{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const fa={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ua({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new da({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new So({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new So({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function xo(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(fa);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function xt(e,t="hex"){const n=Io(e),o=xo(new Uint8Array(n.length));return n.encode(o),t==="hex"?ft(o.bytes):o.bytes}function Io(e){return Array.isArray(e)?pa(e.map(t=>Io(t))):ma(e)}function pa(e){const t=e.reduce((s,a)=>s+a.length,0),n=Co(t);return{length:t<=55?1+t:1+n+t,encode(s){t<=55?s.pushByte(192+t):(s.pushByte(247+n),n===1?s.pushUint8(t):n===2?s.pushUint16(t):n===3?s.pushUint24(t):s.pushUint32(t));for(const{encode:a}of e)a(s)}}}function ma(e){const t=typeof e=="string"?Et(e):e,n=Co(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(s){t.length===1&&t[0]<128?s.pushBytes(t):t.length<=55?(s.pushByte(128+t.length),s.pushBytes(t)):(s.pushByte(183+n),n===1?s.pushUint8(t.length):n===2?s.pushUint16(t.length):n===3?s.pushUint24(t.length):s.pushUint32(t.length),s.pushBytes(t))}}}function Co(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new ue("Length is too large.")}const ha={gwei:9,wei:18},ga={ether:-9,wei:9};function Ue(e,t){let n=e.toString();const o=n.startsWith("-");o&&(n=n.slice(1)),n=n.padStart(t,"0");let[s,a]=[n.slice(0,n.length-t),n.slice(n.length-t)];return a=a.replace(/(0+)$/,""),`${o?"-":""}${s||"0"}${a?`.${a}`:""}`}function wa(e,t="wei"){return Ue(e,ha[t])}function It(e,t="wei"){return Ue(e,ga[t])}function Bo(e){const t=Object.entries(e).map(([o,s])=>s===void 0||s===!1?null:[o,s]).filter(Boolean),n=t.reduce((o,[s])=>Math.max(o,s.length),0);return t.map(([o,s])=>` ${`${o}:`.padEnd(n+1)} ${s}`).join(`
|
|
79
|
+
`)}class ba extends ue{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class ya extends ue{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Bo(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class Aa extends ue{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function va(e){if(!e||e.length===0)return[];const t=[];for(const n of e){const{chainId:o,nonce:s,...a}=n,r=n.address;t.push([o?Ut(o):"0x",r,s?Ut(s):"0x",...Xt({},a)])}return t}function No(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),o=typeof e.blobs[0]=="string"?e.blobs.map(a=>Et(a)):e.blobs,s=[];for(const a of o)s.push(Uint8Array.from(t.blobToKzgCommitment(a)));return n==="bytes"?s:s.map(a=>ft(a))}function Fo(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),o=typeof e.blobs[0]=="string"?e.blobs.map(r=>Et(r)):e.blobs,s=typeof e.commitments[0]=="string"?e.commitments.map(r=>Et(r)):e.commitments,a=[];for(let r=0;r<o.length;r++){const i=o[r],d=s[r];a.push(Uint8Array.from(t.computeBlobKzgProof(i,d)))}return n==="bytes"?a:a.map(r=>ft(r))}function ka(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Po(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function zt(e,...t){if(!ka(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function dn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Do(e,t){zt(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ta(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function jt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Pn(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function it(e,t){return e<<32-t|e>>>t}const Ea=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Sa(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function xa(e){for(let t=0;t<e.length;t++)e[t]=Sa(e[t]);return e}const Oo=Ea?e=>e:xa;function Ia(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Dn(e){return typeof e=="string"&&(e=Ia(e)),zt(e),e}class Uo{}function Ro(e){const t=o=>e().update(Dn(o)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ca(e,t,n,o){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,o);const s=BigInt(32),a=BigInt(4294967295),r=Number(n>>s&a),i=Number(n&a),d=o?4:0,T=o?0:4;e.setUint32(t+d,r,o),e.setUint32(t+T,i,o)}function Ba(e,t,n){return e&t^~e&n}function Na(e,t,n){return e&t^e&n^t&n}class Fa extends Uo{constructor(t,n,o,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=o,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Pn(this.buffer)}update(t){dn(this),t=Dn(t),zt(t);const{view:n,buffer:o,blockLen:s}=this,a=t.length;for(let r=0;r<a;){const i=Math.min(s-this.pos,a-r);if(i===s){const d=Pn(t);for(;s<=a-r;r+=s)this.process(d,r);continue}o.set(t.subarray(r,r+i),this.pos),this.pos+=i,r+=i,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){dn(this),Do(t,this),this.finished=!0;const{buffer:n,view:o,blockLen:s,isLE:a}=this;let{pos:r}=this;n[r++]=128,jt(this.buffer.subarray(r)),this.padOffset>s-r&&(this.process(o,0),r=0);for(let H=r;H<s;H++)n[H]=0;Ca(o,s-8,BigInt(this.length*8),a),this.process(o,0);const i=Pn(t),d=this.outputLen;if(d%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const T=d/4,B=this.get();if(T>B.length)throw new Error("_sha2: outputLen bigger than state");for(let H=0;H<T;H++)i.setUint32(4*H,B[H],a)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const o=t.slice(0,n);return this.destroy(),o}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:n,buffer:o,length:s,finished:a,destroyed:r,pos:i}=this;return t.destroyed=r,t.finished=a,t.length=s,t.pos=i,s%n&&t.buffer.set(o),t}clone(){return this._cloneInto()}}const yt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),un=BigInt(2**32-1),Mo=BigInt(32);function Pa(e,t=!1){return t?{h:Number(e&un),l:Number(e>>Mo&un)}:{h:Number(e>>Mo&un)|0,l:Number(e&un)|0}}function Da(e,t=!1){const n=e.length;let o=new Uint32Array(n),s=new Uint32Array(n);for(let a=0;a<n;a++){const{h:r,l:i}=Pa(e[a],t);[o[a],s[a]]=[r,i]}return[o,s]}const Oa=(e,t,n)=>e<<n|t>>>32-n,Ua=(e,t,n)=>t<<n|e>>>32-n,Ra=(e,t,n)=>t<<n-32|e>>>64-n,Ma=(e,t,n)=>e<<n-32|t>>>64-n,La=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),At=new Uint32Array(64);class Ha extends Fa{constructor(t=32){super(64,t,8,!1),this.A=yt[0]|0,this.B=yt[1]|0,this.C=yt[2]|0,this.D=yt[3]|0,this.E=yt[4]|0,this.F=yt[5]|0,this.G=yt[6]|0,this.H=yt[7]|0}get(){const{A:t,B:n,C:o,D:s,E:a,F:r,G:i,H:d}=this;return[t,n,o,s,a,r,i,d]}set(t,n,o,s,a,r,i,d){this.A=t|0,this.B=n|0,this.C=o|0,this.D=s|0,this.E=a|0,this.F=r|0,this.G=i|0,this.H=d|0}process(t,n){for(let H=0;H<16;H++,n+=4)At[H]=t.getUint32(n,!1);for(let H=16;H<64;H++){const h=At[H-15],E=At[H-2],m=it(h,7)^it(h,18)^h>>>3,C=it(E,17)^it(E,19)^E>>>10;At[H]=C+At[H-7]+m+At[H-16]|0}let{A:o,B:s,C:a,D:r,E:i,F:d,G:T,H:B}=this;for(let H=0;H<64;H++){const h=it(i,6)^it(i,11)^it(i,25),E=B+h+Ba(i,d,T)+La[H]+At[H]|0,C=(it(o,2)^it(o,13)^it(o,22))+Na(o,s,a)|0;B=T,T=d,d=i,i=r+E|0,r=a,a=s,s=o,o=E+C|0}o=o+this.A|0,s=s+this.B|0,a=a+this.C|0,r=r+this.D|0,i=i+this.E|0,d=d+this.F|0,T=T+this.G|0,B=B+this.H|0,this.set(o,s,a,r,i,d,T,B)}roundClean(){jt(At)}destroy(){this.set(0,0,0,0,0,0,0,0),jt(this.buffer)}}const Wa=Ro(()=>new Ha);function Va(e,t){return Wa(Dt(e,{strict:!1})?Bn(e):e)}function Ga(e){const{commitment:t,version:n=1}=e,o=e.to??(typeof t=="string"?"hex":"bytes"),s=Va(t);return s.set([n],0),o==="bytes"?s:ft(s)}function Ya(e){const{commitments:t,version:n}=e,o=e.to??(typeof t[0]=="string"?"hex":"bytes"),s=[];for(const a of t)s.push(Ga({commitment:a,to:o,version:n}));return s}const Lo=6,Ho=32,On=4096,Wo=Ho*On,Vo=Wo*Lo-1-1*On*Lo,Go=1;class Ja extends ue{constructor({maxSize:t,size:n}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${n} bytes`],name:"BlobSizeTooLargeError"})}}class Yo extends ue{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class za extends ue{constructor({hash:t,size:n}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${n}`],name:"InvalidVersionedHashSizeError"})}}class ja extends ue{constructor({hash:t,version:n}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${Go}`,`Received: ${n}`],name:"InvalidVersionedHashVersionError"})}}function qa(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),n=typeof e.data=="string"?Et(e.data):e.data,o=Je(n);if(!o)throw new Yo;if(o>Vo)throw new Ja({maxSize:Vo,size:o});const s=[];let a=!0,r=0;for(;a;){const i=xo(new Uint8Array(Wo));let d=0;for(;d<On;){const T=n.slice(r,r+(Ho-1));if(i.pushByte(0),i.pushBytes(T),T.length<31){i.pushByte(128),a=!1;break}d++,r+=31}s.push(i)}return t==="bytes"?s.map(i=>i.bytes):s.map(i=>ft(i.bytes))}function Qa(e){const{data:t,kzg:n,to:o}=e,s=e.blobs??qa({data:t,to:o}),a=e.commitments??No({blobs:s,kzg:n,to:o}),r=e.proofs??Fo({blobs:s,commitments:a,kzg:n,to:o}),i=[];for(let d=0;d<s.length;d++)i.push({blob:s[d],commitment:a[d],proof:r[d]});return i}class ct extends ue{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class fn extends ue{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Wt extends ue{constructor({cause:t,message:n}={}){const o=n?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${o?`with reason: ${o}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}}Object.defineProperty(Wt,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(Wt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class Ct extends ue{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${It(n)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(Ct,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class Un extends ue{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${It(n)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}}Object.defineProperty(Un,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class Rn extends ue{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}}Object.defineProperty(Rn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class Mn extends ue{constructor({cause:t,nonce:n}={}){super([`Nonce provided for the transaction ${n?`(${n}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
|
|
80
|
+
`),{cause:t,name:"NonceTooLowError"})}}Object.defineProperty(Mn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class Ln extends ue{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}}Object.defineProperty(Ln,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class Hn extends ue{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
|
|
81
|
+
`),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(Hn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class Wn extends ue{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(Wn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class Vn extends ue{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(Vn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class Gn extends ue{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(Gn,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class qt extends ue{constructor({cause:t,maxPriorityFeePerGas:n,maxFeePerGas:o}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${n?` = ${It(n)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${o?` = ${It(o)} gwei`:""}).`].join(`
|
|
82
|
+
`),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(qt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Jo extends ue{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}class zo extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const n=super.get(t);return super.has(t)&&n!==void 0&&(this.delete(t),super.set(t,n)),n}set(t,n){if(super.set(t,n),this.maxSize&&this.size>this.maxSize){const o=this.keys().next().value;o&&this.delete(o)}return this}}const Xa=BigInt(0),Qt=BigInt(1),Ka=BigInt(2),Za=BigInt(7),_a=BigInt(256),$a=BigInt(113),jo=[],qo=[],Qo=[];for(let e=0,t=Qt,n=1,o=0;e<24;e++){[n,o]=[o,(2*n+3*o)%5],jo.push(2*(5*o+n)),qo.push((e+1)*(e+2)/2%64);let s=Xa;for(let a=0;a<7;a++)t=(t<<Qt^(t>>Za)*$a)%_a,t&Ka&&(s^=Qt<<(Qt<<BigInt(a))-Qt);Qo.push(s)}const Xo=Da(Qo,!0),er=Xo[0],tr=Xo[1],Ko=(e,t,n)=>n>32?Ra(e,t,n):Oa(e,t,n),Zo=(e,t,n)=>n>32?Ma(e,t,n):Ua(e,t,n);function nr(e,t=24){const n=new Uint32Array(10);for(let o=24-t;o<24;o++){for(let r=0;r<10;r++)n[r]=e[r]^e[r+10]^e[r+20]^e[r+30]^e[r+40];for(let r=0;r<10;r+=2){const i=(r+8)%10,d=(r+2)%10,T=n[d],B=n[d+1],H=Ko(T,B,1)^n[i],h=Zo(T,B,1)^n[i+1];for(let E=0;E<50;E+=10)e[r+E]^=H,e[r+E+1]^=h}let s=e[2],a=e[3];for(let r=0;r<24;r++){const i=qo[r],d=Ko(s,a,i),T=Zo(s,a,i),B=jo[r];s=e[B],a=e[B+1],e[B]=d,e[B+1]=T}for(let r=0;r<50;r+=10){for(let i=0;i<10;i++)n[i]=e[r+i];for(let i=0;i<10;i++)e[r+i]^=~n[(i+2)%10]&n[(i+4)%10]}e[0]^=er[o],e[1]^=tr[o]}jt(n)}class Yn extends Uo{constructor(t,n,o,s=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=o,this.enableXOF=s,this.rounds=a,Po(o),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Ta(this.state)}clone(){return this._cloneInto()}keccak(){Oo(this.state32),nr(this.state32,this.rounds),Oo(this.state32),this.posOut=0,this.pos=0}update(t){dn(this),t=Dn(t),zt(t);const{blockLen:n,state:o}=this,s=t.length;for(let a=0;a<s;){const r=Math.min(n-this.pos,s-a);for(let i=0;i<r;i++)o[this.pos++]^=t[a++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:o,blockLen:s}=this;t[o]^=n,(n&128)!==0&&o===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){dn(this,!1),zt(t),this.finish();const n=this.state,{blockLen:o}=this;for(let s=0,a=t.length;s<a;){this.posOut>=o&&this.keccak();const r=Math.min(o-this.posOut,a-s);t.set(n.subarray(this.posOut,this.posOut+r),s),this.posOut+=r,s+=r}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Po(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Do(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,jt(this.state)}_cloneInto(t){const{blockLen:n,suffix:o,outputLen:s,rounds:a,enableXOF:r}=this;return t||(t=new Yn(n,o,s,r,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=o,t.outputLen=s,t.enableXOF=r,t.destroyed=this.destroyed,t}}const or=(e,t,n)=>Ro(()=>new Yn(t,e,n)),sr=or(1,136,256/8);function _o(e,t){const n=t||"hex",o=sr(Dt(e,{strict:!1})?Bn(e):e);return n==="bytes"?o:Ut(o)}const Jn=new zo(8192);function ar(e,t){if(Jn.has(`${e}.${t}`))return Jn.get(`${e}.${t}`);const n=e.substring(2).toLowerCase(),o=_o(To(n),"bytes"),s=n.split("");for(let r=0;r<40;r+=2)o[r>>1]>>4>=8&&s[r]&&(s[r]=s[r].toUpperCase()),(o[r>>1]&15)>=8&&s[r+1]&&(s[r+1]=s[r+1].toUpperCase());const a=`0x${s.join("")}`;return Jn.set(`${e}.${t}`,a),a}const rr=/^0x[a-fA-F0-9]{40}$/,zn=new zo(8192);function He(e,t){const{strict:n=!0}=t??{},o=`${e}.${n}`;if(zn.has(o))return zn.get(o);const s=rr.test(e)?e.toLowerCase()===e?!0:n?ar(e)===e:!0:!1;return zn.set(o,s),s}function jn(e,t,n,{strict:o}={}){return Dt(e,{strict:!1})?cr(e,t,n,{strict:o}):ir(e,t,n,{strict:o})}function $o(e,t){if(typeof t=="number"&&t>0&&t>Je(e)-1)throw new bo({offset:t,position:"start",size:Je(e)})}function es(e,t,n){if(typeof t=="number"&&typeof n=="number"&&Je(e)!==n-t)throw new bo({offset:n,position:"end",size:Je(e)})}function ir(e,t,n,{strict:o}={}){$o(e,t);const s=e.slice(t,n);return o&&es(s,t,n),s}function cr(e,t,n,{strict:o}={}){$o(e,t);const s=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return o&&es(s,t,n),s}function lr(e){const{authorizationList:t}=e;if(t)for(const n of t){const{chainId:o}=n,s=n.address;if(!He(s))throw new ct({address:s});if(o<0)throw new fn({chainId:o})}qn(e)}function dr(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Yo;for(const n of t){const o=Je(n),s=ln(jn(n,0,1));if(o!==32)throw new za({hash:n,size:o});if(s!==Go)throw new ja({hash:n,version:s})}}qn(e)}function qn(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:o,to:s}=e;if(t<=0)throw new fn({chainId:t});if(s&&!He(s))throw new ct({address:s});if(o&&o>Lt)throw new Ct({maxFeePerGas:o});if(n&&o&&n>o)throw new qt({maxFeePerGas:o,maxPriorityFeePerGas:n})}function ur(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:o,maxFeePerGas:s,to:a}=e;if(t<=0)throw new fn({chainId:t});if(a&&!He(a))throw new ct({address:a});if(n||s)throw new ue("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(o&&o>Lt)throw new Ct({maxFeePerGas:o})}function fr(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:o,maxFeePerGas:s,to:a}=e;if(a&&!He(a))throw new ct({address:a});if(typeof t<"u"&&t<=0)throw new fn({chainId:t});if(n||s)throw new ue("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(o&&o>Lt)throw new Ct({maxFeePerGas:o})}function pr(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new ya({transaction:e})}function pn(e){if(!e||e.length===0)return[];const t=[];for(let n=0;n<e.length;n++){const{address:o,storageKeys:s}=e[n];for(let a=0;a<s.length;a++)if(s[a].length-2!==64)throw new Aa({storageKey:s[a]});if(!He(o,{strict:!1}))throw new ct({address:o});t.push([o,s])}return t}function mr(e,t){const n=pr(e);return n==="eip1559"?wr(e,t):n==="eip2930"?br(e,t):n==="eip4844"?gr(e,t):n==="eip7702"?hr(e,t):yr(e,t)}function hr(e,t){const{authorizationList:n,chainId:o,gas:s,nonce:a,to:r,value:i,maxFeePerGas:d,maxPriorityFeePerGas:T,accessList:B,data:H}=e;lr(e);const h=pn(B),E=va(n);return St(["0x04",xt([le(o),a?le(a):"0x",T?le(T):"0x",d?le(d):"0x",s?le(s):"0x",r??"0x",i?le(i):"0x",H??"0x",h,E,...Xt(e,t)])])}function gr(e,t){const{chainId:n,gas:o,nonce:s,to:a,value:r,maxFeePerBlobGas:i,maxFeePerGas:d,maxPriorityFeePerGas:T,accessList:B,data:H}=e;dr(e);let h=e.blobVersionedHashes,E=e.sidecars;if(e.blobs&&(typeof h>"u"||typeof E>"u")){const Y=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(pe=>ft(pe)),K=e.kzg,fe=No({blobs:Y,kzg:K});if(typeof h>"u"&&(h=Ya({commitments:fe})),typeof E>"u"){const pe=Fo({blobs:Y,commitments:fe,kzg:K});E=Qa({blobs:Y,commitments:fe,proofs:pe})}}const m=pn(B),C=[le(n),s?le(s):"0x",T?le(T):"0x",d?le(d):"0x",o?le(o):"0x",a??"0x",r?le(r):"0x",H??"0x",m,i?le(i):"0x",h??[],...Xt(e,t)],M=[],ve=[],I=[];if(E)for(let Y=0;Y<E.length;Y++){const{blob:K,commitment:fe,proof:pe}=E[Y];M.push(K),ve.push(fe),I.push(pe)}return St(["0x03",xt(E?[C,M,ve,I]:C)])}function wr(e,t){const{chainId:n,gas:o,nonce:s,to:a,value:r,maxFeePerGas:i,maxPriorityFeePerGas:d,accessList:T,data:B}=e;qn(e);const H=pn(T),h=[le(n),s?le(s):"0x",d?le(d):"0x",i?le(i):"0x",o?le(o):"0x",a??"0x",r?le(r):"0x",B??"0x",H,...Xt(e,t)];return St(["0x02",xt(h)])}function br(e,t){const{chainId:n,gas:o,data:s,nonce:a,to:r,value:i,accessList:d,gasPrice:T}=e;ur(e);const B=pn(d),H=[le(n),a?le(a):"0x",T?le(T):"0x",o?le(o):"0x",r??"0x",i?le(i):"0x",s??"0x",B,...Xt(e,t)];return St(["0x01",xt(H)])}function yr(e,t){const{chainId:n=0,gas:o,data:s,nonce:a,to:r,value:i,gasPrice:d}=e;fr(e);let T=[a?le(a):"0x",d?le(d):"0x",o?le(o):"0x",r??"0x",i?le(i):"0x",s??"0x"];if(t){const B=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+t.v-27n);const E=27n+(t.v===27n?0n:1n);if(t.v!==E)throw new ba({v:t.v});return E})(),H=cn(t.r),h=cn(t.s);T=[...T,le(B),H==="0x00"?"0x":H,h==="0x00"?"0x":h]}else n>0&&(T=[...T,le(n),"0x","0x"]);return xt(T)}function Xt(e,t){const n=t??e,{v:o,yParity:s}=n;if(typeof n.r>"u")return[];if(typeof n.s>"u")return[];if(typeof o>"u"&&typeof s>"u")return[];const a=cn(n.r),r=cn(n.s);return[typeof s=="number"?s?le(1):"0x":o===0n?"0x":o===1n?le(1):o===27n?"0x":le(1),a==="0x00"?"0x":a,r==="0x00"?"0x":r]}const Ar={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},vr={block:ta({format(e){return{transactions:e.transactions?.map(n=>{if(typeof n=="string")return n;const o=Fn(n);return o.typeHex==="0x7e"&&(o.isSystemTx=n.isSystemTx,o.mint=n.mint?Mt(n.mint):void 0,o.sourceHash=n.sourceHash,o.type="deposit"),o}),stateRoot:e.stateRoot}}}),transaction:_s({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Mt(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:aa({format(e){return{l1GasPrice:e.l1GasPrice?Mt(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Mt(e.l1GasUsed):null,l1Fee:e.l1Fee?Mt(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function kr(e,t){return Sr(e)?Er(e):mr(e,t)}const Tr={transaction:kr};function Er(e){xr(e);const{sourceHash:t,data:n,from:o,gas:s,isSystemTx:a,mint:r,to:i,value:d}=e,T=[t,o,i??"0x",r?Ut(r):"0x",d?Ut(d):"0x",s?Ut(s):"0x",a?"0x1":"0x",n??"0x"];return St(["0x7e",xt(T)])}function Sr(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function xr(e){const{from:t,to:n}=e;if(t&&!He(t))throw new ct({address:t});if(n&&!He(n))throw new ct({address:n})}const mn={blockTime:2e3,contracts:Ar,formatters:vr,serializers:Tr},Ir=ut({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:250,rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),Cr=ut({id:43114,name:"Avalanche",blockTime:1700,nativeCurrency:{decimals:18,name:"Avalanche",symbol:"AVAX"},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},blockExplorers:{default:{name:"SnowTrace",url:"https://snowtrace.io",apiUrl:"https://api.snowtrace.io"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}}}),Kt=1,ts=ut({...mn,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...mn.contracts,disputeGameFactory:{[Kt]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Kt]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Kt]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Kt]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:Kt});({...ts});const Br=ut({id:56,name:"BNB Smart Chain",blockTime:750,nativeCurrency:{decimals:18,name:"BNB",symbol:"BNB"},rpcUrls:{default:{http:["https://56.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com",apiUrl:"https://api.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}}});function Qn(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}class Nr extends ue{constructor({docsPath:t}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
|
|
83
|
+
`),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}}function Xn(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new Lr(e.type);return`${e.name}(${ns(e.inputs,{includeName:t})})`}function ns(e,{includeName:t=!1}={}){return e?e.map(n=>Fr(n,{includeName:t})).join(t?", ":","):""}function Fr(e,{includeName:t}){return e.type.startsWith("tuple")?`(${ns(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}class Pr extends ue{constructor({expectedLength:t,givenLength:n,type:o}){super([`ABI encoding array length mismatch for type ${o}.`,`Expected length: ${t}`,`Given length: ${n}`].join(`
|
|
84
|
+
`),{name:"AbiEncodingArrayLengthMismatchError"})}}class Dr extends ue{constructor({expectedSize:t,value:n}){super(`Size of bytes "${n}" (bytes${Je(n)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class Or extends ue{constructor({expectedLength:t,givenLength:n}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${n}`].join(`
|
|
85
85
|
`),{name:"AbiEncodingLengthMismatchError"})}}class os extends ue{constructor(t,{docsPath:n}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
|
|
86
|
-
`),{docsPath:n,name:"AbiFunctionNotFoundError"})}}class
|
|
87
|
-
`),{docsPath:n,name:"InvalidAbiEncodingType"})}}class
|
|
88
|
-
`),{name:"InvalidArrayError"})}}class
|
|
89
|
-
`),{name:"InvalidDefinitionTypeError"})}}const
|
|
86
|
+
`),{docsPath:n,name:"AbiFunctionNotFoundError"})}}class Ur extends ue{constructor(t,n){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${Xn(t.abiItem)}\`, and`,`\`${n.type}\` in \`${Xn(n.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}class Rr extends ue{constructor(t,{docsPath:n}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
|
|
87
|
+
`),{docsPath:n,name:"InvalidAbiEncodingType"})}}class Mr extends ue{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
|
|
88
|
+
`),{name:"InvalidArrayError"})}}class Lr extends ue{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
|
|
89
|
+
`),{name:"InvalidDefinitionTypeError"})}}const Hr=e=>_o(Bn(e));function Wr(e){return Hr(e)}function Vr(e,t){return e.exec(t)?.groups}const ss=/^tuple(?<array>(\[(\d*)\])*)$/;function Kn(e){let t=e.type;if(ss.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let s=0;s<n;s++){const a=e.components[s];t+=Kn(a),s<n-1&&(t+=", ")}const o=Vr(ss,e.type);return t+=`)${o?.array||""}`,Kn({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function Zt(e){let t="";const n=e.length;for(let o=0;o<n;o++){const s=e[o];t+=Kn(s),o!==n-1&&(t+=", ")}return t}function Gr(e){return e.type==="function"?`function ${e.name}(${Zt(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${Zt(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${Zt(e.inputs)})`:e.type==="error"?`error ${e.name}(${Zt(e.inputs)})`:e.type==="constructor"?`constructor(${Zt(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}function Yr(e){let t=!0,n="",o=0,s="",a=!1;for(let r=0;r<e.length;r++){const i=e[r];if(["(",")",","].includes(i)&&(t=!0),i==="("&&o++,i===")"&&o--,!!t){if(o===0){if(i===" "&&["event","function",""].includes(s))s="";else if(s+=i,i===")"){a=!0;break}continue}if(i===" "){e[r-1]!==","&&n!==","&&n!==",("&&(n="",t=!1);continue}s+=i,n+=i}}if(!a)throw new ue("Unable to normalize signature.");return s}const Jr=e=>{const t=typeof e=="string"?e:Gr(e);return Yr(t)};function as(e){return Wr(Jr(e))}const rs=e=>jn(as(e),0,4),zr=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function jr(e,t){if(e.length!==t.length)throw new Or({expectedLength:e.length,givenLength:t.length});const n=qr({params:e,values:t}),o=_n(n);return o.length===0?"0x":o}function qr({params:e,values:t}){const n=[];for(let o=0;o<e.length;o++)n.push(Zn({param:e[o],value:t[o]}));return n}function Zn({param:e,value:t}){const n=ti(e.type);if(n){const[o,s]=n;return Xr(t,{length:o,param:{...e,type:s}})}if(e.type==="tuple")return ei(t,{param:e});if(e.type==="address")return Qr(t);if(e.type==="bool")return Zr(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const o=e.type.startsWith("int"),[,,s="256"]=zr.exec(e.type)??[];return _r(t,{signed:o,size:Number(s)})}if(e.type.startsWith("bytes"))return Kr(t,{param:e});if(e.type==="string")return $r(t);throw new Rr(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function _n(e){let t=0;for(let a=0;a<e.length;a++){const{dynamic:r,encoded:i}=e[a];r?t+=32:t+=Je(i)}const n=[],o=[];let s=0;for(let a=0;a<e.length;a++){const{dynamic:r,encoded:i}=e[a];r?(n.push(le(t+s,{size:32})),o.push(i),s+=Je(i)):n.push(i)}return Ht([...n,...o])}function Qr(e){if(!He(e))throw new ct({address:e});return{dynamic:!1,encoded:bt(e.toLowerCase())}}function Xr(e,{length:t,param:n}){const o=t===null;if(!Array.isArray(e))throw new Mr(e);if(!o&&e.length!==t)throw new Pr({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let s=!1;const a=[];for(let r=0;r<e.length;r++){const i=Zn({param:n,value:e[r]});i.dynamic&&(s=!0),a.push(i)}if(o||s){const r=_n(a);if(o){const i=le(a.length,{size:32});return{dynamic:!0,encoded:a.length>0?Ht([i,r]):i}}if(s)return{dynamic:!0,encoded:r}}return{dynamic:!1,encoded:Ht(a.map(({encoded:r})=>r))}}function Kr(e,{param:t}){const[,n]=t.type.split("bytes"),o=Je(e);if(!n){let s=e;return o%32!==0&&(s=bt(s,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Ht([bt(le(o,{size:32})),s])}}if(o!==Number.parseInt(n,10))throw new Dr({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:bt(e,{dir:"right"})}}function Zr(e){if(typeof e!="boolean")throw new ue(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:bt(Ao(e))}}function _r(e,{signed:t,size:n=256}){if(typeof n=="number"){const o=2n**(BigInt(n)-(t?1n:0n))-1n,s=t?-o-1n:0n;if(e>o||e<s)throw new Cn({max:o.toString(),min:s.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:le(e,{size:32,signed:t})}}function $r(e){const t=vo(e),n=Math.ceil(Je(t)/32),o=[];for(let s=0;s<n;s++)o.push(bt(jn(t,s*32,(s+1)*32),{dir:"right"}));return{dynamic:!0,encoded:Ht([bt(le(Je(t),{size:32})),...o])}}function ei(e,{param:t}){let n=!1;const o=[];for(let s=0;s<t.components.length;s++){const a=t.components[s],r=Array.isArray(e)?s:a.name,i=Zn({param:a,value:e[r]});o.push(i),i.dynamic&&(n=!0)}return{dynamic:n,encoded:n?_n(o):Ht(o.map(({encoded:s})=>s))}}function ti(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}const ni=as;function oi(e){const{abi:t,args:n=[],name:o}=e,s=Dt(o,{strict:!1}),a=t.filter(i=>s?i.type==="function"?rs(i)===o:i.type==="event"?ni(i)===o:!1:"name"in i&&i.name===o);if(a.length===0)return;if(a.length===1)return a[0];let r;for(const i of a){if(!("inputs"in i))continue;if(!n||n.length===0){if(!i.inputs||i.inputs.length===0)return i;continue}if(!i.inputs||i.inputs.length===0||i.inputs.length!==n.length)continue;if(n.every((T,B)=>{const H="inputs"in i&&i.inputs[B];return H?$n(T,H):!1})){if(r&&"inputs"in r&&r.inputs){const T=is(i.inputs,r.inputs,n);if(T)throw new Ur({abiItem:i,type:T[0]},{abiItem:r,type:T[1]})}r=i}}return r||a[0]}function $n(e,t){const n=typeof e,o=t.type;switch(o){case"address":return He(e,{strict:!1});case"bool":return n==="boolean";case"function":return n==="string";case"string":return n==="string";default:return o==="tuple"&&"components"in t?Object.values(t.components).every((s,a)=>n==="object"&&$n(Object.values(e)[a],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(o)?n==="number"||n==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(o)?n==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(o)?Array.isArray(e)&&e.every(s=>$n(s,{...t,type:o.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function is(e,t,n){for(const o in e){const s=e[o],a=t[o];if(s.type==="tuple"&&a.type==="tuple"&&"components"in s&&"components"in a)return is(s.components,a.components,n[o]);const r=[s.type,a.type];if(r.includes("address")&&r.includes("bytes20")?!0:r.includes("address")&&r.includes("string")?He(n[o],{strict:!1}):r.includes("address")&&r.includes("bytes")?He(n[o],{strict:!1}):!1)return r}}function cs(e){return e.reduce((t,{slot:n,value:o})=>`${t} ${n}: ${o}
|
|
90
90
|
`,"")}function si(e){return e.reduce((t,{address:n,...o})=>{let s=`${t} ${n}:
|
|
91
91
|
`;return o.nonce&&(s+=` nonce: ${o.nonce}
|
|
92
92
|
`),o.balance&&(s+=` balance: ${o.balance}
|
|
@@ -94,15 +94,15 @@ Select a token to interact with:`,viewBalancesEmpty:"💰 You don't have any tok
|
|
|
94
94
|
`),o.state&&(s+=` state:
|
|
95
95
|
`,s+=cs(o.state)),o.stateDiff&&(s+=` stateDiff:
|
|
96
96
|
`,s+=cs(o.stateDiff)),s},` State Override:
|
|
97
|
-
`).slice(0,-1)}class ai extends ue{constructor(t,{account:n,docsPath:o,chain:s,data:a,gas:r,gasPrice:i,maxFeePerGas:d,maxPriorityFeePerGas:T,nonce:B,to:
|
|
98
|
-
${si(x)}`),super(t.shortMessage,{cause:t,docsPath:o,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",C].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}function ri(e,t){const n=(e.details||"").toLowerCase(),o=e instanceof ue?e.walk(s=>s?.code===$t.code):e;return o instanceof ue?new $t({cause:e,message:o.details}):$t.nodeMessage.test(n)?new $t({cause:e,message:e.details}):Ct.nodeMessage.test(n)?new Ct({cause:e,maxFeePerGas:t?.maxFeePerGas}):On.nodeMessage.test(n)?new On({cause:e,maxFeePerGas:t?.maxFeePerGas}):Un.nodeMessage.test(n)?new Un({cause:e,nonce:t?.nonce}):Ln.nodeMessage.test(n)?new Ln({cause:e,nonce:t?.nonce}):Mn.nodeMessage.test(n)?new Mn({cause:e,nonce:t?.nonce}):Rn.nodeMessage.test(n)?new Rn({cause:e}):$n.nodeMessage.test(n)?new $n({cause:e,gas:t?.gas}):Hn.nodeMessage.test(n)?new Hn({cause:e,gas:t?.gas}):Wn.nodeMessage.test(n)?new Wn({cause:e}):Yt.nodeMessage.test(n)?new Yt({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new Go({cause:e})}function ii(e,{docsPath:t,...n}){const o=(()=>{const s=ri(e,n);return s instanceof Go?e:s})();return new ai(o,{docsPath:t,...n})}function ci(e,{format:t}){if(!t)return{};const n={};function o(a){const r=Object.keys(a);for(const i of r)i in e&&(n[i]=e[i]),a[i]&&typeof a[i]=="object"&&!Array.isArray(a[i])&&o(a[i])}const s=t(e||{});return o(s),n}function li(e){const{account:t,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,a=t?jn(t):void 0;if(a&&!Re(a.address))throw new ct({address:a.address});if(s&&!Re(s))throw new ct({address:s});if(n&&n>Mt)throw new Ct({maxFeePerGas:n});if(o&&n&&o>n)throw new Yt({maxFeePerGas:n,maxPriorityFeePerGas:o})}async function di(e,t){const{account:n=e.account}=t;if(!n)throw new Ir;const o=jn(n);try{const{accessList:s,blockNumber:a,blockTag:r,data:i,gas:d,gasPrice:T,maxFeePerGas:B,maxPriorityFeePerGas:R,nonce:h,to:x,value:m,...C}=t,ke=(typeof a=="bigint"?le(a):void 0)||r;li(t);const N=e.chain?.formatters?.transactionRequest?.format,X=(N||ia)({...ci(C,{format:N}),account:o,accessList:s,data:i,gas:d,gasPrice:T,maxFeePerGas:B,maxPriorityFeePerGas:R,nonce:h,to:x,value:m},"estimateGas"),{baseFeePerGas:fe,gasLimit:pe,priorityFeePerGas:Be}=await e.request({method:"linea_estimateGas",params:ke?[X,ke]:[X]});return{baseFeePerGas:BigInt(fe),gasLimit:BigInt(pe),priorityFeePerGas:BigInt(Be)}}catch(s){throw ii(s,{...t,account:o,chain:e.chain})}}const ui={fees:{estimateFeesPerGas:ls,async maxPriorityFeePerGas({block:e,client:t,request:n}){const o=await ls({block:e,client:t,multiply:s=>s,request:n,type:"eip1559"});return o?.maxPriorityFeePerGas?o.maxPriorityFeePerGas:null}}};async function ls({client:e,multiply:t,request:n,type:o}){try{const s=await di(e,{...n,account:n?.account}),{priorityFeePerGas:a}=s,i=t(BigInt(s.baseFeePerGas))+a;return o==="legacy"?{gasPrice:i}:{maxFeePerGas:i,maxPriorityFeePerGas:a}}catch{return null}}const fi=ut({...ui,id:59144,name:"Linea Mainnet",blockTime:2e3,nativeCurrency:{name:"Linea Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.linea.build"],webSocket:["wss://rpc.linea.build"]}},blockExplorers:{default:{name:"Etherscan",url:"https://lineascan.build",apiUrl:"https://api.lineascan.build/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:42},ensRegistry:{address:"0x50130b669B28C339991d8676FA73CF122a121267",blockCreated:6682888},ensUniversalResolver:{address:"0x4D41762915F83c76EcaF6776d9b08076aA32b492",blockCreated:22222151}},ensTlds:[".linea.eth"],testnet:!1}),pi=ut({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),Zt=1,mi=ut({...mn,id:10,name:"OP Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},blockExplorers:{default:{name:"Optimism Explorer",url:"https://optimistic.etherscan.io",apiUrl:"https://api-optimistic.etherscan.io/api"}},contracts:{...mn.contracts,disputeGameFactory:{[Zt]:{address:"0xe5965Ab5962eDc7477C8520243A95517CD252fA9"}},l2OutputOracle:{[Zt]:{address:"0xdfe97868233d1aa22e815a266982f2cf17685a27"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263},portal:{[Zt]:{address:"0xbEb5Fc579115071764c7423A4f12eDde41f106Ed"}},l1StandardBridge:{[Zt]:{address:"0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1"}}},sourceId:Zt}),hi=ut({id:137,name:"Polygon",blockTime:2e3,nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://polygonscan.com",apiUrl:"https://api.etherscan.io/v2/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}}}),ds="/docs/contract/encodeFunctionData";function bi(e){const{abi:t,args:n,functionName:o}=e;let s=t[0];if(o){const a=oi({abi:t,args:n,name:o});if(!a)throw new os(o,{docsPath:ds});s=a}if(s.type!=="function")throw new os(void 0,{docsPath:ds});return{abi:[s],functionName:rs(Jn(s))}}function kt(e){const{args:t}=e,{abi:n,functionName:o}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:bi(e),s=n[0],a=o,r="inputs"in s&&s.inputs?qr(s.inputs,t??[]):void 0;return Et([a,r??"0x"])}const lt={1:{...pi,logo:"https://cryptologos.cc/logos/ethereum-eth-logo.png?v=024",chainId:1,chainType:"ether",chainTypeMoralis:"eth",tokenTrendingDefault:["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"]},10:{...mi,logo:"https://cryptologos.cc/logos/optimism-ethereum-op-logo.png?v=024",chainId:10,chainType:"optimism",chainTypeMoralis:"optimism",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0x68f180fcce6836688e9084f035309e29bf0a2095","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},56:{...Br,logo:"https://cryptologos.cc/logos/bnb-bnb-logo.png?v=024",chainId:56,chainType:"bsc",chainTypeMoralis:"bsc",tokenTrendingDefault:["0x2170ed0880ac9a755fd29b2688956bd959f933f8","0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c"]},137:{...hi,rpcUrls:{default:{http:["https://polygon-bor-rpc.publicnode.com"]}},logo:"https://cryptologos.cc/logos/polygon-matic-logo.png?v=024",chainId:137,chainType:"matic",chainTypeMoralis:"polygon",tokenTrendingDefault:["0x7ceb23fd6bc0add59e62ac25578270cff1b9f619","0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6"]},8453:{...ts,logo:"https://icons.llamao.fi/icons/chains/rsz_base.jpg",chainId:8453,chainType:"base",chainTypeMoralis:"base",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},42161:{...Nr,logo:"https://cryptologos.cc/logos/arbitrum-arb-logo.png?v=024",chainId:42161,chainType:"arbitrum",chainTypeMoralis:"arbitrum",tokenTrendingDefault:["0x82af49447d8a07e3bd95bd0d56f35241523fbab1","0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"]},43114:{...Cr,logo:"https://cryptologos.cc/logos/avalanche-avax-logo.png?v=024",chainId:43114,chainType:"avax",chainTypeMoralis:"avalanche",tokenTrendingDefault:["0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB","0x0555E30da8f98308EdB960aa94C0Db47230d2B9c"]},59144:{...fi,logo:"https://icons.llamao.fi/icons/chains/rsz_linea.jpg",chainId:59144,chainType:"linea",chainTypeMoralis:"linea",tokenTrendingDefault:["0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f","0x3aab2285ddcddad8edf438c1bab47e1a9d05a9b4"]}},us=e=>Object.values(lt).find(n=>n.chainTypeMoralis===e)?.chainType||null,gi=e=>{const t=new Date,n=new Date(t);n.setDate(n.getDate()-1);const o=new Date(e);return o.setHours(0,0,0,0),t.setHours(0,0,0,0),n.setHours(0,0,0,0),o.getTime()===t.getTime()?"Today":o.getTime()===n.getTime()?"Yesterday":o.toLocaleDateString("en-US",{month:"short",day:"numeric",year:o.getFullYear()!==t.getFullYear()?"numeric":void 0})},ot=e=>new Promise(t=>setTimeout(t,e||0)),wi=(e,t=5,n=5)=>(e=e||"",e?.length<=t+n?e:`${e.substr(0,t)}...${e.substr(e.length-n,n)}`),yi=e=>{if(!e)return"";const t=lt[e];return t?t.chainTypeMoralis:""},vi=e=>{if(!e)return"";const t=lt[e];return t?t.chainType:""},Bt={getItem(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}},setItem(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,t)}catch{}},removeItem(e){if(!(typeof window>"u"))try{window.localStorage.removeItem(e)}catch{}},get length(){if(typeof window>"u")return 0;try{return window.localStorage.length}catch{return 0}},key(e){if(typeof window>"u")return null;try{return window.localStorage.key(e)}catch{return null}}};class ki extends ue{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function mt(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new ki({value:e});let[n,o="0"]=e.split(".");const s=n.startsWith("-");if(s&&(n=n.slice(1)),o=o.replace(/(0+)$/,""),t===0)Math.round(+`.${o}`)===1&&(n=`${BigInt(n)+1n}`),o="";else if(o.length>t){const[a,r,i]=[o.slice(0,t-1),o.slice(t-1,t),o.slice(t)],d=Math.round(+`${r}.${i}`);d>9?o=`${BigInt(a)+BigInt(1)}0`.padStart(a.length+1,"0"):o=`${a}${d}`,o.length>t&&(o=o.slice(1),n=`${BigInt(n)+1n}`),o=o.slice(0,t)}else o=o.padEnd(t,"0");return BigInt(`${s?"-":""}${n}${o}`)}const Ai="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",He="0x0000000000000000000000000000000000000000",fs=ne.createContext(void 0),eo=()=>{const e=ne.useContext(fs);if(!e)throw new Error("useConnect must be used within ConnectProvider");return{...e,chainData:lt[e.account?.chainId]||void 0,chainId:e.account?.chainId||void 0,chainType:vi(e.account?.chainId||void 0),chainTypeMoralis:yi(e.account?.chainId||void 0),isChainSupported:!!lt[e.account?.chainId]}},Ti=({children:e,initialAccount:t})=>P.jsx(fs.Provider,{value:{account:t||null},children:e}),xi=({address:e,chainId:t})=>{const[n,o]=ne.useState(!1),{isChainSupported:s}=eo(),a=ne.useCallback(()=>{if(!e)return;const r=e,i=()=>{o(!0),setTimeout(()=>o(!1),2e3)};try{navigator.clipboard.writeText(r).then(i).catch(()=>{const d=document.createElement("input");d.value=r,document.body.appendChild(d),d.select(),document.execCommand("copy"),d.remove(),i()})}catch{const d=document.createElement("input");d.value=r,document.body.appendChild(d),d.select(),document.execCommand("copy"),d.remove(),i()}},[e]);return P.jsx(P.Fragment,{children:Re(e||"")&&P.jsxs("div",{className:"chat-user-info",children:[t&<[t]?.logo&&P.jsx("div",{className:"user-avatar",children:P.jsx("img",{src:lt[t].logo||"",alt:"Chain",width:20,height:20})}),P.jsx("span",{className:"user-wallet",children:P.jsx("a",{style:{pointerEvents:s?"auto":"none"},href:lt[t]?.blockExplorers?.default?.url+"/address/"+e,target:"_blank",rel:"noopener noreferrer",children:wi(e)||"Not connected"})}),P.jsx("button",{className:"copy-address-btn",onClick:a,"aria-label":"Copy wallet address",type:"button",title:n?"Copied!":"Copy address",children:n?P.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:P.jsx("path",{d:"M13.3333 4L6 11.3333L2.66667 8",stroke:"#0B3988",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):P.jsx("svg",{width:"14",height:"14",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:P.jsx("path",{d:"M8.1 15.75H13.23C12.9638 16.4152 12.5041 16.9852 11.9105 17.3863C11.3168 17.7874 10.6165 18.0012 9.9 18H3.6C2.64522 18 1.72955 17.6207 1.05442 16.9456C0.379285 16.2704 0 15.3548 0 14.4V7.2C0.00104929 6.32332 0.321408 5.47704 0.901163 4.81944C1.48092 4.16183 2.28037 3.73792 3.15 3.627V10.8C3.15238 12.1121 3.67466 13.3698 4.60245 14.2975C5.53024 15.2253 6.78791 15.7476 8.1 15.75ZM15.75 3.825H17.658C17.6027 3.74389 17.5393 3.66852 17.469 3.6L14.4 0.531C14.3337 0.460854 14.258 0.400274 14.175 0.351V2.25C14.1769 2.66713 14.3434 3.06664 14.6384 3.3616C14.9334 3.65656 15.3329 3.8231 15.75 3.825ZM15.75 5.175C14.9747 5.17357 14.2315 4.86494 13.6833 4.31671C13.1351 3.76847 12.8264 3.02532 12.825 2.25V0H8.1C7.14522 0 6.22955 0.379285 5.55442 1.05442C4.87928 1.72955 4.5 2.64522 4.5 3.6V10.8C4.5 11.7548 4.87928 12.6704 5.55442 13.3456C6.22955 14.0207 7.14522 14.4 8.1 14.4H14.4C15.3548 14.4 16.2705 14.0207 16.9456 13.3456C17.6207 12.6704 18 11.7548 18 10.8V5.175H15.75Z",fill:"#0B3988"})})})]})})},We=[];for(let e=0;e<256;++e)We.push((e+256).toString(16).slice(1));function Ei(e,t=0){return(We[e[t+0]]+We[e[t+1]]+We[e[t+2]]+We[e[t+3]]+"-"+We[e[t+4]]+We[e[t+5]]+"-"+We[e[t+6]]+We[e[t+7]]+"-"+We[e[t+8]]+We[e[t+9]]+"-"+We[e[t+10]]+We[e[t+11]]+We[e[t+12]]+We[e[t+13]]+We[e[t+14]]+We[e[t+15]]).toLowerCase()}let to;const Si=new Uint8Array(16);function Ni(){if(!to){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");to=crypto.getRandomValues.bind(crypto)}return to(Si)}const ps={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ci(e,t,n){e=e||{};const o=e.random??e.rng?.()??Ni();if(o.length<16)throw new Error("Random bytes length must be >= 16");return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Ei(o)}function ms(e,t,n){return ps.randomUUID&&!e?ps.randomUUID():Ci(e)}const no="chat_widget_messages",hs=200,Ht=[{id:ms(),text:`**Welcome! 🚀**
|
|
99
|
-
You're connected and ready to explore DeFi! I can help you trade, check prices, and analyze your portfolio when you need it.`,sender:"bot",timestamp:new Date}];function Bi(e,t){return e&&t?`${e}_${t}`:""}function bs(e){return e.map(t=>({...t,timestamp:new Date(t.timestamp)}))}function gs(){const e=Bt.getItem(no);if(!e)return null;try{const t=JSON.parse(e);if(t&&t.owner!==void 0&&Array.isArray(t.messages))return{owner:t.owner,messages:bs(t.messages)};if(Array.isArray(t))return{owner:"",messages:bs(t)}}catch{}return null}function hn(e,t){Bt.setItem(no,JSON.stringify({owner:e,messages:t}))}function Ii(){const{account:e}=eo(),t=Bi(e?.address,e?.chainId),[n,o]=ne.useState(()=>t||"pending"),[s,a]=ne.useState(()=>{const B=gs();return t?B&&B.owner===t?B.messages:Ht:B?.messages??Ht});if(n==="pending"&&t){const B=gs();B&&B.owner===t?a(B.messages):hn(t,s),o(t)}else n!=="pending"&&t&&n!==t&&(a(Ht),hn(t,Ht),o(t));ne.useEffect(()=>{n!=="pending"&&hn(n,s)},[s,n]),ne.useEffect(()=>{const B=[];for(let R=0;R<Bt.length;R++){const h=Bt.key(R);h&&h.startsWith(no+"_")&&B.push(h)}B.forEach(R=>Bt.removeItem(R))},[]);const r=(B,R,h,x,m)=>{const C=h?s.find(ke=>ke.id===h):void 0,L={id:ms(),text:B,sender:R,timestamp:new Date,...C&&{replyTo:{id:C.id,text:C.text,sender:C.sender}},...x&&{buttons:x},...m&&{actionData:m}};return a(ke=>{const N=[...ke,L];return N.length>hs?N.slice(N.length-hs):N}),L},i=(B,R)=>{a(h=>h.map(x=>x.id===B&&x.actionData?{...x,actionData:{...x.actionData,status:R}}:x))},d=(B,R)=>{a(h=>h.map(x=>x.id===B?{...x,text:R}:x))},T=ne.useCallback(()=>{a(Ht),hn(t,Ht)},[t]);return{messages:s,setMessages:a,addMessage:r,updateMessageAction:i,updateMessageText:d,clearMessages:T}}const ws=ne.createContext(void 0),Pi=()=>{const e=ne.useContext(ws);if(!e)throw new Error("useConfig must be used within ConfigProvider");return e},Fi=({children:e,initialConfig:t})=>P.jsx(ws.Provider,{value:{config:t||null},children:e});var Di=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,oo=Math.ceil,Ze=Math.floor,ze="[BigNumber Error] ",ys=ze+"Number primitive has more than 15 significant digits: ",st=1e14,be=14,so=9007199254740991,ao=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],At=1e7,$e=1e9;function vs(e){var t,n,o,s=N.prototype={constructor:N,toString:null,valueOf:null},a=new N(1),r=20,i=4,d=-7,T=21,B=-1e7,R=1e7,h=!1,x=1,m=0,C={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},L="0123456789abcdefghijklmnopqrstuvwxyz",ke=!0;function N(l,u){var c,b,g,w,v,y,A,k,E=this;if(!(E instanceof N))return new N(l,u);if(u==null){if(l&&l._isBigNumber===!0){E.s=l.s,!l.c||l.e>R?E.c=E.e=null:l.e<B?E.c=[E.e=0]:(E.e=l.e,E.c=l.c.slice());return}if((y=typeof l=="number")&&l*0==0){if(E.s=1/l<0?(l=-l,-1):1,l===~~l){for(w=0,v=l;v>=10;v/=10,w++);w>R?E.c=E.e=null:(E.e=w,E.c=[l]);return}k=String(l)}else{if(!Di.test(k=String(l)))return o(E,k,y);E.s=k.charCodeAt(0)==45?(k=k.slice(1),-1):1}(w=k.indexOf("."))>-1&&(k=k.replace(".","")),(v=k.search(/e/i))>0?(w<0&&(w=v),w+=+k.slice(v+1),k=k.substring(0,v)):w<0&&(w=k.length)}else{if(Ie(u,2,L.length,"Base"),u==10&&ke)return E=new N(l),pe(E,r+E.e+1,i);if(k=String(l),y=typeof l=="number"){if(l*0!=0)return o(E,k,y,u);if(E.s=1/l<0?(k=k.slice(1),-1):1,N.DEBUG&&k.replace(/^0\.0*|\./,"").length>15)throw Error(ys+l)}else E.s=k.charCodeAt(0)===45?(k=k.slice(1),-1):1;for(c=L.slice(0,u),w=v=0,A=k.length;v<A;v++)if(c.indexOf(b=k.charAt(v))<0){if(b=="."){if(v>w){w=A;continue}}else if(!g&&(k==k.toUpperCase()&&(k=k.toLowerCase())||k==k.toLowerCase()&&(k=k.toUpperCase()))){g=!0,v=-1,w=0;continue}return o(E,String(l),y,u)}y=!1,k=n(k,u,10,E.s),(w=k.indexOf("."))>-1?k=k.replace(".",""):w=k.length}for(v=0;k.charCodeAt(v)===48;v++);for(A=k.length;k.charCodeAt(--A)===48;);if(k=k.slice(v,++A)){if(A-=v,y&&N.DEBUG&&A>15&&(l>so||l!==Ze(l)))throw Error(ys+E.s*l);if((w=w-v-1)>R)E.c=E.e=null;else if(w<B)E.c=[E.e=0];else{if(E.e=w,E.c=[],v=(w+1)%be,w<0&&(v+=be),v<A){for(v&&E.c.push(+k.slice(0,v)),A-=be;v<A;)E.c.push(+k.slice(v,v+=be));v=be-(k=k.slice(v)).length}else v-=A;for(;v--;k+="0");E.c.push(+k)}}else E.c=[E.e=0]}N.clone=vs,N.ROUND_UP=0,N.ROUND_DOWN=1,N.ROUND_CEIL=2,N.ROUND_FLOOR=3,N.ROUND_HALF_UP=4,N.ROUND_HALF_DOWN=5,N.ROUND_HALF_EVEN=6,N.ROUND_HALF_CEIL=7,N.ROUND_HALF_FLOOR=8,N.EUCLID=9,N.config=N.set=function(l){var u,c;if(l!=null)if(typeof l=="object"){if(l.hasOwnProperty(u="DECIMAL_PLACES")&&(c=l[u],Ie(c,0,$e,u),r=c),l.hasOwnProperty(u="ROUNDING_MODE")&&(c=l[u],Ie(c,0,8,u),i=c),l.hasOwnProperty(u="EXPONENTIAL_AT")&&(c=l[u],c&&c.pop?(Ie(c[0],-$e,0,u),Ie(c[1],0,$e,u),d=c[0],T=c[1]):(Ie(c,-$e,$e,u),d=-(T=c<0?-c:c))),l.hasOwnProperty(u="RANGE"))if(c=l[u],c&&c.pop)Ie(c[0],-$e,-1,u),Ie(c[1],1,$e,u),B=c[0],R=c[1];else if(Ie(c,-$e,$e,u),c)B=-(R=c<0?-c:c);else throw Error(ze+u+" cannot be zero: "+c);if(l.hasOwnProperty(u="CRYPTO"))if(c=l[u],c===!!c)if(c)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))h=c;else throw h=!c,Error(ze+"crypto unavailable");else h=c;else throw Error(ze+u+" not true or false: "+c);if(l.hasOwnProperty(u="MODULO_MODE")&&(c=l[u],Ie(c,0,9,u),x=c),l.hasOwnProperty(u="POW_PRECISION")&&(c=l[u],Ie(c,0,$e,u),m=c),l.hasOwnProperty(u="FORMAT"))if(c=l[u],typeof c=="object")C=c;else throw Error(ze+u+" not an object: "+c);if(l.hasOwnProperty(u="ALPHABET"))if(c=l[u],typeof c=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(c))ke=c.slice(0,10)=="0123456789",L=c;else throw Error(ze+u+" invalid: "+c)}else throw Error(ze+"Object expected: "+l);return{DECIMAL_PLACES:r,ROUNDING_MODE:i,EXPONENTIAL_AT:[d,T],RANGE:[B,R],CRYPTO:h,MODULO_MODE:x,POW_PRECISION:m,FORMAT:C,ALPHABET:L}},N.isBigNumber=function(l){if(!l||l._isBigNumber!==!0)return!1;if(!N.DEBUG)return!0;var u,c,b=l.c,g=l.e,w=l.s;e:if({}.toString.call(b)=="[object Array]"){if((w===1||w===-1)&&g>=-$e&&g<=$e&&g===Ze(g)){if(b[0]===0){if(g===0&&b.length===1)return!0;break e}if(u=(g+1)%be,u<1&&(u+=be),String(b[0]).length==u){for(u=0;u<b.length;u++)if(c=b[u],c<0||c>=st||c!==Ze(c))break e;if(c!==0)return!0}}}else if(b===null&&g===null&&(w===null||w===1||w===-1))return!0;throw Error(ze+"Invalid BigNumber: "+l)},N.maximum=N.max=function(){return X(arguments,-1)},N.minimum=N.min=function(){return X(arguments,1)},N.random=(function(){var l=9007199254740992,u=Math.random()*l&2097151?function(){return Ze(Math.random()*l)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(c){var b,g,w,v,y,A=0,k=[],E=new N(a);if(c==null?c=r:Ie(c,0,$e),v=oo(c/be),h)if(crypto.getRandomValues){for(b=crypto.getRandomValues(new Uint32Array(v*=2));A<v;)y=b[A]*131072+(b[A+1]>>>11),y>=9e15?(g=crypto.getRandomValues(new Uint32Array(2)),b[A]=g[0],b[A+1]=g[1]):(k.push(y%1e14),A+=2);A=v/2}else if(crypto.randomBytes){for(b=crypto.randomBytes(v*=7);A<v;)y=(b[A]&31)*281474976710656+b[A+1]*1099511627776+b[A+2]*4294967296+b[A+3]*16777216+(b[A+4]<<16)+(b[A+5]<<8)+b[A+6],y>=9e15?crypto.randomBytes(7).copy(b,A):(k.push(y%1e14),A+=7);A=v/7}else throw h=!1,Error(ze+"crypto unavailable");if(!h)for(;A<v;)y=u(),y<9e15&&(k[A++]=y%1e14);for(v=k[--A],c%=be,v&&c&&(y=ao[be-c],k[A]=Ze(v/y)*y);k[A]===0;k.pop(),A--);if(A<0)k=[w=0];else{for(w=-1;k[0]===0;k.splice(0,1),w-=be);for(A=1,y=k[0];y>=10;y/=10,A++);A<be&&(w-=be-A)}return E.e=w,E.c=k,E}})(),N.sum=function(){for(var l=1,u=arguments,c=new N(u[0]);l<u.length;)c=c.plus(u[l++]);return c},n=(function(){var l="0123456789";function u(c,b,g,w){for(var v,y=[0],A,k=0,E=c.length;k<E;){for(A=y.length;A--;y[A]*=b);for(y[0]+=w.indexOf(c.charAt(k++)),v=0;v<y.length;v++)y[v]>g-1&&(y[v+1]==null&&(y[v+1]=0),y[v+1]+=y[v]/g|0,y[v]%=g)}return y.reverse()}return function(c,b,g,w,v){var y,A,k,E,D,z,se,he,Ae=c.indexOf("."),Se=r,j=i;for(Ae>=0&&(E=m,m=0,c=c.replace(".",""),he=new N(b),z=he.pow(c.length-Ae),m=E,he.c=u(ht(et(z.c),z.e,"0"),10,g,l),he.e=he.c.length),se=u(c,b,g,v?(y=L,l):(y=l,L)),k=E=se.length;se[--E]==0;se.pop());if(!se[0])return y.charAt(0);if(Ae<0?--k:(z.c=se,z.e=k,z.s=w,z=t(z,he,Se,j,g),se=z.c,D=z.r,k=z.e),A=k+Se+1,Ae=se[A],E=g/2,D=D||A<0||se[A+1]!=null,D=j<4?(Ae!=null||D)&&(j==0||j==(z.s<0?3:2)):Ae>E||Ae==E&&(j==4||D||j==6&&se[A-1]&1||j==(z.s<0?8:7)),A<1||!se[0])c=D?ht(y.charAt(1),-Se,y.charAt(0)):y.charAt(0);else{if(se.length=A,D)for(--g;++se[--A]>g;)se[A]=0,A||(++k,se=[1].concat(se));for(E=se.length;!se[--E];);for(Ae=0,c="";Ae<=E;c+=y.charAt(se[Ae++]));c=ht(c,k,y.charAt(0))}return c}})(),t=(function(){function l(b,g,w){var v,y,A,k,E=0,D=b.length,z=g%At,se=g/At|0;for(b=b.slice();D--;)A=b[D]%At,k=b[D]/At|0,v=se*A+k*z,y=z*A+v%At*At+E,E=(y/w|0)+(v/At|0)+se*k,b[D]=y%w;return E&&(b=[E].concat(b)),b}function u(b,g,w,v){var y,A;if(w!=v)A=w>v?1:-1;else for(y=A=0;y<w;y++)if(b[y]!=g[y]){A=b[y]>g[y]?1:-1;break}return A}function c(b,g,w,v){for(var y=0;w--;)b[w]-=y,y=b[w]<g[w]?1:0,b[w]=y*v+b[w]-g[w];for(;!b[0]&&b.length>1;b.splice(0,1));}return function(b,g,w,v,y){var A,k,E,D,z,se,he,Ae,Se,j,ge,Ee,Ve,at,Je,Fe,qe,Me=b.s==g.s?1:-1,De=b.c,Te=g.c;if(!De||!De[0]||!Te||!Te[0])return new N(!b.s||!g.s||(De?Te&&De[0]==Te[0]:!Te)?NaN:De&&De[0]==0||!Te?Me*0:Me/0);for(Ae=new N(Me),Se=Ae.c=[],k=b.e-g.e,Me=w+k+1,y||(y=st,k=Qe(b.e/be)-Qe(g.e/be),Me=Me/be|0),E=0;Te[E]==(De[E]||0);E++);if(Te[E]>(De[E]||0)&&k--,Me<0)Se.push(1),D=!0;else{for(at=De.length,Fe=Te.length,E=0,Me+=2,z=Ze(y/(Te[0]+1)),z>1&&(Te=l(Te,z,y),De=l(De,z,y),Fe=Te.length,at=De.length),Ve=Fe,j=De.slice(0,Fe),ge=j.length;ge<Fe;j[ge++]=0);qe=Te.slice(),qe=[0].concat(qe),Je=Te[0],Te[1]>=y/2&&Je++;do{if(z=0,A=u(Te,j,Fe,ge),A<0){if(Ee=j[0],Fe!=ge&&(Ee=Ee*y+(j[1]||0)),z=Ze(Ee/Je),z>1)for(z>=y&&(z=y-1),se=l(Te,z,y),he=se.length,ge=j.length;u(se,j,he,ge)==1;)z--,c(se,Fe<he?qe:Te,he,y),he=se.length,A=1;else z==0&&(A=z=1),se=Te.slice(),he=se.length;if(he<ge&&(se=[0].concat(se)),c(j,se,ge,y),ge=j.length,A==-1)for(;u(Te,j,Fe,ge)<1;)z++,c(j,Fe<ge?qe:Te,ge,y),ge=j.length}else A===0&&(z++,j=[0]);Se[E++]=z,j[0]?j[ge++]=De[Ve]||0:(j=[De[Ve]],ge=1)}while((Ve++<at||j[0]!=null)&&Me--);D=j[0]!=null,Se[0]||Se.splice(0,1)}if(y==st){for(E=1,Me=Se[0];Me>=10;Me/=10,E++);pe(Ae,w+(Ae.e=E+k*be-1)+1,v,D)}else Ae.e=k,Ae.r=+D;return Ae}})();function V(l,u,c,b){var g,w,v,y,A;if(c==null?c=i:Ie(c,0,8),!l.c)return l.toString();if(g=l.c[0],v=l.e,u==null)A=et(l.c),A=b==1||b==2&&(v<=d||v>=T)?gn(A,v):ht(A,v,"0");else if(l=pe(new N(l),u,c),w=l.e,A=et(l.c),y=A.length,b==1||b==2&&(u<=w||w<=d)){for(;y<u;A+="0",y++);A=gn(A,w)}else if(u-=v+(b===2&&w>v),A=ht(A,w,"0"),w+1>y){if(--u>0)for(A+=".";u--;A+="0");}else if(u+=w-y,u>0)for(w+1==y&&(A+=".");u--;A+="0");return l.s<0&&g?"-"+A:A}function X(l,u){for(var c,b,g=1,w=new N(l[0]);g<l.length;g++)b=new N(l[g]),(!b.s||(c=It(w,b))===u||c===0&&w.s===u)&&(w=b);return w}function fe(l,u,c){for(var b=1,g=u.length;!u[--g];u.pop());for(g=u[0];g>=10;g/=10,b++);return(c=b+c*be-1)>R?l.c=l.e=null:c<B?l.c=[l.e=0]:(l.e=c,l.c=u),l}o=(function(){var l=/^(-?)0([xbo])(?=\w[\w.]*$)/i,u=/^([^.]+)\.$/,c=/^\.([^.]+)$/,b=/^-?(Infinity|NaN)$/,g=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(w,v,y,A){var k,E=y?v:v.replace(g,"");if(b.test(E))w.s=isNaN(E)?null:E<0?-1:1;else{if(!y&&(E=E.replace(l,function(D,z,se){return k=(se=se.toLowerCase())=="x"?16:se=="b"?2:8,!A||A==k?z:D}),A&&(k=A,E=E.replace(u,"$1").replace(c,"0.$1")),v!=E))return new N(E,k);if(N.DEBUG)throw Error(ze+"Not a"+(A?" base "+A:"")+" number: "+v);w.s=null}w.c=w.e=null}})();function pe(l,u,c,b){var g,w,v,y,A,k,E,D=l.c,z=ao;if(D){e:{for(g=1,y=D[0];y>=10;y/=10,g++);if(w=u-g,w<0)w+=be,v=u,A=D[k=0],E=Ze(A/z[g-v-1]%10);else if(k=oo((w+1)/be),k>=D.length)if(b){for(;D.length<=k;D.push(0));A=E=0,g=1,w%=be,v=w-be+1}else break e;else{for(A=y=D[k],g=1;y>=10;y/=10,g++);w%=be,v=w-be+g,E=v<0?0:Ze(A/z[g-v-1]%10)}if(b=b||u<0||D[k+1]!=null||(v<0?A:A%z[g-v-1]),b=c<4?(E||b)&&(c==0||c==(l.s<0?3:2)):E>5||E==5&&(c==4||b||c==6&&(w>0?v>0?A/z[g-v]:0:D[k-1])%10&1||c==(l.s<0?8:7)),u<1||!D[0])return D.length=0,b?(u-=l.e+1,D[0]=z[(be-u%be)%be],l.e=-u||0):D[0]=l.e=0,l;if(w==0?(D.length=k,y=1,k--):(D.length=k+1,y=z[be-w],D[k]=v>0?Ze(A/z[g-v]%z[v])*y:0),b)for(;;)if(k==0){for(w=1,v=D[0];v>=10;v/=10,w++);for(v=D[0]+=y,y=1;v>=10;v/=10,y++);w!=y&&(l.e++,D[0]==st&&(D[0]=1));break}else{if(D[k]+=y,D[k]!=st)break;D[k--]=0,y=1}for(w=D.length;D[--w]===0;D.pop());}l.e>R?l.c=l.e=null:l.e<B&&(l.c=[l.e=0])}return l}function Be(l){var u,c=l.e;return c===null?l.toString():(u=et(l.c),u=c<=d||c>=T?gn(u,c):ht(u,c,"0"),l.s<0?"-"+u:u)}return s.absoluteValue=s.abs=function(){var l=new N(this);return l.s<0&&(l.s=1),l},s.comparedTo=function(l,u){return It(this,new N(l,u))},s.decimalPlaces=s.dp=function(l,u){var c,b,g,w=this;if(l!=null)return Ie(l,0,$e),u==null?u=i:Ie(u,0,8),pe(new N(w),l+w.e+1,u);if(!(c=w.c))return null;if(b=((g=c.length-1)-Qe(this.e/be))*be,g=c[g])for(;g%10==0;g/=10,b--);return b<0&&(b=0),b},s.dividedBy=s.div=function(l,u){return t(this,new N(l,u),r,i)},s.dividedToIntegerBy=s.idiv=function(l,u){return t(this,new N(l,u),0,1)},s.exponentiatedBy=s.pow=function(l,u){var c,b,g,w,v,y,A,k,E,D=this;if(l=new N(l),l.c&&!l.isInteger())throw Error(ze+"Exponent not an integer: "+Be(l));if(u!=null&&(u=new N(u)),y=l.e>14,!D.c||!D.c[0]||D.c[0]==1&&!D.e&&D.c.length==1||!l.c||!l.c[0])return E=new N(Math.pow(+Be(D),y?l.s*(2-bn(l)):+Be(l))),u?E.mod(u):E;if(A=l.s<0,u){if(u.c?!u.c[0]:!u.s)return new N(NaN);b=!A&&D.isInteger()&&u.isInteger(),b&&(D=D.mod(u))}else{if(l.e>9&&(D.e>0||D.e<-1||(D.e==0?D.c[0]>1||y&&D.c[1]>=24e7:D.c[0]<8e13||y&&D.c[0]<=9999975e7)))return w=D.s<0&&bn(l)?-0:0,D.e>-1&&(w=1/w),new N(A?1/w:w);m&&(w=oo(m/be+2))}for(y?(c=new N(.5),A&&(l.s=1),k=bn(l)):(g=Math.abs(+Be(l)),k=g%2),E=new N(a);;){if(k){if(E=E.times(D),!E.c)break;w?E.c.length>w&&(E.c.length=w):b&&(E=E.mod(u))}if(g){if(g=Ze(g/2),g===0)break;k=g%2}else if(l=l.times(c),pe(l,l.e+1,1),l.e>14)k=bn(l);else{if(g=+Be(l),g===0)break;k=g%2}D=D.times(D),w?D.c&&D.c.length>w&&(D.c.length=w):b&&(D=D.mod(u))}return b?E:(A&&(E=a.div(E)),u?E.mod(u):w?pe(E,m,i,v):E)},s.integerValue=function(l){var u=new N(this);return l==null?l=i:Ie(l,0,8),pe(u,u.e+1,l)},s.isEqualTo=s.eq=function(l,u){return It(this,new N(l,u))===0},s.isFinite=function(){return!!this.c},s.isGreaterThan=s.gt=function(l,u){return It(this,new N(l,u))>0},s.isGreaterThanOrEqualTo=s.gte=function(l,u){return(u=It(this,new N(l,u)))===1||u===0},s.isInteger=function(){return!!this.c&&Qe(this.e/be)>this.c.length-2},s.isLessThan=s.lt=function(l,u){return It(this,new N(l,u))<0},s.isLessThanOrEqualTo=s.lte=function(l,u){return(u=It(this,new N(l,u)))===-1||u===0},s.isNaN=function(){return!this.s},s.isNegative=function(){return this.s<0},s.isPositive=function(){return this.s>0},s.isZero=function(){return!!this.c&&this.c[0]==0},s.minus=function(l,u){var c,b,g,w,v=this,y=v.s;if(l=new N(l,u),u=l.s,!y||!u)return new N(NaN);if(y!=u)return l.s=-u,v.plus(l);var A=v.e/be,k=l.e/be,E=v.c,D=l.c;if(!A||!k){if(!E||!D)return E?(l.s=-u,l):new N(D?v:NaN);if(!E[0]||!D[0])return D[0]?(l.s=-u,l):new N(E[0]?v:i==3?-0:0)}if(A=Qe(A),k=Qe(k),E=E.slice(),y=A-k){for((w=y<0)?(y=-y,g=E):(k=A,g=D),g.reverse(),u=y;u--;g.push(0));g.reverse()}else for(b=(w=(y=E.length)<(u=D.length))?y:u,y=u=0;u<b;u++)if(E[u]!=D[u]){w=E[u]<D[u];break}if(w&&(g=E,E=D,D=g,l.s=-l.s),u=(b=D.length)-(c=E.length),u>0)for(;u--;E[c++]=0);for(u=st-1;b>y;){if(E[--b]<D[b]){for(c=b;c&&!E[--c];E[c]=u);--E[c],E[b]+=st}E[b]-=D[b]}for(;E[0]==0;E.splice(0,1),--k);return E[0]?fe(l,E,k):(l.s=i==3?-1:1,l.c=[l.e=0],l)},s.modulo=s.mod=function(l,u){var c,b,g=this;return l=new N(l,u),!g.c||!l.s||l.c&&!l.c[0]?new N(NaN):!l.c||g.c&&!g.c[0]?new N(g):(x==9?(b=l.s,l.s=1,c=t(g,l,0,3),l.s=b,c.s*=b):c=t(g,l,0,x),l=g.minus(c.times(l)),!l.c[0]&&x==1&&(l.s=g.s),l)},s.multipliedBy=s.times=function(l,u){var c,b,g,w,v,y,A,k,E,D,z,se,he,Ae,Se,j=this,ge=j.c,Ee=(l=new N(l,u)).c;if(!ge||!Ee||!ge[0]||!Ee[0])return!j.s||!l.s||ge&&!ge[0]&&!Ee||Ee&&!Ee[0]&&!ge?l.c=l.e=l.s=null:(l.s*=j.s,!ge||!Ee?l.c=l.e=null:(l.c=[0],l.e=0)),l;for(b=Qe(j.e/be)+Qe(l.e/be),l.s*=j.s,A=ge.length,D=Ee.length,A<D&&(he=ge,ge=Ee,Ee=he,g=A,A=D,D=g),g=A+D,he=[];g--;he.push(0));for(Ae=st,Se=At,g=D;--g>=0;){for(c=0,z=Ee[g]%Se,se=Ee[g]/Se|0,v=A,w=g+v;w>g;)k=ge[--v]%Se,E=ge[v]/Se|0,y=se*k+E*z,k=z*k+y%Se*Se+he[w]+c,c=(k/Ae|0)+(y/Se|0)+se*E,he[w--]=k%Ae;he[w]=c}return c?++b:he.splice(0,1),fe(l,he,b)},s.negated=function(){var l=new N(this);return l.s=-l.s||null,l},s.plus=function(l,u){var c,b=this,g=b.s;if(l=new N(l,u),u=l.s,!g||!u)return new N(NaN);if(g!=u)return l.s=-u,b.minus(l);var w=b.e/be,v=l.e/be,y=b.c,A=l.c;if(!w||!v){if(!y||!A)return new N(g/0);if(!y[0]||!A[0])return A[0]?l:new N(y[0]?b:g*0)}if(w=Qe(w),v=Qe(v),y=y.slice(),g=w-v){for(g>0?(v=w,c=A):(g=-g,c=y),c.reverse();g--;c.push(0));c.reverse()}for(g=y.length,u=A.length,g-u<0&&(c=A,A=y,y=c,u=g),g=0;u;)g=(y[--u]=y[u]+A[u]+g)/st|0,y[u]=st===y[u]?0:y[u]%st;return g&&(y=[g].concat(y),++v),fe(l,y,v)},s.precision=s.sd=function(l,u){var c,b,g,w=this;if(l!=null&&l!==!!l)return Ie(l,1,$e),u==null?u=i:Ie(u,0,8),pe(new N(w),l,u);if(!(c=w.c))return null;if(g=c.length-1,b=g*be+1,g=c[g]){for(;g%10==0;g/=10,b--);for(g=c[0];g>=10;g/=10,b++);}return l&&w.e+1>b&&(b=w.e+1),b},s.shiftedBy=function(l){return Ie(l,-so,so),this.times("1e"+l)},s.squareRoot=s.sqrt=function(){var l,u,c,b,g,w=this,v=w.c,y=w.s,A=w.e,k=r+4,E=new N("0.5");if(y!==1||!v||!v[0])return new N(!y||y<0&&(!v||v[0])?NaN:v?w:1/0);if(y=Math.sqrt(+Be(w)),y==0||y==1/0?(u=et(v),(u.length+A)%2==0&&(u+="0"),y=Math.sqrt(+u),A=Qe((A+1)/2)-(A<0||A%2),y==1/0?u="5e"+A:(u=y.toExponential(),u=u.slice(0,u.indexOf("e")+1)+A),c=new N(u)):c=new N(y+""),c.c[0]){for(A=c.e,y=A+k,y<3&&(y=0);;)if(g=c,c=E.times(g.plus(t(w,g,k,1))),et(g.c).slice(0,y)===(u=et(c.c)).slice(0,y))if(c.e<A&&--y,u=u.slice(y-3,y+1),u=="9999"||!b&&u=="4999"){if(!b&&(pe(g,g.e+r+2,0),g.times(g).eq(w))){c=g;break}k+=4,y+=4,b=1}else{(!+u||!+u.slice(1)&&u.charAt(0)=="5")&&(pe(c,c.e+r+2,1),l=!c.times(c).eq(w));break}}return pe(c,c.e+r+1,i,l)},s.toExponential=function(l,u){return l!=null&&(Ie(l,0,$e),l++),V(this,l,u,1)},s.toFixed=function(l,u){return l!=null&&(Ie(l,0,$e),l=l+this.e+1),V(this,l,u)},s.toFormat=function(l,u,c){var b,g=this;if(c==null)l!=null&&u&&typeof u=="object"?(c=u,u=null):l&&typeof l=="object"?(c=l,l=u=null):c=C;else if(typeof c!="object")throw Error(ze+"Argument not an object: "+c);if(b=g.toFixed(l,u),g.c){var w,v=b.split("."),y=+c.groupSize,A=+c.secondaryGroupSize,k=c.groupSeparator||"",E=v[0],D=v[1],z=g.s<0,se=z?E.slice(1):E,he=se.length;if(A&&(w=y,y=A,A=w,he-=w),y>0&&he>0){for(w=he%y||y,E=se.substr(0,w);w<he;w+=y)E+=k+se.substr(w,y);A>0&&(E+=k+se.slice(w)),z&&(E="-"+E)}b=D?E+(c.decimalSeparator||"")+((A=+c.fractionGroupSize)?D.replace(new RegExp("\\d{"+A+"}\\B","g"),"$&"+(c.fractionGroupSeparator||"")):D):E}return(c.prefix||"")+b+(c.suffix||"")},s.toFraction=function(l){var u,c,b,g,w,v,y,A,k,E,D,z,se=this,he=se.c;if(l!=null&&(y=new N(l),!y.isInteger()&&(y.c||y.s!==1)||y.lt(a)))throw Error(ze+"Argument "+(y.isInteger()?"out of range: ":"not an integer: ")+Be(y));if(!he)return new N(se);for(u=new N(a),k=c=new N(a),b=A=new N(a),z=et(he),w=u.e=z.length-se.e-1,u.c[0]=ao[(v=w%be)<0?be+v:v],l=!l||y.comparedTo(u)>0?w>0?u:k:y,v=R,R=1/0,y=new N(z),A.c[0]=0;E=t(y,u,0,1),g=c.plus(E.times(b)),g.comparedTo(l)!=1;)c=b,b=g,k=A.plus(E.times(g=k)),A=g,u=y.minus(E.times(g=u)),y=g;return g=t(l.minus(c),b,0,1),A=A.plus(g.times(k)),c=c.plus(g.times(b)),A.s=k.s=se.s,w=w*2,D=t(k,b,w,i).minus(se).abs().comparedTo(t(A,c,w,i).minus(se).abs())<1?[k,b]:[A,c],R=v,D},s.toNumber=function(){return+Be(this)},s.toPrecision=function(l,u){return l!=null&&Ie(l,1,$e),V(this,l,u,2)},s.toString=function(l){var u,c=this,b=c.s,g=c.e;return g===null?b?(u="Infinity",b<0&&(u="-"+u)):u="NaN":(l==null?u=g<=d||g>=T?gn(et(c.c),g):ht(et(c.c),g,"0"):l===10&&ke?(c=pe(new N(c),r+g+1,i),u=ht(et(c.c),c.e,"0")):(Ie(l,2,L.length,"Base"),u=n(ht(et(c.c),g,"0"),10,l,b,!0)),b<0&&c.c[0]&&(u="-"+u)),u},s.valueOf=s.toJSON=function(){return Be(this)},s._isBigNumber=!0,s[Symbol.toStringTag]="BigNumber",s[Symbol.for("nodejs.util.inspect.custom")]=s.valueOf,e!=null&&N.set(e),N}function Qe(e){var t=e|0;return e>0||e===t?t:t-1}function et(e){for(var t,n,o=1,s=e.length,a=e[0]+"";o<s;){for(t=e[o++]+"",n=be-t.length;n--;t="0"+t);a+=t}for(s=a.length;a.charCodeAt(--s)===48;);return a.slice(0,s+1||1)}function It(e,t){var n,o,s=e.c,a=t.c,r=e.s,i=t.s,d=e.e,T=t.e;if(!r||!i)return null;if(n=s&&!s[0],o=a&&!a[0],n||o)return n?o?0:-i:r;if(r!=i)return r;if(n=r<0,o=d==T,!s||!a)return o?0:!s^n?1:-1;if(!o)return d>T^n?1:-1;for(i=(d=s.length)<(T=a.length)?d:T,r=0;r<i;r++)if(s[r]!=a[r])return s[r]>a[r]^n?1:-1;return d==T?0:d>T^n?1:-1}function Ie(e,t,n,o){if(e<t||e>n||e!==Ze(e))throw Error(ze+(o||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function bn(e){var t=e.c.length-1;return Qe(e.e/be)==t&&e.c[t]%2!=0}function gn(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function ht(e,t,n){var o,s;if(t<0){for(s=n+".";++t;s+=n);e=s+e}else if(o=e.length,++t>o){for(s=n,t-=o;--t;s+=n);e+=s}else t<o&&(e=e.slice(0,t)+"."+e.slice(t));return e}var ce=vs();class Qt{baseUrl;constructor(t){this.baseUrl=t}buildUrl(t,n){const o=new URL(t,this.baseUrl);return n&&Object.entries(n).forEach(([s,a])=>{a!=null&&o.searchParams.append(s,String(a))}),o.toString()}async get(t,n={}){const o=this.buildUrl(t,n.query),s=await fetch(o,{method:"GET",headers:n.headers||{}});if(!s.ok){let r=null;try{r=await s.json()}catch{try{const d=await s.text();d&&(r={message:d})}catch{}}const i=new Error(r?.message||r?.errorMessage||`HTTP ${s.status}: ${s.statusText}`);throw i.status=s.status,i.statusText=s.statusText,r&&(i.data=r),i}return{data:await s.json(),status:s.status}}async post(t,n,o={}){const s=this.buildUrl(t,o.query),a=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json",...o.headers},body:JSON.stringify(n)});if(!a.ok){let i=null;try{i=await a.json()}catch{try{const T=await a.text();T&&(i={message:T})}catch{}}const d=new Error(i?.message||i?.errorMessage||`HTTP ${a.status}: ${a.statusText}`);throw d.status=a.status,d.statusText=a.statusText,i&&(d.data=i),d}return{data:await a.json(),status:a.status}}}const _i=.01,ks=new Qt("https://wallet-api.pantograph.app"),Oi="https://deep-index.moralis.io";function en(){return"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6ImY4NmY0Yzc2LTA3MDQtNGEwZS04YTA0LWUwODllOGQxMGZjZCIsIm9yZ0lkIjoiMzk0MDAyIiwidXNlcklkIjoiNDA0ODUzIiwidHlwZUlkIjoiYjQyODExOTQtOGQ0Yi00NjkxLTlhZjItNjU4ODE2NzExYmRjIiwidHlwZSI6IlBST0pFQ1QiLCJpYXQiOjE3MTY4NjQyNTYsImV4cCI6NDg3MjYyNDI1Nn0.V8crfBIBardAnZkc05FD0hQIJBeZxMqvzRnYExVtnF8"}function tn(e){return{"X-API-Key":e,Accept:"application/json"}}const nn=new Qt(Oi);async function je(e){const{address:t,chain:n="base",token_addresses:o,exclude_spam:s,exclude_unverified_contracts:a}=e;if(!t)throw new Error("Address is required");try{const r=en(),i={chain:n,exclude_spam:s??!1,exclude_unverified_contracts:a??!1};o&&(i.token_addresses=o);const T=(await nn.get(`/api/v2.2/wallets/${encodeURIComponent(t)}/tokens`,{query:i,headers:tn(r)})).data;if(T?.result?.length>0){T.result=T.result.filter(B=>new ce(B?.balance||0).gt(0)),T.result=T.result.map(B=>({...B,token_address:B.token_address===Ai?He:B.token_address}));try{const B=us(n)??n,R=T.result.map(x=>x.token_address),h=await ks.get(`/keyrings/tokens/${B}/v2`,{query:{addresses:R.join(",")}});if(Array.isArray(h.data)){const x=new Map;for(const m of h.data)m.address&&m.price!=null&&x.set(m.address.toLowerCase(),parseFloat(String(m.price)));T.result=T.result.map(m=>{const C=x.get(m.token_address.toLowerCase());if(C==null)return m;const L=ce(m.balance_formatted||"0").multipliedBy(C).toNumber();return{...m,usd_price:C,usd_value:L}}),T.result=T.result.filter(m=>m.usd_value==null||new ce(m.usd_value).gte(_i))}}catch(B){console.warn("⚠️ Failed to fetch Pantograph prices:",B)}}return{success:!0,data:T}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching token balances:",i),{success:!1,error:i}}}async function As(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Token address is required");try{const o=us(n)??n,s=await ks.get(`/keyrings/tokens/${o}/v2`,{query:{addresses:t}}),a=t===He,i=(Array.isArray(s.data)?s.data:[]).find(m=>m.address?.toLowerCase()===t.toLowerCase()||a&&m.address==="")??null;if(i)return{success:!0,data:{token_address:i.address??t,name:i.name??"",symbol:i.symbol??"",decimals:i.decimals!=null?Number(i.decimals):18,logo:i.icon_image||i.logo,thumbnail:i.icon_image||i.logo,usd_price:i.price!=null?parseFloat(i.price):void 0,usd_price_24hr_percent_change:i.price_change_percentage_24h??void 0,usd_price_24hr_usd_change:i.price_change_24h??void 0}};console.warn("⚠️ Pantograph returned no result, falling back to Moralis API");const d=en(),[T,B]=await Promise.allSettled([nn.get("/api/v2.2/erc20/metadata",{query:{chain:n,addresses:[t]},headers:tn(d)}),nn.get(`/api/v2.2/erc20/${encodeURIComponent(t)}/price`,{query:{chain:n,include:"percent_change"},headers:tn(d)})]),R=T.status==="fulfilled"?T.value.data:[];if(!R||R.length===0)return{success:!1,error:"Token metadata not found"};const h=R[0],x=B.status==="fulfilled"?B.value.data:void 0;return{success:!0,data:{token_address:h.token_address,name:h.name,symbol:h.symbol,decimals:h.decimals,logo:h.logo||h.thumbnail,thumbnail:h.thumbnail,usd_price:x?.usdPrice??void 0,usd_price_24hr_percent_change:x?.["24hrPercentChange"]?parseFloat(x["24hrPercentChange"]):void 0,usd_price_24hr_usd_change:x?.usdPriceChange24hr??void 0}}}catch(o){const s=o instanceof Error?o.message:"Unknown error";return console.error("❌ Error fetching token metadata:",s),{success:!1,error:s}}}async function Ui(e){const{prompt:t,model:n="gpt-4.1-mini",stream:o=!1,systemPrompt:s}=e;if(!t)throw new Error("Prompt is required");try{const a=en(),r=new Qt("https://cortex-api.moralis.io"),i=s?`${s}
|
|
97
|
+
`).slice(0,-1)}class ai extends ue{constructor(t,{account:n,docsPath:o,chain:s,data:a,gas:r,gasPrice:i,maxFeePerGas:d,maxPriorityFeePerGas:T,nonce:B,to:H,value:h,stateOverride:E}){const m=n?Qn(n):void 0;let C=Bo({from:m?.address,to:H,value:typeof h<"u"&&`${wa(h)} ${s?.nativeCurrency?.symbol||"ETH"}`,data:a,gas:r,gasPrice:typeof i<"u"&&`${It(i)} gwei`,maxFeePerGas:typeof d<"u"&&`${It(d)} gwei`,maxPriorityFeePerGas:typeof T<"u"&&`${It(T)} gwei`,nonce:B});E&&(C+=`
|
|
98
|
+
${si(E)}`),super(t.shortMessage,{cause:t,docsPath:o,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",C].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}function ri(e,t){const n=(e.details||"").toLowerCase(),o=e instanceof ue?e.walk(s=>s?.code===Wt.code):e;return o instanceof ue?new Wt({cause:e,message:o.details}):Wt.nodeMessage.test(n)?new Wt({cause:e,message:e.details}):Ct.nodeMessage.test(n)?new Ct({cause:e,maxFeePerGas:t?.maxFeePerGas}):Un.nodeMessage.test(n)?new Un({cause:e,maxFeePerGas:t?.maxFeePerGas}):Rn.nodeMessage.test(n)?new Rn({cause:e,nonce:t?.nonce}):Mn.nodeMessage.test(n)?new Mn({cause:e,nonce:t?.nonce}):Ln.nodeMessage.test(n)?new Ln({cause:e,nonce:t?.nonce}):Hn.nodeMessage.test(n)?new Hn({cause:e}):Wn.nodeMessage.test(n)?new Wn({cause:e,gas:t?.gas}):Vn.nodeMessage.test(n)?new Vn({cause:e,gas:t?.gas}):Gn.nodeMessage.test(n)?new Gn({cause:e}):qt.nodeMessage.test(n)?new qt({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new Jo({cause:e})}function ii(e,{docsPath:t,...n}){const o=(()=>{const s=ri(e,n);return s instanceof Jo?e:s})();return new ai(o,{docsPath:t,...n})}function ci(e,{format:t}){if(!t)return{};const n={};function o(a){const r=Object.keys(a);for(const i of r)i in e&&(n[i]=e[i]),a[i]&&typeof a[i]=="object"&&!Array.isArray(a[i])&&o(a[i])}const s=t(e||{});return o(s),n}function li(e){const{account:t,maxFeePerGas:n,maxPriorityFeePerGas:o,to:s}=e,a=t?Qn(t):void 0;if(a&&!He(a.address))throw new ct({address:a.address});if(s&&!He(s))throw new ct({address:s});if(n&&n>Lt)throw new Ct({maxFeePerGas:n});if(o&&n&&o>n)throw new qt({maxFeePerGas:n,maxPriorityFeePerGas:o})}async function di(e,t){const{account:n=e.account}=t;if(!n)throw new Nr;const o=Qn(n);try{const{accessList:s,blockNumber:a,blockTag:r,data:i,gas:d,gasPrice:T,maxFeePerGas:B,maxPriorityFeePerGas:H,nonce:h,to:E,value:m,...C}=t,ve=(typeof a=="bigint"?le(a):void 0)||r;li(t);const I=e.chain?.formatters?.transactionRequest?.format,K=(I||ia)({...ci(C,{format:I}),account:o,accessList:s,data:i,gas:d,gasPrice:T,maxFeePerGas:B,maxPriorityFeePerGas:H,nonce:h,to:E,value:m},"estimateGas"),{baseFeePerGas:fe,gasLimit:pe,priorityFeePerGas:Be}=await e.request({method:"linea_estimateGas",params:ve?[K,ve]:[K]});return{baseFeePerGas:BigInt(fe),gasLimit:BigInt(pe),priorityFeePerGas:BigInt(Be)}}catch(s){throw ii(s,{...t,account:o,chain:e.chain})}}const ui={fees:{estimateFeesPerGas:ls,async maxPriorityFeePerGas({block:e,client:t,request:n}){const o=await ls({block:e,client:t,multiply:s=>s,request:n,type:"eip1559"});return o?.maxPriorityFeePerGas?o.maxPriorityFeePerGas:null}}};async function ls({client:e,multiply:t,request:n,type:o}){try{const s=await di(e,{...n,account:n?.account}),{priorityFeePerGas:a}=s,i=t(BigInt(s.baseFeePerGas))+a;return o==="legacy"?{gasPrice:i}:{maxFeePerGas:i,maxPriorityFeePerGas:a}}catch{return null}}const fi=ut({...ui,id:59144,name:"Linea Mainnet",blockTime:2e3,nativeCurrency:{name:"Linea Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.linea.build"],webSocket:["wss://rpc.linea.build"]}},blockExplorers:{default:{name:"Etherscan",url:"https://lineascan.build",apiUrl:"https://api.lineascan.build/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:42},ensRegistry:{address:"0x50130b669B28C339991d8676FA73CF122a121267",blockCreated:6682888},ensUniversalResolver:{address:"0x4D41762915F83c76EcaF6776d9b08076aA32b492",blockCreated:22222151}},ensTlds:[".linea.eth"],testnet:!1}),pi=ut({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),_t=1,mi=ut({...mn,id:10,name:"OP Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},blockExplorers:{default:{name:"Optimism Explorer",url:"https://optimistic.etherscan.io",apiUrl:"https://api-optimistic.etherscan.io/api"}},contracts:{...mn.contracts,disputeGameFactory:{[_t]:{address:"0xe5965Ab5962eDc7477C8520243A95517CD252fA9"}},l2OutputOracle:{[_t]:{address:"0xdfe97868233d1aa22e815a266982f2cf17685a27"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263},portal:{[_t]:{address:"0xbEb5Fc579115071764c7423A4f12eDde41f106Ed"}},l1StandardBridge:{[_t]:{address:"0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1"}}},sourceId:_t}),hi=ut({id:137,name:"Polygon",blockTime:2e3,nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},blockExplorers:{default:{name:"PolygonScan",url:"https://polygonscan.com",apiUrl:"https://api.etherscan.io/v2/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}}}),ds="/docs/contract/encodeFunctionData";function gi(e){const{abi:t,args:n,functionName:o}=e;let s=t[0];if(o){const a=oi({abi:t,args:n,name:o});if(!a)throw new os(o,{docsPath:ds});s=a}if(s.type!=="function")throw new os(void 0,{docsPath:ds});return{abi:[s],functionName:rs(Xn(s))}}function vt(e){const{args:t}=e,{abi:n,functionName:o}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:gi(e),s=n[0],a=o,r="inputs"in s&&s.inputs?jr(s.inputs,t??[]):void 0;return St([a,r??"0x"])}const lt={1:{...pi,logo:"data:image/png;base64,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",chainId:1,chainType:"ether",chainTypeMoralis:"eth",tokenTrendingDefault:["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"]},10:{...mi,logo:"data:image/png;base64,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",chainId:10,chainType:"optimism",chainTypeMoralis:"optimism",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0x68f180fcce6836688e9084f035309e29bf0a2095","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},56:{...Br,logo:"data:image/png;base64,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",chainId:56,chainType:"bsc",chainTypeMoralis:"bsc",tokenTrendingDefault:["0x2170ed0880ac9a755fd29b2688956bd959f933f8","0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c"]},137:{...hi,rpcUrls:{default:{http:["https://polygon-bor-rpc.publicnode.com"]}},logo:"data:image/png;base64,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",chainId:137,chainType:"matic",chainTypeMoralis:"polygon",tokenTrendingDefault:["0x7ceb23fd6bc0add59e62ac25578270cff1b9f619","0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6"]},8453:{...ts,logo:"data:image/png;base64,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",chainId:8453,chainType:"base",chainTypeMoralis:"base",tokenTrendingDefault:["0x4200000000000000000000000000000000000006","0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf","0xc47da4cb96ce65a96844a01bfae509f9d5454534"]},42161:{...Ir,logo:"data:image/png;base64,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",chainId:42161,chainType:"arbitrum",chainTypeMoralis:"arbitrum",tokenTrendingDefault:["0x82af49447d8a07e3bd95bd0d56f35241523fbab1","0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"]},43114:{...Cr,logo:"data:image/png;base64,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",chainId:43114,chainType:"avax",chainTypeMoralis:"avalanche",tokenTrendingDefault:["0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB","0x0555E30da8f98308EdB960aa94C0Db47230d2B9c"]},59144:{...fi,logo:"data:image/png;base64,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",chainId:59144,chainType:"linea",chainTypeMoralis:"linea",tokenTrendingDefault:["0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f","0x3aab2285ddcddad8edf438c1bab47e1a9d05a9b4"]}},us=e=>Object.values(lt).find(n=>n.chainTypeMoralis===e)?.chainType||null,wi=e=>{const t=new Date,n=new Date(t);n.setDate(n.getDate()-1);const o=new Date(e);return o.setHours(0,0,0,0),t.setHours(0,0,0,0),n.setHours(0,0,0,0),o.getTime()===t.getTime()?"Today":o.getTime()===n.getTime()?"Yesterday":o.toLocaleDateString("en-US",{month:"short",day:"numeric",year:o.getFullYear()!==t.getFullYear()?"numeric":void 0})},ot=e=>new Promise(t=>setTimeout(t,e||0)),bi=(e,t=5,n=5)=>(e=e||"",e?.length<=t+n?e:`${e.substr(0,t)}...${e.substr(e.length-n,n)}`),yi=e=>{if(!e)return"";const t=lt[e];return t?t.chainTypeMoralis:""},Ai=e=>{if(!e)return"";const t=lt[e];return t?t.chainType:""},Bt={getItem(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}},setItem(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,t)}catch{}},removeItem(e){if(!(typeof window>"u"))try{window.localStorage.removeItem(e)}catch{}},get length(){if(typeof window>"u")return 0;try{return window.localStorage.length}catch{return 0}},key(e){if(typeof window>"u")return null;try{return window.localStorage.key(e)}catch{return null}}};class vi extends ue{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function mt(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new vi({value:e});let[n,o="0"]=e.split(".");const s=n.startsWith("-");if(s&&(n=n.slice(1)),o=o.replace(/(0+)$/,""),t===0)Math.round(+`.${o}`)===1&&(n=`${BigInt(n)+1n}`),o="";else if(o.length>t){const[a,r,i]=[o.slice(0,t-1),o.slice(t-1,t),o.slice(t)],d=Math.round(+`${r}.${i}`);d>9?o=`${BigInt(a)+BigInt(1)}0`.padStart(a.length+1,"0"):o=`${a}${d}`,o.length>t&&(o=o.slice(1),n=`${BigInt(n)+1n}`),o=o.slice(0,t)}else o=o.padEnd(t,"0");return BigInt(`${s?"-":""}${n}${o}`)}const ki="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Ve="0x0000000000000000000000000000000000000000",fs=ne.createContext(void 0),eo=()=>{const e=ne.useContext(fs);if(!e)throw new Error("useConnect must be used within ConnectProvider");return{...e,chainData:lt[e.account?.chainId]||void 0,chainId:e.account?.chainId||void 0,chainType:Ai(e.account?.chainId||void 0),chainTypeMoralis:yi(e.account?.chainId||void 0),isChainSupported:!!lt[e.account?.chainId]}},Ti=({children:e,initialAccount:t})=>F.jsx(fs.Provider,{value:{account:t||null},children:e}),Ei=({address:e,chainId:t})=>{const[n,o]=ne.useState(!1),{isChainSupported:s}=eo(),a=ne.useCallback(()=>{if(!e)return;const r=e,i=()=>{o(!0),setTimeout(()=>o(!1),2e3)};try{navigator.clipboard.writeText(r).then(i).catch(()=>{const d=document.createElement("input");d.value=r,document.body.appendChild(d),d.select(),document.execCommand("copy"),d.remove(),i()})}catch{const d=document.createElement("input");d.value=r,document.body.appendChild(d),d.select(),document.execCommand("copy"),d.remove(),i()}},[e]);return F.jsx(F.Fragment,{children:He(e||"")&&F.jsxs("div",{className:"chat-user-info",children:[t&<[t]?.logo&&F.jsx("div",{className:"user-avatar",children:F.jsx("img",{src:lt[t].logo||"",alt:"Chain",width:20,height:20})}),F.jsx("span",{className:"user-wallet",children:F.jsx("a",{style:{pointerEvents:s?"auto":"none"},href:lt[t]?.blockExplorers?.default?.url+"/address/"+e,target:"_blank",rel:"noopener noreferrer",children:bi(e)||"Not connected"})}),F.jsx("button",{className:"copy-address-btn",onClick:a,"aria-label":"Copy wallet address",type:"button",title:n?"Copied!":"Copy address",children:n?F.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:F.jsx("path",{d:"M13.3333 4L6 11.3333L2.66667 8",stroke:"#0B3988",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}):F.jsx("svg",{width:"14",height:"14",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:F.jsx("path",{d:"M8.1 15.75H13.23C12.9638 16.4152 12.5041 16.9852 11.9105 17.3863C11.3168 17.7874 10.6165 18.0012 9.9 18H3.6C2.64522 18 1.72955 17.6207 1.05442 16.9456C0.379285 16.2704 0 15.3548 0 14.4V7.2C0.00104929 6.32332 0.321408 5.47704 0.901163 4.81944C1.48092 4.16183 2.28037 3.73792 3.15 3.627V10.8C3.15238 12.1121 3.67466 13.3698 4.60245 14.2975C5.53024 15.2253 6.78791 15.7476 8.1 15.75ZM15.75 3.825H17.658C17.6027 3.74389 17.5393 3.66852 17.469 3.6L14.4 0.531C14.3337 0.460854 14.258 0.400274 14.175 0.351V2.25C14.1769 2.66713 14.3434 3.06664 14.6384 3.3616C14.9334 3.65656 15.3329 3.8231 15.75 3.825ZM15.75 5.175C14.9747 5.17357 14.2315 4.86494 13.6833 4.31671C13.1351 3.76847 12.8264 3.02532 12.825 2.25V0H8.1C7.14522 0 6.22955 0.379285 5.55442 1.05442C4.87928 1.72955 4.5 2.64522 4.5 3.6V10.8C4.5 11.7548 4.87928 12.6704 5.55442 13.3456C6.22955 14.0207 7.14522 14.4 8.1 14.4H14.4C15.3548 14.4 16.2705 14.0207 16.9456 13.3456C17.6207 12.6704 18 11.7548 18 10.8V5.175H15.75Z",fill:"#0B3988"})})})]})})},Ge=[];for(let e=0;e<256;++e)Ge.push((e+256).toString(16).slice(1));function Si(e,t=0){return(Ge[e[t+0]]+Ge[e[t+1]]+Ge[e[t+2]]+Ge[e[t+3]]+"-"+Ge[e[t+4]]+Ge[e[t+5]]+"-"+Ge[e[t+6]]+Ge[e[t+7]]+"-"+Ge[e[t+8]]+Ge[e[t+9]]+"-"+Ge[e[t+10]]+Ge[e[t+11]]+Ge[e[t+12]]+Ge[e[t+13]]+Ge[e[t+14]]+Ge[e[t+15]]).toLowerCase()}let to;const xi=new Uint8Array(16);function Ii(){if(!to){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");to=crypto.getRandomValues.bind(crypto)}return to(xi)}const ps={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ci(e,t,n){e=e||{};const o=e.random??e.rng?.()??Ii();if(o.length<16)throw new Error("Random bytes length must be >= 16");return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Si(o)}function ms(e,t,n){return ps.randomUUID&&!e?ps.randomUUID():Ci(e)}const no="chat_widget_messages",hs=200,Vt=[{id:ms(),text:`**Welcome! 🚀**
|
|
99
|
+
You're connected and ready to explore DeFi! I can help you trade, check prices, and analyze your portfolio when you need it.`,sender:"bot",timestamp:new Date}];function Bi(e,t){return e&&t?`${e}_${t}`:""}function gs(e){return e.map(t=>({...t,timestamp:new Date(t.timestamp)}))}function ws(){const e=Bt.getItem(no);if(!e)return null;try{const t=JSON.parse(e);if(t&&t.owner!==void 0&&Array.isArray(t.messages))return{owner:t.owner,messages:gs(t.messages)};if(Array.isArray(t))return{owner:"",messages:gs(t)}}catch{}return null}function hn(e,t){Bt.setItem(no,JSON.stringify({owner:e,messages:t}))}function Ni(){const{account:e}=eo(),t=Bi(e?.address,e?.chainId),[n,o]=ne.useState(()=>t||"pending"),[s,a]=ne.useState(()=>{const B=ws();return t?B&&B.owner===t?B.messages:Vt:B?.messages??Vt});if(n==="pending"&&t){const B=ws();B&&B.owner===t?a(B.messages):hn(t,s),o(t)}else n!=="pending"&&t&&n!==t&&(a(Vt),hn(t,Vt),o(t));ne.useEffect(()=>{n!=="pending"&&hn(n,s)},[s,n]),ne.useEffect(()=>{const B=[];for(let H=0;H<Bt.length;H++){const h=Bt.key(H);h&&h.startsWith(no+"_")&&B.push(h)}B.forEach(H=>Bt.removeItem(H))},[]);const r=(B,H,h,E,m)=>{const C=h?s.find(ve=>ve.id===h):void 0,M={id:ms(),text:B,sender:H,timestamp:new Date,...C&&{replyTo:{id:C.id,text:C.text,sender:C.sender}},...E&&{buttons:E},...m&&{actionData:m}};return a(ve=>{const I=[...ve,M];return I.length>hs?I.slice(I.length-hs):I}),M},i=(B,H)=>{a(h=>h.map(E=>E.id===B&&E.actionData?{...E,actionData:{...E.actionData,status:H}}:E))},d=(B,H)=>{a(h=>h.map(E=>E.id===B?{...E,text:H}:E))},T=ne.useCallback(()=>{a(Vt),hn(t,Vt)},[t]);return{messages:s,setMessages:a,addMessage:r,updateMessageAction:i,updateMessageText:d,clearMessages:T}}const bs=ne.createContext(void 0),Fi=()=>{const e=ne.useContext(bs);if(!e)throw new Error("useConfig must be used within ConfigProvider");return e},Pi=({children:e,initialConfig:t})=>F.jsx(bs.Provider,{value:{config:t||null},children:e});var Di=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,oo=Math.ceil,_e=Math.floor,ze="[BigNumber Error] ",ys=ze+"Number primitive has more than 15 significant digits: ",st=1e14,ge=14,so=9007199254740991,ao=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],kt=1e7,We=1e9;function As(e){var t,n,o,s=I.prototype={constructor:I,toString:null,valueOf:null},a=new I(1),r=20,i=4,d=-7,T=21,B=-1e7,H=1e7,h=!1,E=1,m=0,C={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},M="0123456789abcdefghijklmnopqrstuvwxyz",ve=!0;function I(l,u){var c,g,w,b,A,y,k,v,S=this;if(!(S instanceof I))return new I(l,u);if(u==null){if(l&&l._isBigNumber===!0){S.s=l.s,!l.c||l.e>H?S.c=S.e=null:l.e<B?S.c=[S.e=0]:(S.e=l.e,S.c=l.c.slice());return}if((y=typeof l=="number")&&l*0==0){if(S.s=1/l<0?(l=-l,-1):1,l===~~l){for(b=0,A=l;A>=10;A/=10,b++);b>H?S.c=S.e=null:(S.e=b,S.c=[l]);return}v=String(l)}else{if(!Di.test(v=String(l)))return o(S,v,y);S.s=v.charCodeAt(0)==45?(v=v.slice(1),-1):1}(b=v.indexOf("."))>-1&&(v=v.replace(".","")),(A=v.search(/e/i))>0?(b<0&&(b=A),b+=+v.slice(A+1),v=v.substring(0,A)):b<0&&(b=v.length)}else{if(Ne(u,2,M.length,"Base"),u==10&&ve)return S=new I(l),pe(S,r+S.e+1,i);if(v=String(l),y=typeof l=="number"){if(l*0!=0)return o(S,v,y,u);if(S.s=1/l<0?(v=v.slice(1),-1):1,I.DEBUG&&v.replace(/^0\.0*|\./,"").length>15)throw Error(ys+l)}else S.s=v.charCodeAt(0)===45?(v=v.slice(1),-1):1;for(c=M.slice(0,u),b=A=0,k=v.length;A<k;A++)if(c.indexOf(g=v.charAt(A))<0){if(g=="."){if(A>b){b=k;continue}}else if(!w&&(v==v.toUpperCase()&&(v=v.toLowerCase())||v==v.toLowerCase()&&(v=v.toUpperCase()))){w=!0,A=-1,b=0;continue}return o(S,String(l),y,u)}y=!1,v=n(v,u,10,S.s),(b=v.indexOf("."))>-1?v=v.replace(".",""):b=v.length}for(A=0;v.charCodeAt(A)===48;A++);for(k=v.length;v.charCodeAt(--k)===48;);if(v=v.slice(A,++k)){if(k-=A,y&&I.DEBUG&&k>15&&(l>so||l!==_e(l)))throw Error(ys+S.s*l);if((b=b-A-1)>H)S.c=S.e=null;else if(b<B)S.c=[S.e=0];else{if(S.e=b,S.c=[],A=(b+1)%ge,b<0&&(A+=ge),A<k){for(A&&S.c.push(+v.slice(0,A)),k-=ge;A<k;)S.c.push(+v.slice(A,A+=ge));A=ge-(v=v.slice(A)).length}else A-=k;for(;A--;v+="0");S.c.push(+v)}}else S.c=[S.e=0]}I.clone=As,I.ROUND_UP=0,I.ROUND_DOWN=1,I.ROUND_CEIL=2,I.ROUND_FLOOR=3,I.ROUND_HALF_UP=4,I.ROUND_HALF_DOWN=5,I.ROUND_HALF_EVEN=6,I.ROUND_HALF_CEIL=7,I.ROUND_HALF_FLOOR=8,I.EUCLID=9,I.config=I.set=function(l){var u,c;if(l!=null)if(typeof l=="object"){if(l.hasOwnProperty(u="DECIMAL_PLACES")&&(c=l[u],Ne(c,0,We,u),r=c),l.hasOwnProperty(u="ROUNDING_MODE")&&(c=l[u],Ne(c,0,8,u),i=c),l.hasOwnProperty(u="EXPONENTIAL_AT")&&(c=l[u],c&&c.pop?(Ne(c[0],-We,0,u),Ne(c[1],0,We,u),d=c[0],T=c[1]):(Ne(c,-We,We,u),d=-(T=c<0?-c:c))),l.hasOwnProperty(u="RANGE"))if(c=l[u],c&&c.pop)Ne(c[0],-We,-1,u),Ne(c[1],1,We,u),B=c[0],H=c[1];else if(Ne(c,-We,We,u),c)B=-(H=c<0?-c:c);else throw Error(ze+u+" cannot be zero: "+c);if(l.hasOwnProperty(u="CRYPTO"))if(c=l[u],c===!!c)if(c)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))h=c;else throw h=!c,Error(ze+"crypto unavailable");else h=c;else throw Error(ze+u+" not true or false: "+c);if(l.hasOwnProperty(u="MODULO_MODE")&&(c=l[u],Ne(c,0,9,u),E=c),l.hasOwnProperty(u="POW_PRECISION")&&(c=l[u],Ne(c,0,We,u),m=c),l.hasOwnProperty(u="FORMAT"))if(c=l[u],typeof c=="object")C=c;else throw Error(ze+u+" not an object: "+c);if(l.hasOwnProperty(u="ALPHABET"))if(c=l[u],typeof c=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(c))ve=c.slice(0,10)=="0123456789",M=c;else throw Error(ze+u+" invalid: "+c)}else throw Error(ze+"Object expected: "+l);return{DECIMAL_PLACES:r,ROUNDING_MODE:i,EXPONENTIAL_AT:[d,T],RANGE:[B,H],CRYPTO:h,MODULO_MODE:E,POW_PRECISION:m,FORMAT:C,ALPHABET:M}},I.isBigNumber=function(l){if(!l||l._isBigNumber!==!0)return!1;if(!I.DEBUG)return!0;var u,c,g=l.c,w=l.e,b=l.s;e:if({}.toString.call(g)=="[object Array]"){if((b===1||b===-1)&&w>=-We&&w<=We&&w===_e(w)){if(g[0]===0){if(w===0&&g.length===1)return!0;break e}if(u=(w+1)%ge,u<1&&(u+=ge),String(g[0]).length==u){for(u=0;u<g.length;u++)if(c=g[u],c<0||c>=st||c!==_e(c))break e;if(c!==0)return!0}}}else if(g===null&&w===null&&(b===null||b===1||b===-1))return!0;throw Error(ze+"Invalid BigNumber: "+l)},I.maximum=I.max=function(){return K(arguments,-1)},I.minimum=I.min=function(){return K(arguments,1)},I.random=(function(){var l=9007199254740992,u=Math.random()*l&2097151?function(){return _e(Math.random()*l)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(c){var g,w,b,A,y,k=0,v=[],S=new I(a);if(c==null?c=r:Ne(c,0,We),A=oo(c/ge),h)if(crypto.getRandomValues){for(g=crypto.getRandomValues(new Uint32Array(A*=2));k<A;)y=g[k]*131072+(g[k+1]>>>11),y>=9e15?(w=crypto.getRandomValues(new Uint32Array(2)),g[k]=w[0],g[k+1]=w[1]):(v.push(y%1e14),k+=2);k=A/2}else if(crypto.randomBytes){for(g=crypto.randomBytes(A*=7);k<A;)y=(g[k]&31)*281474976710656+g[k+1]*1099511627776+g[k+2]*4294967296+g[k+3]*16777216+(g[k+4]<<16)+(g[k+5]<<8)+g[k+6],y>=9e15?crypto.randomBytes(7).copy(g,k):(v.push(y%1e14),k+=7);k=A/7}else throw h=!1,Error(ze+"crypto unavailable");if(!h)for(;k<A;)y=u(),y<9e15&&(v[k++]=y%1e14);for(A=v[--k],c%=ge,A&&c&&(y=ao[ge-c],v[k]=_e(A/y)*y);v[k]===0;v.pop(),k--);if(k<0)v=[b=0];else{for(b=-1;v[0]===0;v.splice(0,1),b-=ge);for(k=1,y=v[0];y>=10;y/=10,k++);k<ge&&(b-=ge-k)}return S.e=b,S.c=v,S}})(),I.sum=function(){for(var l=1,u=arguments,c=new I(u[0]);l<u.length;)c=c.plus(u[l++]);return c},n=(function(){var l="0123456789";function u(c,g,w,b){for(var A,y=[0],k,v=0,S=c.length;v<S;){for(k=y.length;k--;y[k]*=g);for(y[0]+=b.indexOf(c.charAt(v++)),A=0;A<y.length;A++)y[A]>w-1&&(y[A+1]==null&&(y[A+1]=0),y[A+1]+=y[A]/w|0,y[A]%=w)}return y.reverse()}return function(c,g,w,b,A){var y,k,v,S,D,z,se,he,ke=c.indexOf("."),xe=r,Q=i;for(ke>=0&&(S=m,m=0,c=c.replace(".",""),he=new I(g),z=he.pow(c.length-ke),m=S,he.c=u(ht(et(z.c),z.e,"0"),10,w,l),he.e=he.c.length),se=u(c,g,w,A?(y=M,l):(y=l,M)),v=S=se.length;se[--S]==0;se.pop());if(!se[0])return y.charAt(0);if(ke<0?--v:(z.c=se,z.e=v,z.s=b,z=t(z,he,xe,Q,w),se=z.c,D=z.r,v=z.e),k=v+xe+1,ke=se[k],S=w/2,D=D||k<0||se[k+1]!=null,D=Q<4?(ke!=null||D)&&(Q==0||Q==(z.s<0?3:2)):ke>S||ke==S&&(Q==4||D||Q==6&&se[k-1]&1||Q==(z.s<0?8:7)),k<1||!se[0])c=D?ht(y.charAt(1),-xe,y.charAt(0)):y.charAt(0);else{if(se.length=k,D)for(--w;++se[--k]>w;)se[k]=0,k||(++v,se=[1].concat(se));for(S=se.length;!se[--S];);for(ke=0,c="";ke<=S;c+=y.charAt(se[ke++]));c=ht(c,v,y.charAt(0))}return c}})(),t=(function(){function l(g,w,b){var A,y,k,v,S=0,D=g.length,z=w%kt,se=w/kt|0;for(g=g.slice();D--;)k=g[D]%kt,v=g[D]/kt|0,A=se*k+v*z,y=z*k+A%kt*kt+S,S=(y/b|0)+(A/kt|0)+se*v,g[D]=y%b;return S&&(g=[S].concat(g)),g}function u(g,w,b,A){var y,k;if(b!=A)k=b>A?1:-1;else for(y=k=0;y<b;y++)if(g[y]!=w[y]){k=g[y]>w[y]?1:-1;break}return k}function c(g,w,b,A){for(var y=0;b--;)g[b]-=y,y=g[b]<w[b]?1:0,g[b]=y*A+g[b]-w[b];for(;!g[0]&&g.length>1;g.splice(0,1));}return function(g,w,b,A,y){var k,v,S,D,z,se,he,ke,xe,Q,we,Se,Ye,at,Xe,Pe,je,Le=g.s==w.s?1:-1,De=g.c,Te=w.c;if(!De||!De[0]||!Te||!Te[0])return new I(!g.s||!w.s||(De?Te&&De[0]==Te[0]:!Te)?NaN:De&&De[0]==0||!Te?Le*0:Le/0);for(ke=new I(Le),xe=ke.c=[],v=g.e-w.e,Le=b+v+1,y||(y=st,v=$e(g.e/ge)-$e(w.e/ge),Le=Le/ge|0),S=0;Te[S]==(De[S]||0);S++);if(Te[S]>(De[S]||0)&&v--,Le<0)xe.push(1),D=!0;else{for(at=De.length,Pe=Te.length,S=0,Le+=2,z=_e(y/(Te[0]+1)),z>1&&(Te=l(Te,z,y),De=l(De,z,y),Pe=Te.length,at=De.length),Ye=Pe,Q=De.slice(0,Pe),we=Q.length;we<Pe;Q[we++]=0);je=Te.slice(),je=[0].concat(je),Xe=Te[0],Te[1]>=y/2&&Xe++;do{if(z=0,k=u(Te,Q,Pe,we),k<0){if(Se=Q[0],Pe!=we&&(Se=Se*y+(Q[1]||0)),z=_e(Se/Xe),z>1)for(z>=y&&(z=y-1),se=l(Te,z,y),he=se.length,we=Q.length;u(se,Q,he,we)==1;)z--,c(se,Pe<he?je:Te,he,y),he=se.length,k=1;else z==0&&(k=z=1),se=Te.slice(),he=se.length;if(he<we&&(se=[0].concat(se)),c(Q,se,we,y),we=Q.length,k==-1)for(;u(Te,Q,Pe,we)<1;)z++,c(Q,Pe<we?je:Te,we,y),we=Q.length}else k===0&&(z++,Q=[0]);xe[S++]=z,Q[0]?Q[we++]=De[Ye]||0:(Q=[De[Ye]],we=1)}while((Ye++<at||Q[0]!=null)&&Le--);D=Q[0]!=null,xe[0]||xe.splice(0,1)}if(y==st){for(S=1,Le=xe[0];Le>=10;Le/=10,S++);pe(ke,b+(ke.e=S+v*ge-1)+1,A,D)}else ke.e=v,ke.r=+D;return ke}})();function Y(l,u,c,g){var w,b,A,y,k;if(c==null?c=i:Ne(c,0,8),!l.c)return l.toString();if(w=l.c[0],A=l.e,u==null)k=et(l.c),k=g==1||g==2&&(A<=d||A>=T)?wn(k,A):ht(k,A,"0");else if(l=pe(new I(l),u,c),b=l.e,k=et(l.c),y=k.length,g==1||g==2&&(u<=b||b<=d)){for(;y<u;k+="0",y++);k=wn(k,b)}else if(u-=A+(g===2&&b>A),k=ht(k,b,"0"),b+1>y){if(--u>0)for(k+=".";u--;k+="0");}else if(u+=b-y,u>0)for(b+1==y&&(k+=".");u--;k+="0");return l.s<0&&w?"-"+k:k}function K(l,u){for(var c,g,w=1,b=new I(l[0]);w<l.length;w++)g=new I(l[w]),(!g.s||(c=Nt(b,g))===u||c===0&&b.s===u)&&(b=g);return b}function fe(l,u,c){for(var g=1,w=u.length;!u[--w];u.pop());for(w=u[0];w>=10;w/=10,g++);return(c=g+c*ge-1)>H?l.c=l.e=null:c<B?l.c=[l.e=0]:(l.e=c,l.c=u),l}o=(function(){var l=/^(-?)0([xbo])(?=\w[\w.]*$)/i,u=/^([^.]+)\.$/,c=/^\.([^.]+)$/,g=/^-?(Infinity|NaN)$/,w=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(b,A,y,k){var v,S=y?A:A.replace(w,"");if(g.test(S))b.s=isNaN(S)?null:S<0?-1:1;else{if(!y&&(S=S.replace(l,function(D,z,se){return v=(se=se.toLowerCase())=="x"?16:se=="b"?2:8,!k||k==v?z:D}),k&&(v=k,S=S.replace(u,"$1").replace(c,"0.$1")),A!=S))return new I(S,v);if(I.DEBUG)throw Error(ze+"Not a"+(k?" base "+k:"")+" number: "+A);b.s=null}b.c=b.e=null}})();function pe(l,u,c,g){var w,b,A,y,k,v,S,D=l.c,z=ao;if(D){e:{for(w=1,y=D[0];y>=10;y/=10,w++);if(b=u-w,b<0)b+=ge,A=u,k=D[v=0],S=_e(k/z[w-A-1]%10);else if(v=oo((b+1)/ge),v>=D.length)if(g){for(;D.length<=v;D.push(0));k=S=0,w=1,b%=ge,A=b-ge+1}else break e;else{for(k=y=D[v],w=1;y>=10;y/=10,w++);b%=ge,A=b-ge+w,S=A<0?0:_e(k/z[w-A-1]%10)}if(g=g||u<0||D[v+1]!=null||(A<0?k:k%z[w-A-1]),g=c<4?(S||g)&&(c==0||c==(l.s<0?3:2)):S>5||S==5&&(c==4||g||c==6&&(b>0?A>0?k/z[w-A]:0:D[v-1])%10&1||c==(l.s<0?8:7)),u<1||!D[0])return D.length=0,g?(u-=l.e+1,D[0]=z[(ge-u%ge)%ge],l.e=-u||0):D[0]=l.e=0,l;if(b==0?(D.length=v,y=1,v--):(D.length=v+1,y=z[ge-b],D[v]=A>0?_e(k/z[w-A]%z[A])*y:0),g)for(;;)if(v==0){for(b=1,A=D[0];A>=10;A/=10,b++);for(A=D[0]+=y,y=1;A>=10;A/=10,y++);b!=y&&(l.e++,D[0]==st&&(D[0]=1));break}else{if(D[v]+=y,D[v]!=st)break;D[v--]=0,y=1}for(b=D.length;D[--b]===0;D.pop());}l.e>H?l.c=l.e=null:l.e<B&&(l.c=[l.e=0])}return l}function Be(l){var u,c=l.e;return c===null?l.toString():(u=et(l.c),u=c<=d||c>=T?wn(u,c):ht(u,c,"0"),l.s<0?"-"+u:u)}return s.absoluteValue=s.abs=function(){var l=new I(this);return l.s<0&&(l.s=1),l},s.comparedTo=function(l,u){return Nt(this,new I(l,u))},s.decimalPlaces=s.dp=function(l,u){var c,g,w,b=this;if(l!=null)return Ne(l,0,We),u==null?u=i:Ne(u,0,8),pe(new I(b),l+b.e+1,u);if(!(c=b.c))return null;if(g=((w=c.length-1)-$e(this.e/ge))*ge,w=c[w])for(;w%10==0;w/=10,g--);return g<0&&(g=0),g},s.dividedBy=s.div=function(l,u){return t(this,new I(l,u),r,i)},s.dividedToIntegerBy=s.idiv=function(l,u){return t(this,new I(l,u),0,1)},s.exponentiatedBy=s.pow=function(l,u){var c,g,w,b,A,y,k,v,S,D=this;if(l=new I(l),l.c&&!l.isInteger())throw Error(ze+"Exponent not an integer: "+Be(l));if(u!=null&&(u=new I(u)),y=l.e>14,!D.c||!D.c[0]||D.c[0]==1&&!D.e&&D.c.length==1||!l.c||!l.c[0])return S=new I(Math.pow(+Be(D),y?l.s*(2-gn(l)):+Be(l))),u?S.mod(u):S;if(k=l.s<0,u){if(u.c?!u.c[0]:!u.s)return new I(NaN);g=!k&&D.isInteger()&&u.isInteger(),g&&(D=D.mod(u))}else{if(l.e>9&&(D.e>0||D.e<-1||(D.e==0?D.c[0]>1||y&&D.c[1]>=24e7:D.c[0]<8e13||y&&D.c[0]<=9999975e7)))return b=D.s<0&&gn(l)?-0:0,D.e>-1&&(b=1/b),new I(k?1/b:b);m&&(b=oo(m/ge+2))}for(y?(c=new I(.5),k&&(l.s=1),v=gn(l)):(w=Math.abs(+Be(l)),v=w%2),S=new I(a);;){if(v){if(S=S.times(D),!S.c)break;b?S.c.length>b&&(S.c.length=b):g&&(S=S.mod(u))}if(w){if(w=_e(w/2),w===0)break;v=w%2}else if(l=l.times(c),pe(l,l.e+1,1),l.e>14)v=gn(l);else{if(w=+Be(l),w===0)break;v=w%2}D=D.times(D),b?D.c&&D.c.length>b&&(D.c.length=b):g&&(D=D.mod(u))}return g?S:(k&&(S=a.div(S)),u?S.mod(u):b?pe(S,m,i,A):S)},s.integerValue=function(l){var u=new I(this);return l==null?l=i:Ne(l,0,8),pe(u,u.e+1,l)},s.isEqualTo=s.eq=function(l,u){return Nt(this,new I(l,u))===0},s.isFinite=function(){return!!this.c},s.isGreaterThan=s.gt=function(l,u){return Nt(this,new I(l,u))>0},s.isGreaterThanOrEqualTo=s.gte=function(l,u){return(u=Nt(this,new I(l,u)))===1||u===0},s.isInteger=function(){return!!this.c&&$e(this.e/ge)>this.c.length-2},s.isLessThan=s.lt=function(l,u){return Nt(this,new I(l,u))<0},s.isLessThanOrEqualTo=s.lte=function(l,u){return(u=Nt(this,new I(l,u)))===-1||u===0},s.isNaN=function(){return!this.s},s.isNegative=function(){return this.s<0},s.isPositive=function(){return this.s>0},s.isZero=function(){return!!this.c&&this.c[0]==0},s.minus=function(l,u){var c,g,w,b,A=this,y=A.s;if(l=new I(l,u),u=l.s,!y||!u)return new I(NaN);if(y!=u)return l.s=-u,A.plus(l);var k=A.e/ge,v=l.e/ge,S=A.c,D=l.c;if(!k||!v){if(!S||!D)return S?(l.s=-u,l):new I(D?A:NaN);if(!S[0]||!D[0])return D[0]?(l.s=-u,l):new I(S[0]?A:i==3?-0:0)}if(k=$e(k),v=$e(v),S=S.slice(),y=k-v){for((b=y<0)?(y=-y,w=S):(v=k,w=D),w.reverse(),u=y;u--;w.push(0));w.reverse()}else for(g=(b=(y=S.length)<(u=D.length))?y:u,y=u=0;u<g;u++)if(S[u]!=D[u]){b=S[u]<D[u];break}if(b&&(w=S,S=D,D=w,l.s=-l.s),u=(g=D.length)-(c=S.length),u>0)for(;u--;S[c++]=0);for(u=st-1;g>y;){if(S[--g]<D[g]){for(c=g;c&&!S[--c];S[c]=u);--S[c],S[g]+=st}S[g]-=D[g]}for(;S[0]==0;S.splice(0,1),--v);return S[0]?fe(l,S,v):(l.s=i==3?-1:1,l.c=[l.e=0],l)},s.modulo=s.mod=function(l,u){var c,g,w=this;return l=new I(l,u),!w.c||!l.s||l.c&&!l.c[0]?new I(NaN):!l.c||w.c&&!w.c[0]?new I(w):(E==9?(g=l.s,l.s=1,c=t(w,l,0,3),l.s=g,c.s*=g):c=t(w,l,0,E),l=w.minus(c.times(l)),!l.c[0]&&E==1&&(l.s=w.s),l)},s.multipliedBy=s.times=function(l,u){var c,g,w,b,A,y,k,v,S,D,z,se,he,ke,xe,Q=this,we=Q.c,Se=(l=new I(l,u)).c;if(!we||!Se||!we[0]||!Se[0])return!Q.s||!l.s||we&&!we[0]&&!Se||Se&&!Se[0]&&!we?l.c=l.e=l.s=null:(l.s*=Q.s,!we||!Se?l.c=l.e=null:(l.c=[0],l.e=0)),l;for(g=$e(Q.e/ge)+$e(l.e/ge),l.s*=Q.s,k=we.length,D=Se.length,k<D&&(he=we,we=Se,Se=he,w=k,k=D,D=w),w=k+D,he=[];w--;he.push(0));for(ke=st,xe=kt,w=D;--w>=0;){for(c=0,z=Se[w]%xe,se=Se[w]/xe|0,A=k,b=w+A;b>w;)v=we[--A]%xe,S=we[A]/xe|0,y=se*v+S*z,v=z*v+y%xe*xe+he[b]+c,c=(v/ke|0)+(y/xe|0)+se*S,he[b--]=v%ke;he[b]=c}return c?++g:he.splice(0,1),fe(l,he,g)},s.negated=function(){var l=new I(this);return l.s=-l.s||null,l},s.plus=function(l,u){var c,g=this,w=g.s;if(l=new I(l,u),u=l.s,!w||!u)return new I(NaN);if(w!=u)return l.s=-u,g.minus(l);var b=g.e/ge,A=l.e/ge,y=g.c,k=l.c;if(!b||!A){if(!y||!k)return new I(w/0);if(!y[0]||!k[0])return k[0]?l:new I(y[0]?g:w*0)}if(b=$e(b),A=$e(A),y=y.slice(),w=b-A){for(w>0?(A=b,c=k):(w=-w,c=y),c.reverse();w--;c.push(0));c.reverse()}for(w=y.length,u=k.length,w-u<0&&(c=k,k=y,y=c,u=w),w=0;u;)w=(y[--u]=y[u]+k[u]+w)/st|0,y[u]=st===y[u]?0:y[u]%st;return w&&(y=[w].concat(y),++A),fe(l,y,A)},s.precision=s.sd=function(l,u){var c,g,w,b=this;if(l!=null&&l!==!!l)return Ne(l,1,We),u==null?u=i:Ne(u,0,8),pe(new I(b),l,u);if(!(c=b.c))return null;if(w=c.length-1,g=w*ge+1,w=c[w]){for(;w%10==0;w/=10,g--);for(w=c[0];w>=10;w/=10,g++);}return l&&b.e+1>g&&(g=b.e+1),g},s.shiftedBy=function(l){return Ne(l,-so,so),this.times("1e"+l)},s.squareRoot=s.sqrt=function(){var l,u,c,g,w,b=this,A=b.c,y=b.s,k=b.e,v=r+4,S=new I("0.5");if(y!==1||!A||!A[0])return new I(!y||y<0&&(!A||A[0])?NaN:A?b:1/0);if(y=Math.sqrt(+Be(b)),y==0||y==1/0?(u=et(A),(u.length+k)%2==0&&(u+="0"),y=Math.sqrt(+u),k=$e((k+1)/2)-(k<0||k%2),y==1/0?u="5e"+k:(u=y.toExponential(),u=u.slice(0,u.indexOf("e")+1)+k),c=new I(u)):c=new I(y+""),c.c[0]){for(k=c.e,y=k+v,y<3&&(y=0);;)if(w=c,c=S.times(w.plus(t(b,w,v,1))),et(w.c).slice(0,y)===(u=et(c.c)).slice(0,y))if(c.e<k&&--y,u=u.slice(y-3,y+1),u=="9999"||!g&&u=="4999"){if(!g&&(pe(w,w.e+r+2,0),w.times(w).eq(b))){c=w;break}v+=4,y+=4,g=1}else{(!+u||!+u.slice(1)&&u.charAt(0)=="5")&&(pe(c,c.e+r+2,1),l=!c.times(c).eq(b));break}}return pe(c,c.e+r+1,i,l)},s.toExponential=function(l,u){return l!=null&&(Ne(l,0,We),l++),Y(this,l,u,1)},s.toFixed=function(l,u){return l!=null&&(Ne(l,0,We),l=l+this.e+1),Y(this,l,u)},s.toFormat=function(l,u,c){var g,w=this;if(c==null)l!=null&&u&&typeof u=="object"?(c=u,u=null):l&&typeof l=="object"?(c=l,l=u=null):c=C;else if(typeof c!="object")throw Error(ze+"Argument not an object: "+c);if(g=w.toFixed(l,u),w.c){var b,A=g.split("."),y=+c.groupSize,k=+c.secondaryGroupSize,v=c.groupSeparator||"",S=A[0],D=A[1],z=w.s<0,se=z?S.slice(1):S,he=se.length;if(k&&(b=y,y=k,k=b,he-=b),y>0&&he>0){for(b=he%y||y,S=se.substr(0,b);b<he;b+=y)S+=v+se.substr(b,y);k>0&&(S+=v+se.slice(b)),z&&(S="-"+S)}g=D?S+(c.decimalSeparator||"")+((k=+c.fractionGroupSize)?D.replace(new RegExp("\\d{"+k+"}\\B","g"),"$&"+(c.fractionGroupSeparator||"")):D):S}return(c.prefix||"")+g+(c.suffix||"")},s.toFraction=function(l){var u,c,g,w,b,A,y,k,v,S,D,z,se=this,he=se.c;if(l!=null&&(y=new I(l),!y.isInteger()&&(y.c||y.s!==1)||y.lt(a)))throw Error(ze+"Argument "+(y.isInteger()?"out of range: ":"not an integer: ")+Be(y));if(!he)return new I(se);for(u=new I(a),v=c=new I(a),g=k=new I(a),z=et(he),b=u.e=z.length-se.e-1,u.c[0]=ao[(A=b%ge)<0?ge+A:A],l=!l||y.comparedTo(u)>0?b>0?u:v:y,A=H,H=1/0,y=new I(z),k.c[0]=0;S=t(y,u,0,1),w=c.plus(S.times(g)),w.comparedTo(l)!=1;)c=g,g=w,v=k.plus(S.times(w=v)),k=w,u=y.minus(S.times(w=u)),y=w;return w=t(l.minus(c),g,0,1),k=k.plus(w.times(v)),c=c.plus(w.times(g)),k.s=v.s=se.s,b=b*2,D=t(v,g,b,i).minus(se).abs().comparedTo(t(k,c,b,i).minus(se).abs())<1?[v,g]:[k,c],H=A,D},s.toNumber=function(){return+Be(this)},s.toPrecision=function(l,u){return l!=null&&Ne(l,1,We),Y(this,l,u,2)},s.toString=function(l){var u,c=this,g=c.s,w=c.e;return w===null?g?(u="Infinity",g<0&&(u="-"+u)):u="NaN":(l==null?u=w<=d||w>=T?wn(et(c.c),w):ht(et(c.c),w,"0"):l===10&&ve?(c=pe(new I(c),r+w+1,i),u=ht(et(c.c),c.e,"0")):(Ne(l,2,M.length,"Base"),u=n(ht(et(c.c),w,"0"),10,l,g,!0)),g<0&&c.c[0]&&(u="-"+u)),u},s.valueOf=s.toJSON=function(){return Be(this)},s._isBigNumber=!0,s[Symbol.toStringTag]="BigNumber",s[Symbol.for("nodejs.util.inspect.custom")]=s.valueOf,e!=null&&I.set(e),I}function $e(e){var t=e|0;return e>0||e===t?t:t-1}function et(e){for(var t,n,o=1,s=e.length,a=e[0]+"";o<s;){for(t=e[o++]+"",n=ge-t.length;n--;t="0"+t);a+=t}for(s=a.length;a.charCodeAt(--s)===48;);return a.slice(0,s+1||1)}function Nt(e,t){var n,o,s=e.c,a=t.c,r=e.s,i=t.s,d=e.e,T=t.e;if(!r||!i)return null;if(n=s&&!s[0],o=a&&!a[0],n||o)return n?o?0:-i:r;if(r!=i)return r;if(n=r<0,o=d==T,!s||!a)return o?0:!s^n?1:-1;if(!o)return d>T^n?1:-1;for(i=(d=s.length)<(T=a.length)?d:T,r=0;r<i;r++)if(s[r]!=a[r])return s[r]>a[r]^n?1:-1;return d==T?0:d>T^n?1:-1}function Ne(e,t,n,o){if(e<t||e>n||e!==_e(e))throw Error(ze+(o||"Argument")+(typeof e=="number"?e<t||e>n?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function gn(e){var t=e.c.length-1;return $e(e.e/ge)==t&&e.c[t]%2!=0}function wn(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function ht(e,t,n){var o,s;if(t<0){for(s=n+".";++t;s+=n);e=s+e}else if(o=e.length,++t>o){for(s=n,t-=o;--t;s+=n);e+=s}else t<o&&(e=e.slice(0,t)+"."+e.slice(t));return e}var ce=As();class $t{baseUrl;constructor(t){this.baseUrl=t}buildUrl(t,n){const o=new URL(t,this.baseUrl);return n&&Object.entries(n).forEach(([s,a])=>{a!=null&&o.searchParams.append(s,String(a))}),o.toString()}async get(t,n={}){const o=this.buildUrl(t,n.query),s=await fetch(o,{method:"GET",headers:n.headers||{}});if(!s.ok){let r=null;try{r=await s.json()}catch{try{const d=await s.text();d&&(r={message:d})}catch{}}const i=new Error(r?.message||r?.errorMessage||`HTTP ${s.status}: ${s.statusText}`);throw i.status=s.status,i.statusText=s.statusText,r&&(i.data=r),i}return{data:await s.json(),status:s.status}}async post(t,n,o={}){const s=this.buildUrl(t,o.query),a=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json",...o.headers},body:JSON.stringify(n)});if(!a.ok){let i=null;try{i=await a.json()}catch{try{const T=await a.text();T&&(i={message:T})}catch{}}const d=new Error(i?.message||i?.errorMessage||`HTTP ${a.status}: ${a.statusText}`);throw d.status=a.status,d.statusText=a.statusText,i&&(d.data=i),d}return{data:await a.json(),status:a.status}}}const Oi=.01,vs=new $t("https://wallet-api.pantograph.app"),Ui="https://deep-index.moralis.io";function en(){return"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6ImY4NmY0Yzc2LTA3MDQtNGEwZS04YTA0LWUwODllOGQxMGZjZCIsIm9yZ0lkIjoiMzk0MDAyIiwidXNlcklkIjoiNDA0ODUzIiwidHlwZUlkIjoiYjQyODExOTQtOGQ0Yi00NjkxLTlhZjItNjU4ODE2NzExYmRjIiwidHlwZSI6IlBST0pFQ1QiLCJpYXQiOjE3MTY4NjQyNTYsImV4cCI6NDg3MjYyNDI1Nn0.V8crfBIBardAnZkc05FD0hQIJBeZxMqvzRnYExVtnF8"}function tn(e){return{"X-API-Key":e,Accept:"application/json"}}const nn=new $t(Ui);async function Qe(e){const{address:t,chain:n="base",token_addresses:o,exclude_spam:s,exclude_unverified_contracts:a}=e;if(!t)throw new Error("Address is required");try{const r=en(),i={chain:n,exclude_spam:s??!1,exclude_unverified_contracts:a??!1};o&&(i.token_addresses=o);const T=(await nn.get(`/api/v2.2/wallets/${encodeURIComponent(t)}/tokens`,{query:i,headers:tn(r)})).data;if(T?.result?.length>0){T.result=T.result.filter(B=>new ce(B?.balance||0).gt(0)),T.result=T.result.map(B=>({...B,token_address:B.token_address===ki?Ve:B.token_address}));try{const B=us(n)??n,H=T.result.map(E=>E.token_address),h=await vs.get(`/keyrings/tokens/${B}/v2`,{query:{addresses:H.join(",")}});if(Array.isArray(h.data)){const E=new Map;for(const m of h.data)m.address&&m.price!=null&&E.set(m.address.toLowerCase(),parseFloat(String(m.price)));T.result=T.result.map(m=>{const C=E.get(m.token_address.toLowerCase());if(C==null)return m;const M=ce(m.balance_formatted||"0").multipliedBy(C).toNumber();return{...m,usd_price:C,usd_value:M}}),T.result=T.result.filter(m=>m.usd_value==null||new ce(m.usd_value).gte(Oi))}}catch(B){console.warn("⚠️ Failed to fetch Pantograph prices:",B)}}return{success:!0,data:T}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching token balances:",i),{success:!1,error:i}}}async function ks(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Token address is required");try{const o=us(n)??n,s=await vs.get(`/keyrings/tokens/${o}/v2`,{query:{addresses:t}}),a=t===Ve,i=(Array.isArray(s.data)?s.data:[]).find(m=>m.address?.toLowerCase()===t.toLowerCase()||a&&m.address==="")??null;if(i)return{success:!0,data:{token_address:i.address??t,name:i.name??"",symbol:i.symbol??"",decimals:i.decimals!=null?Number(i.decimals):18,logo:i.icon_image||i.logo,thumbnail:i.icon_image||i.logo,usd_price:i.price!=null?parseFloat(i.price):void 0,usd_price_24hr_percent_change:i.price_change_percentage_24h??void 0,usd_price_24hr_usd_change:i.price_change_24h??void 0}};console.warn("⚠️ Pantograph returned no result, falling back to Moralis API");const d=en(),[T,B]=await Promise.allSettled([nn.get("/api/v2.2/erc20/metadata",{query:{chain:n,addresses:[t]},headers:tn(d)}),nn.get(`/api/v2.2/erc20/${encodeURIComponent(t)}/price`,{query:{chain:n,include:"percent_change"},headers:tn(d)})]),H=T.status==="fulfilled"?T.value.data:[];if(!H||H.length===0)return{success:!1,error:"Token metadata not found"};const h=H[0],E=B.status==="fulfilled"?B.value.data:void 0;return{success:!0,data:{token_address:h.token_address,name:h.name,symbol:h.symbol,decimals:h.decimals,logo:h.logo||h.thumbnail,thumbnail:h.thumbnail,usd_price:E?.usdPrice??void 0,usd_price_24hr_percent_change:E?.["24hrPercentChange"]?parseFloat(E["24hrPercentChange"]):void 0,usd_price_24hr_usd_change:E?.usdPriceChange24hr??void 0}}}catch(o){const s=o instanceof Error?o.message:"Unknown error";return console.error("❌ Error fetching token metadata:",s),{success:!1,error:s}}}async function Ri(e){const{prompt:t,model:n="gpt-4.1-mini",stream:o=!1,systemPrompt:s}=e;if(!t)throw new Error("Prompt is required");try{const a=en(),r=new $t("https://cortex-api.moralis.io"),i=s?`${s}
|
|
100
100
|
|
|
101
101
|
---
|
|
102
102
|
|
|
103
|
-
User: ${t}`:t;return{success:!0,data:(await r.post("/chat",{prompt:i,model:n,stream:o},{headers:{"X-API-Key":a,Accept:"application/json","Content-Type":"application/json"}})).data}}catch(a){const r=a instanceof Error?a.message:"Unknown error";return console.error("❌ Error chatting with Cortex AI:",r),{success:!1,error:r}}}async function Li(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Contract address is required");try{const o=en();return{success:!0,data:(await nn.get(`/api/v2.2/nft/${encodeURIComponent(t)}/metadata`,{query:{chain:n},headers:tn(o)})).data}}catch(o){const s=o instanceof Error?o.message:"Unknown error";return console.error("❌ Error fetching NFT contract metadata:",s),{success:!1,error:s}}}async function wn(e){const{address:t,chain:n="base",limit:o=20,exclude_spam:s=!0,cursor:a}=e;if(!t)throw new Error("Address is required");try{const r=en(),i={chain:n,format:"decimal",limit:o,exclude_spam:s,media_items:!0,normalizeMetadata:!0};return a&&(i.cursor=a),{success:!0,data:(await nn.get(`/api/v2.2/${encodeURIComponent(t)}/nft`,{query:i,headers:tn(r)})).data}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching NFTs:",i),{success:!1,error:i}}}const Mi="data:image/png;base64,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",Ri="data:image/svg+xml,%3csvg%20width='36'%20height='36'%20viewBox='0%200%2036%2036'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='36'%20height='36'%20rx='18'%20fill='%232358B2'/%3e%3cmask%20id='mask0_1924_16177'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='11'%20y='10'%20width='17'%20height='16'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='url(%23pattern0_1924_16177)'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1924_16177)'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='white'/%3e%3c/g%3e%3cdefs%3e%3cpattern%20id='pattern0_1924_16177'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1924_16177'%20transform='scale(0.00195312)'/%3e%3c/pattern%3e%3cimage%20id='image0_1924_16177'%20width='512'%20height='512'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOgAAADoABlffMYAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7d13uGRlme7/79M0ijnrKM6ImHAMmHXGgB7zKJhzAAMgZjFg4DfnzO8ISM4gKIKIEgwImAAjiAQRCSoCCgaCgOQcn/PHu5reNHt37121qt61qr6f6+pLbLr3vi/Seuqtp947MhNJkjRdFtUOIEmSxs8BQJKkKeQAIEnSFHIAkCRpCjkASJI0hRbXDjCoiFgMPBB40Iwf9wZimV96E/AP4PzmxwWZeeMYo0qS1DnRl48BRsSqwFrA85ofa3DHh/18JHAxcCrwmyU/MvPslqJKktR5nR0AImJ1lj7s1wJWH/G3vAw4EjgE+EFmXj7i7ydJUjWdGgAi4uXA2ykP/YdWjHITcBRlGDggMy+umEWSpNZVHwAiYmXgrcAngMdXDTO7G4ADgZ0z88TaYSRJakO1ASAi7glsAHwUWLVKiIU7FtgZ+FZm3lQ7jCRJgxr7ABARDwE+AmwI3Gus37w9fwW2AvbKzBtqh5EkaaHGNgBExKOBz1CO++80lm86ehcA2wB7ZOY1tcNIkjRfIx8Ams/rbwL8f8CdR/rN6vknsD2wS2ZeWTuMJEkrMtIBICKeCuwFrDmyb9Itl1N2BHbMzEtqh5EkaS4jGQCaV/3/F/gksFLr36D7rgZ2B7bNzAtrh5EkaVmtDwAR8UDgIMrlPdPueuDLwFaZ+ffaYSRJWqLVASAing58h7qX+HTRjcC+wBcy88+1w0iS1NoAEBHvohx7T+qiXxtuAfYHNs/M02uHkSRNr1YGgIj4BLD18HGmRgLfBjbLzJNrh5EkTZ+hB4CI+Bzw+XbiTKXvA5/PzONqB5EkTY+hBoCI+B/gv9uLM9V+QhkEfl47iCRp8g08APjwH5ljKIPAj2oHkSRNroEGgGbh7yvtx9EMv6G8tXJI1q5slCRNnAUPABHxAuBwYOWRJNKyfgdsDhyYmbfWDiNJmgwLGgAi4jGUStz7jCyR5nIWsAWwn1XEkqRhzXsAiIh7Uo6lHznSRFqRvwJbAl+xiliSNKhFC/i1O+HDvwseBuwGnB0RH4uIu9YOJEnqn3mdAETEayhX/Kp7/glsB+xqFbEkab5WOABExIOA04AHjCWRBrWkiniHzLy0dhhJUrfNZwA4FFh7PHHUAquIJUkrtNwBICLWAQ4ZXxy16DqWVhGfWzuMJKlb5hwAImIlytH/Y8eaSG27EfgqpYr47NphJEndsLxPAbwbH/6T4E7A+sCZEfG1iPDvqSRp9hOA5qNlfwIePPZEGrVbKZ/osIpYkqbYXCcAG+PDf1ItAl4P/DYiDouIZ9YOJEkavzucAETEnYG/AQ+skkg1/JjSQPiL2kEkSeMx2wnAG/DhP21eBPw8Io6OiJfVDiNJGr3ZTgCOAzwWnm4nApthFbEkTazbDQAR8TTg1/XiqGN+RxkEDrKKWJImy7JvAXywSgp11eOB/YHTI2K9iFhcO5AkqR23nQA0y3+XAHermmgw5wAHA2dRhpqY8b8PAl4FPK5ausnxF0oV8d5WEUtSv80cAF4O/KBunAU5hfLQPzgzT13RL46IRwOvbX48fcTZJt35wDbAHpl5be0wkqSFmzkA7A68r26cebkQeHdmDjysRMQjgU2AdYGV2wo2hS4GtscqYknqnZkDwLnAqnXjrNChwHsz8+I2vlhE/CvwKeC9wCptfM0pdTmwE7CjVcSS1A+RmUTEUykf/eqqa4CNM3PPUXzxiHgQ8HFgI+Duo/geU+JqYDdgO6uIJanblnwK4CVVUyzf9cDzR/XwB8jMCzPzU8BqwP+lvKLVwt2dcqJyTkTsFBEPrR1IkjS7JQPAU6umWL71M3MspxOZeUlm/jfwMOBzwD/H8X0n0F2ADwF/jog9I2L12oEkSbe35C2As4GH1w4zi+0y8+O1vnnTirgh8EksRxrGzZT7BDbPzD/WDiNJKp+TvzdwWe0gszgSeHlm3lI7SHNHwrspnxx4WOU4fXYr8G1KFfEptcNI0jQL4AXAT2sHWcbVwMO6tlEeESsDbwc+Azyqcpy+O4wyCBxfO4gkTaNFwJNrh5jFgV17+ANk5k2ZuTewBvBWyl35GszawHERcWRErFU7jCRNm0XAv9UOMYu9agdYnsy8NTP3B54IvAb4TeVIfTaziviltcNI0rRYBDywdohl/CEzj60dYj6y+G5mPg14OXBM7Uw99hzgRxHx64h4VURE7UCSNMm6OAB0+tX/XDLzR5n5HMpOxY9r5+mxpwHfBU6JiDdFxLKNlZKkFiwCHlA7xDIOqx1gGJn588x8MfAs4Hu18/TYE4ADsIpYkkYigAuAf6kdZIb7ZmYXP5Y4kIh4EuVSodey9OIlLdxfsIpYkloTwLWUm9u64FZgcS5pKJogEfFYyscH3wqsVDlOn50PbA3saRWxJA0ugCuBe9QO0rgkM+9fO8QoNdfifppSRXynynH67GJgO2A3q4glaeECuBS4T+0gjbMy89G1Q4xDU5SzpIq4KycwfXQZsDNWEUvSgiwCbqodYobragcYl8w8NzM/TOlg2Jpy+6EW7j7AfwN/jYgtI6Jrn2qRpE4K4DzgIbWDNG4C7j2N7+1GxH2BjwAfpvQzaDDXAV8Cts7Mc2uHkaSu6toJwMrAf9QOUUNmXpqZ/5tSNvRZynvcWri7UIaoP0fEHlYRS9LsFtG9B83zageoKTOvzMwtgNWAjSlb71q4OwEbAGdExL4RsUbtQJLUJYuAv9YOsYypHgCWyMxrM3N7YHVgI8rn4LVwi4F3AL+PiIMiYs3agSSpC7o4ADwrIu5cO0RXZOYNmflFSv3wu4AzK0fqq0XAG4CTI+LQiHhG7UCSVNMi4G+1QyxjFcqteZohM2/OzH2AxwJvAU6rm6jX1gaOj4gjIsITJ0lTqYsnAAAb1g7QVU0V8QHAmsCrgRMrR+qzFwO/iIijrCKWNG0CeBzwu9pBZrFGZp5RO0QfNA+vTSmVuhrcr4HNgEMn8TpqSZppEXA6cEXtILNYv3aAvsjMwzPzucDzgSMrx+mzp2MVsaQpsSgzbwWOrR1kFuu5DLgwmfmLzHwJpYq417XKlS2pIv5DRKxrFbGkSbTkFc4xVVPM7n64DDiQzDw+M9cBngR8k9KyqIV7DLAPcFZEbOhAKmmSdHkAAJcBh5KZp2TmGyl7Hl8Dbq4cqa9WA75IuV3woxFx18p5JGlokZlExN0orWor1w40C5cBW9Jci7sJsB5WEQ9jSRXxrpl5Ve0wkjSIRQCZeQ3w48pZ5uIyYEsy8+zM3BB4BLATU9S+2LIHAFtQGgj/T0R0pU5bkuYtlnzaKSLWA/aummZ2lwCrZuYNtYNMmqY69+OUq4bvUTlOn10F7AZsl5kX1Q4jSfMxcwC4F3AR3Twafmtm7l87xKRqqog/3Pzw1ezgllQRb5WZ59UOI0nLEzPvO4mIQynXpHbNLzLz+bVDTLqIuAfwAUoL4QMqx+mzGymfHvhCZp5TOYskzWrZAeBtwH714iyXy4Bj0my5bwB8Ali1cpw+uxn4BrC5/+xK6pplbzr7LuX9zC5yGXBMmiriHSjLgu/DKuJBLQbeSblQ6MCIeGLtQJK0xO0GgObTAF+vlGVFvBlwzJoq4j0oVcTrAb6KHcwi4I2UKuJDrCKW1AWz3XW+59hTzI83A1bSVBF/Ffh34M3AqZUj9VUA62AVsaQOuMMAkJm/pbsVs94MWFFTRXwg5YrhV1Ha8zSYmVXEL6kdRtL0mavtbI+xppi/tSLiMbVDTLssDs3MZwAvBY6unanHngscHhEnRMQ6ERG1A0maDnMNAPvjMqDmITOPyMznAWthFfEwng4cQtkTeKNVxJJGbdb/yLgMqIXKzKOaKuJnAocCuYLfotk9ETgQq4gljdjyXmW4DKgFy8wTMvNVlD2Bg7CKeFBLqojPbKqIu3hDp6Qeu91FQHf4kxEnUI4mu8abAXui2dn4LPBWyufiNZjzgK2BPTPTEidJQ1vR+4xdPQVwGbAnMvOMzFwXeDRlufTGypH6alVgB+AvEbFJc22zJA1sRScAdwMuoJtNcdtl5sdrh9DCRMSqwCcpVw3fpXKcPruMUum8Y2ZeVjuMpP5Z7gAAEBG7U66D7RprgnusqSLeGHg/3Rww+8IqYkkDmc8A8GTgpPHEWTBrgnsuIu5DqSH+CFYRD+M6ylt2W1tFLGk+VjgAgMuAGr3mPe33U04FHlg5Tp/dCOwNbGkVsaTlme9lIy4DaqQy86rM3BJYDfgoZetdC3cnypXZZ0bEPv77IWku8x0Aunwz4Aa1A6g9mXldZu4IrE55kPkqdjCLgXWxiljSHOY1AHT8ZsB1vRlw8mTmjZm5J+Xjg+sCf6wcqa+WrSLu4lt5kipYyH3jXS0I8mbACdZUEe8LPA54E1YRD2pJFfEJEXF4RDy3diBJdc17AMjMk+lu/as1wROuqSI+iHLF8DrACZUj9dlLgKMi4hcR8eLaYSTVsdDGMZcBVVVTRXxYZj6T5kFWO1OPPQ84IiKOt4pYmj4LHQD2B64cRZAWuAw4ZTLzyMxci+ZBVjtPjz0Dq4ilqbOgf9GbZcBvjCjLsFwGnFKZeXRmvpSlDzKriAczs4r4nVYRS5NtkEnfZUB1Umb+OjNfDaxJeZBZRTyYxwBfpdwlsIFVxNJkmtdNgHf4Td4MqB6IiEdTqojfhlXEw7CKWJpAgw4A7wG+3H6cVqyRmWfUDqHuiIjVgE2AdwG+TTS4i4DtgN0ys6sXg0map0EHgLsB5wP3bD3R8KwJ1qwi4iEsrSK+a+U4fXYZsCOwk1XEUn8NNACANcHqr4h4AKV06ANYRTyMq4BdKUP3xbXDSFqYYQaAJwG/bTdOa6wJ1go1VcQfolQR37dynD67lnJHyDZWEUv9MfAAAC4DajJExN1ZWkX8oMpx+uwGYB/gC5n5l7pRJK3IsAOAy4CaGBFxF2B9yp7AQyvH6bObKeVhW/jvoNRdw974dQDeDKgJ0VQR7wQ8gvLPz9mVI/XVzCriAyLiCbUDSbqjoQYAa4I1iZoq4i9RLsR5J1YRD2oRpcHxlIj4rlXEUre0ced3VwuC7ge8rnYI9VdTRfw1ShXxG4FTKkfqqwBehVXEUqcMPQA0NcFdrWb1bQANraki/mZmPglYGzi+dqYes4pY6oi2Wr+6egpgTbBalZnfy8xnAS8GflE7T4/NrCJeu3YYaRq1NQC4DKipkpk/bj5q+lzg8Mpx+uwZwKERcXJEvMEqYml8WvmXzWVATavM/GVmvoxyH8Z3sYp4UGsCBwG/t4pYGo82p+2uvg3gMqBGLjNPzMzXUB5kB2AV8aDWwCpiaSyGugjoDl8s4njKkV7XeDOgxqqpIv4M8HasIh7GuZQq4i9ZRSy1q+0BwJsBpRki4mGUKuJ3YxXxMC4CtgV2t4pYakfbA4A1wdIsmiriTwAbYhXxMC6lVBHvbBWxNJxWBwCAiNgN2KjVL9oOa4JVXVNF/DFKFXEXB+W+sIpYGtIoBoAu1wS/LTO/UTuEFBH3plQRfxSriIexpIp468w8v3YYqU9aHwDAZUBpvpoq4o2Aj2MV8TBuAPYGtrSKWJqfUQ0ALgNKC9BUEb+XUkX8r5Xj9NnNwH6UKuIza4eRumxUt255M6C0AE0V8c7AI4H1sYp4UIuB9YDTrSKWlm8kA4A3A0qDaaqIvww8GngHcHrlSH21bBXx02oHkrpmlPdu7zHCrz0MbwZU52XmLZm5H/B44A3AyZUj9dWSKuJfR8SPIuI5tQNJXTGyASAzT8GaYGkoTRXxtzLzyZQq4uNqZ+qxlwJHR8TPI+JFtcNItY26eaur/QDWBKt3miri/wBeBPy8cpw+Wws4MiKOs4pY02zUA4DLgFLLMvMnmfkC4DnAj2rn6bFnYhWxpthI/4F3GVAancw8JjNfDjwNOBiriAc1s4r4HVYRa1qMY+J1GVAaocz8TWa+FngisD9wS+VIfbUGsC9wRkSsbxWxJt1ILgK6wzfxZkBpbCLiUSytIl65cpw+OxfYCviyVcSaROMaAN4N7DXybzQYbwbURGqqiD8FvAeriIdxIbAdsFtmXl07jNSWcQ0A1gRLlUTEg1laRXy3ynH6bEkV8U6ZeXntMNKwxjIAAETErsD7x/LNFsaaYE2FiLg/pYr4g3RzGO+LKylVxNtbRaw+G+cAsCbdvc3MmmBNjaaK+IOUKuL7VY7TZ9dSlpy3sYpYfTS2AQBcBpS6pKkifh+livhfKsfpM6uI1UvjHgBcBpQ6JiJWoVQRfwqriIdhFbF6Zdw3X3kzoNQxmXl9Zu4CPIJSRfznypH6amYV8f5WEavrxjoAZOa1lAm5i7wZUFMtM29qqogfQ7lD4A+VI/XVIuDNlCrig60iVlfVuPu6qwVB3gwocVsV8dcpVcSvB35bOVJfBfBqrCJWR419AGhqgo8f9/edJ98GkBpZfDsznwK8Eji2dqYes4pYnVOr/aqrpwDWBEuzyMzvZ+Z/Ai8EflY7T4/NrCJ+Ze0wmm61BgCXAaUeysyfZub/Ap4N/LB2nh57JnBYRPw2Il5vFbFqqPIPncuAUr9l5q8y87+ApwLfwSriQT0J+Cbwu6aKeKXagTQ9ak6dXX0bwGVAaZ4y86TMfB3wBOAbWEU8qMdSqojPtIpY4zLWi4Du8M0jjqMchXWNNwNKA4iIR1KqiN+BVcTDsIpYI1d7APBmQGkCRcS/AZsA7wZWqRynzy4EtgV2t4pYbas9ANwVuIBuNpNZEywNqaki/jilc8Aq4sFdCuwA7GwVsdpSdQAAa4KladBUEX+U0kJ4r8px+swqYrWmCwOANcHSlIiIewEfwiriYVlFrKFVHwDAZUBp2kTE3ShvC3wCq4iHcQPwFUoV8V9rh1G/dOXyia5+JNCbAaURyMxrMnNb4OGUtwX+VjlSX90Z2Ag4KyK+EhGPqh1I/dGVAeAA4IraIebgzYDSiDRVxLsCjwTeC/ypcqS+Whl4F/DHpor48bUDqfs6MQA0NwN+vXaOOXgzoDRiTRXxXsAawNuA31eO1FdLqohPbaqIn1o7kLqrEwNAY4/aAebgzYDSmDRVxN+g3Cz4OuCkypH6akkV8YkR8cOIeHbtQOqezgwAmXkq1gRL4rYq4u9k5lOBVwC/qp2px14G/DIifhYRL6wdRt3RmQGg0dVTAJcBpUoy8weZ+WzgfwE/rZ2nx54P/DgijrWKWNC9AeBAXAaUNIvM/FlmvhD4T+AHtfP02LOwilh0bABwGVDSimTmsZn5CuApWEU8jJlVxG+3inj6dGoAaHT1bQCXAaUOyczfNlXEj6e8cLCKeDCPBb4GnBER77WKeHp04ibAZXkzoKSFaqqIPw28E6uIh/F3llYRX187jEanqwPAuyjXW3bRYzPzj7VDSJpdRPwrpYr4PVhFPAyriCdcVweAuwLn083WMGuCpR6IiH+hVBFvhFXEw7gE2BGriCdOJwcAgIjYBfhA7RyzsCZY6pGIuB+lffBDdPNFRV9cCexCqSL+Z+0wGl6XB4AnAqfUzjEHa4KlnmmqiD9IGQbuXzlOn13D0iriC2qH0eA6OwAARMSxlM+sdo3LgFJPNVXEG1KqiB9cOU6fWUXcc138GOBMXa4JXqN2CEkL11QRbwesTnmb0SriwVhF3HNdHwC6fDPg+rUDSBpcU0W8G6WK+D3AWZUj9dWSKuLTI+IbVhH3R6cHgOZmwP1q55iDNwNKE6CpIv4K5UKct2IV8aBWAt5CqSL+jlXE3dfpAaDR1bcBvBlQmiBNFfH+lCri1wK/qRyprwJ4DaWK+AdWEXdX5weApib4uNo55mBBkDRhmirigzPzacB/YRXxMF6OVcSd1fkBoNHVUwCXAaUJlpk/bKqIXwD8pHaeHns+S6uIX1E7jIq+DAAuA0qqJjN/npkvAv4D+H7tPD32LOB7EXFSRLwuIqJ2oGnWiwHAZUBJXZCZx2XmKylVxN/GKuJBPRn4FqWK+G1WEdfRiwGg0dW3AVwGlKZMU0X8euBxlBcnVhEP5t8pf/2WVBHb4jhGnb4JcFkdvhnwqMxcq3YISXVExCNYWkV8p8px+swq4jHq2wBgTbCkzmqqiD8FvBeriIfxD0oV8RetIh6dvg0A1gRL6ryIeBBLq4jvXjlOn10C7ECpIu7qInhv9WoAAGuCJfVHRNyXpVXE964cp8+uAHbFKuJW9XEAsCZYUq9ExD0pVcQfwyriYVhF3KLeDQDgMqCkfmrextwQ+CRWEQ/jepZWEdvmOKA+fQxwpq5+JPB53gwoaS6ZeW1mbg88HHg/8NfKkfpqFcpfvz9FxF5WEQ+mrwOANwNK6q3MvCEzdwceBbwbq4gHtTLlr9/pEfH1iHhc7UB90ssBwJsBJU2Cpop4b2ANSpXu7ypH6quVKFXOpzVVxE+pHagPejkANPaoHWAO3gwoaUEy89bMPAB4IqVK1yriwSypIv5NU0X8n7UDdVlvB4DMPI3u1gRvWDuApP5pqoi/21QRvxw4pnamHns5cExE/DQi/lftMF3U2wGg0dVTAJcBJQ0lM3+Umc+hqdKtHKfPXgD8JCJ+FRH/VTtMl/R9ADgIlwElTbDM/EVmvpimSrd2nh77D+D7VhEv1esBoFkG/FrtHHNwGVBSazLz+Mxcm6VVurdWjtRXVhE3ej0ANLp6J4DLgJJal5knZ+YbgMdTXgBZRTyYmVXE75nGKuJe3gS4LG8GlDStImJ1ShXxulhFPIy/A1sCe01LFfGkDADrAXvXzjEHa4IljVxEPJSlVcR3qRynz5ZUEe+emdfUDjNKkzIAdLkmePvM3Lh2CEnToaki3phyVa5VxIOb+CriiRgAACJiZ0rbVtdYEyxp7Joq4o8AH8Yq4mFcAewC7DBpVcSTNAA8ATi1do45WBMsqYqmivgDlCriB1SO02fXAF8Etp2UKuKJGQAAIuJXlM96do3LgJKqat4q3YBSRfyQynH67HpgL2CrvlcRT8LHAGfq6kcCvRlQUlVNFfEOwOrARsBf6ibqrVUoJypLqogfWTvQoCZtAOhyTfAGtQNIUlNF/EVKFfG7gDMrR+qrJVXEf+xrFfFEDQCZeR3dvRnwnd4MKKkrMvPmzNwHeCzwZuC0uol6a2YV8bf7VEU8UQNAo6tvA3gzoKTOaaqIDwTWBF4NnFg5Ul8F8FpKFfH3+1BFPHEDQFMTfGztHHOwJlhSJzVVxIdk5tOBlwG/rJ2px/6LHlQRT9wA0OjqKYDLgJI6LzMPz8znUqqIj6wcp886XUU8qQPAgcDltUPMwWVASb3QVBG/BHgmcFjtPD22pIr4NxHx2q5UEU/kANAsA+5XO8ccXAaU1CuZeUJmrgM8CfgmVhEP6inAtylVxG+tXUU8kQNAo6tvA7gMKKmXMvOUzHwj8DhgX+DmypH66t+Br1M+QvjuiKjyLJ6omwCX5c2AkjQ6EfFwShXxelhFPIyTgQ9l5lgXLyf5BAC6ewrgMqCk3svMczJzQ+ARwE7AdZUj9dWTgKMjYr+IGNs1zZM+ALgMKEkjlpnnZuZHgNWALYGr6ibqrbcBZ0TEJhEx8hOViX4LAKwJlqRxi4j7sLSK+D6V4/TVWcBHM/MHo/oG0zAAPJ7uXnFpTbCkiRUR96AU52yMVcSDOgh4V2Ze2/YXnvgBAFwGlKSamiri9SlVxKtWjtNHJwFrZ+b5bX7RSd8BWGKP2gHm4DKgpInXVBHvSFkWfB9WES/UU4ATIuLJbX7RaRkADsJlQEmqqqki3oNSRbwecEbdRL2yKuWTAuu09QWnYgDwZkBJ6o6mivirlAtx3gycWjlSX9wNODgiNm7ji03FANDo6tsA9wNeXzuEJI3bjCriJwGvAn5dOVIfLAK2jYg9ImLxsF9oKmTm7+huTbBvA0iaWk0V8aGZ+QzgpcDRtTP1wAbAV4f5AlMzADS6egrgMqAkAZl5RGY+D1gLOKJ2no57a0T896C/edoGAJcBJakHMvOozHwppYr4UGDyP7M+mP8TEW8a5DdO1QDQLAN+rXaOObgMKEnLaKqIX0XZEzgIq4iXFcA+EfHMhf7GqRoAGl0tCHIZUJLmkJmnZuabKJ8c+CpWEc+0CnBIRPzbQn7T1A0AzTLgr2rnmINvA0jScmTmGZm5HvBoyl7XjXUTdcaDgMMi4u7z/Q1TNwA0unoK4DKgJM1DU0X8PmB1YEesIgZ4InBARMzr2T6tA4DLgJI0ATLzvMz8KFYRL/EKSu/CCk1FGdBsImIn4EO1c8zCmmBJGlBTRfxhSh3xtFYRXwI8OjMvXd4vmtYTAOju2wAuA0rSgDLzssz8H+BhwKeBiypHquF+wGYr+kVTewIAEBHHAP9ZO8csrAmWpBZExF0ob61OWxXxrcDTM/OkuX7BNJ8AQHdPAVwGlKQWZOZ1TRXx6sCGwDmVI43LImDXiIjl/YJp5jKgJE2BzLwxM/ekfHxwXeCPlSONw7Motcuzmuq3AMBlQEmaRs1H5V4PfBZYs3KcUbqIshB4xbJ/YtpPAKC7bwO4DChJI9JUER8EPBlYBzihcqRReSDwv2f7E1N/AgAuA0qSICJeDGwKPK92lpZdTTlRvnLmT3oCUHT1FMBlQEkak8w8snnR9Tzg8Np5WnR34J3L/qQDQOEyoCQJgMw8OjNfBjwDOITJqCL+wLI/4QCANcGSpDvKzF9n5qspS4IH0u8q4jUi4oUzf8IBYKmuvg3gMqAkVZSZp2Xmm4HH0u8q4vfP/D8uAc7Q4WXAa7HgQpK64l7AKrVDDOB64P6ZeQ3A4sphumYPujkA3LX5IUnSoFYBXgIcDL4FsKxv0t1lQEmShvXqJX/gADBDx5cBJUka1isiYiVwAJjNHrUDSJI0IvcDng0OAHeQmb8HflU7hyRJI/I8cACYi6cAkqRJ9TTwY4Czioi7AOcD966dRZKklp2XmQ/1BGAWzTLgvrVzSJI0AqtGxIMdAObW1ZsBJUka/Os6gAAAG/ZJREFU1tMcAObgMqAkaYKt4QCwfC4DSpIm0UMcAJbvm8BltUNIktQyB4Dl8WZASdKEeogfA1yBiHgc8LvaOSRJatHZngCsQLMMeEztHJIktei+DgDz40cCJUmTJHwLYB6amwHPA+5TO4skSS24whOA+VkJWFw7hCRJbXEAmJ83A/eoHUKSpLY4AMzPhrUDSJLUopsdAFYgIp5MU50oSdKEuNABYMU2qB1AkqSWXeAAsBwRcXfgbbVzSJLUMgeAFXD5T5I0if7hALB8Lv9JkibRuQ4Ac3D5T5I0wY53AJiby3+SpEl0LfAbB4BZuPwnSZpgx2bmTQ4As3P5T5I0qY4GbwKci8t/kqRJdRSAbYDLaJb/TqqdQ5KkEbgJuFdmXucJwB25/CdJmlQnZuZ14FsAt+PynyRpwh215A8cAG7P5T9J0iQ7eskfuAMwQ0T8mm5e/nMlcFntEJIkAB4A3LV2iAHcCDwwM68AWFw5TGd0/Oa/dTPzu7VDSNI0i4gnAJ8D3lA7y4C+tuThDw4AM3V1+e984Hu1Q0jStIqIpwGbAusAUTnOoBLYZuZPOADQ+eW/r2TmzbVDSNK0iYjnUB78L62dpQWHZuYfZ/6EA0DR1eW/W4Ev1w4hSdMkIl5EefCvVTtLi7Za9iccAIqu3vx3eGb+tXYISZoGEbE25T3+Z9bO0rJjMvNXy/7k1A8AHV/+27N2AEmaZBGxCHgd5cG/ZuU4o3KHV//gAAAu/0nS1ImIxcBbgM8Ca1SOM0qnA4fN9iemegBw+U+SpktE3AlYD9gEWL1umrHYOue48GeqBwBc/pOkqRARdwHWBz4JPLRynHE5H/j6XH9y2gcAl/8kaYI1J73vBz4OPLBynHH7ZGbeONefnNoBwOU/SZpcEXEf4EPAR4D7Vo5Tw/cz8xvL+wVTOwDQ3Vf/Lv9J0oAi4gHAxsAH6OZbvONwFbDRin7RVA4AzZHQW2vnmIPLf5K0QBHxEMr7+xvQz6KeNm2SmX9f0S+aygEAl/8kaSJExGqUjf53AXeuGqYbjgC+OJ9fOK0DQFeP/13+k6R5iIhHUz7D/zam91m2rL8Ab5nrY3/Lmrq/aC7/SVJ/LVPJu6hynC65HnhdZl46398wdQMA3X317/KfJM0hIp5OefD3uZJ3lDbKzJMW8humagBw+U+S+iUinkt58E9CJe+obJeZ+yz0N03VAIDLf5LUCxHxYkol7/NqZ+m43TPz44P8xmkbALp6/O/ynyRxWyXvpsAzamfpgb0o9x0MZGoGAJf/JKmbpqSSt237AhvMd+N/NlMzANDdV/8u/0maSk0l71uBzzDZlbxt2wX4aGbeOswXmYoBwOU/SeqOGZW8nwYeXjdNr9wCfCQzd23ji03FAIDLf5JU3ZRW8rblSuCNmXl4W19wWgaArh7/u/wnaeJFxD0o5TTTWMnbhjMol/z8vs0vOvEDgMt/klRHU8n74ebHNFbyDiuBXYFPZeZ1bX/xiR8A6O6rf5f/JE0kK3lbcS7w7sw8clTfYKIHAJf/JGl8ImJV4BNYyTuMpHzE76OZefkov9FEDwC4/CdJI9dU8n6astlvJe/gfkw57v/tOL7ZpA8AXT3+d/lPUu9FxGMon+G3knc4pwCbtLnhPx8T+zfM5T9JGg0reVvzB2Az4IBhL/UZxMQOAHT31b/Lf5J6yUre1vwW+Dxw8DBX+Q5rIgcAl/8kqT1NJe+mwEtqZ+m5Y4HPZ+YPageBCR0AcPlPkoZmJW9rfkZ58P+0dpCZJnUA6Orx/xEu/0nqsogI4JVYyduGH1Ie/L+qHWQ2EzcAdHz5b4/aASRpNk0l7+sp7/E/sXKcPkvgu5QH/0m1wyzPxA0AdPfV/wW4/CepY6zkbc0twEHAZm3f2T8qEzUAdHz5by+X/yR1hZW8rbkJ2A/YIjPPqh1mISZqAMDlP0larqaSdwNKJe+qleP02Q3AXsBWfd3tmrQBoKvH/y7/SaqqqeR9P6Wkx0rewV1D2efaJjMvqB1mGBMzALj8J0l3NKOS9yPAfSrH6bMrgV2A7TPzn7XDtGFiBgC6++rf5T9JYxcRDwQ+hpW8w7oU2AHYedTtfOM2EQOAy3+SVDSVvJ8E1sdK3mFcCGwL7J6ZV9cOMwoTMQDg8p+kKRcRDwc2wUreYf0d2Br4UmZeXzvMKE3KANDV43+X/ySNlJW8rTkb+ALw1cy8sXaYcej9Pywu/0maRhHxROCzWMk7rNOBzYH9M/OW2mHGqfcDAN199e/yn6TWNZW8mwJrYyXvME4GNgO+k5m31g5TQ68HgI4v/1n7K6k1VvK25njKPf1T/wKt1wMA3V7++1LtEJL6z0re1vyC8uD/ce0gXdH3AaCrx/8u/0kaWFPJuzalmc9K3uEcTnnw/7J2kK7p7QDg8p+kSWMlb2sSOJTy4D+xdpiu6u0AQHdf/bv8J2lBZlTyfhZ4TOU4fXYrpZJ388w8rXaYruvlAODyn6RJ0FTyvotygY+VvIO7maWVvGfWDtMXvRwA6Pbynzf/SVouK3lbcwOwN7BlZv6lcpbe6esA0NXj/yP8h1DSXKzkbc21wJ7A1pl5fu0wfdW7AaDjy3971g4gqXus5G3NVcCuwHaZeXHtMH3XuwGA7r76vwA4rHYISd3RVPJuTHnV38W3LfviUmAnYKfMvKx2mEnRqwHA5T9JfTCjkncD4C6V4/TZRcB2wG6ZeVXtMJOmVwMALv9J6rAZlbzvAu5UOU6fnQdsRankva52mEnVtwGgq8f/Lv9JU6yp5P0s5YSyb/9d7ZJzKJW8+0xLJW9NvfkH1eU/SV3TVPJ+jnJ7n5W8gzuDUsn7Dd9KHZ/eDAB099W/y3/SlLGStzWnUip5vzWtlbw19WIAcPlPUhdYyduaEygP/sMyM2uHmVa9GABw+U9SRRHxEsqD/7m1s/Tc0ZSCniNqB1F/BoCuHv+7/CdNqBmVvJsCT68cp++OADbLzKNqB9FSnR8AXP6TNE5W8rYmKftRm2XmCbXD6I46PwDQ3Vf/Lv9JE6Sp5H0b8Bms5B3GrcC3KA/+U2uH0dw6PQC4/Cdp1Kzkbc3NwDcolbx/rB1GK9bpAQCX/ySNiJW8rbkR2Af4QmaeUzmLFqDrA0BXj/9d/pN6ykre1lwHfAnYKjPPqx1GC9fZAcDlP0ltaip5P0Kp5bWSd3BXAbsD22bmRbXDaHCdHQDo7qt/l/+kHrGStzWXsbSS99LaYTS8Tg4ALv9JGpaVvK25mFLJu6uVvJOlkwMALv9JGlBTyftpYD2s5B3G+cDWwJ6ZeW3tMGpfVweArh7/u/wndZSVvK35C7AlsHdm3lA5i0aoc/+SuPwnaSGs5G3NmcAWwH6+zTkdOjcA0N1X/y7/SR0SEc+gPPit5B3OacDmwEFW8k6XTg0ALv9JWpGIeB6loOfFtbP03ImUSt5DrOSdTp0aAHD5T9IcrORtzS8plbyH1w6iuro2AHT1+N/lP6kCK3lb9WPKg/8XtYOoGzozALj8J2mJppL3DZStfit5h/M9yoP/+NpB1C2dGQDo7qt/l/+kMbGStzW3At+hVPKeXDuMuqkTA4DLf9J0i4g7Uy7u+TSwWtUw/XYLsD+weWaeXjuMuq0TAwAu/0lTKSLuCqyPlbzDuhHYl1LJ++faYdQPXRkAunr87/KfNAJNJe8HKCU9D6gcp8+up7xI2Soz/147jPql+gDg8p80Pazkbc3VLK3kvbB2GPVT9QGA7r76d/lPaomVvK25HNgZ2DEzL6kdRv1WdQBw+U+abE0l76co7/NbyTu4fwLbA7tk5pW1w2gy1D4BcPlPmkBW8rbmAmAbYI/MvKZ2GE2W2gNAV4//j3T5T1q4iFiD8hl+K3mH81dgK2AvK3k1KtX+Be348t8etQNIfRIRa1Ju7bOSdzhnAV8AvpaZN9UOo8lWc0Lv6qt/l/+keWoqeTcFXomVvMP4PaWS98DMvKV2GE2HKgOAy39Sv1nJ25qTgM8D37WSV+NW6wTA5T+ph6zkbc2vKAU9P6wdRNOr1gDQ1eN/l/+kZTSVvOsAn8NK3mH9lPLg/1ntINLYBwCX/6R+mFHJ+zngCZXj9N0PKA/+Y2sHkZaocQLQ1Vf/Lv9JWMnbogQOpjz4f1s7jLSssQ4AHV/+29vlP02zppL3XcAmWMk7jFuAA4HNMvMPtcNIcxn3CUCXl/++VDuEVENTybsBpZL3IZXj9NlNLK3k/VPtMNKKjHsA6Orxv8t/mjpW8rbmemAvSiXv32qHkeZrbAOAy39SN0TEfSl1vFbyDuca4IvANpn5j9phpIUa5wlAV1/9u/ynqdBU8n4c2IhuvhXXF1cAuwA7ZOY/a4eRBjWWAcDlP6meiHgo5f19K3mHcwmwA7BzZl5RO4w0rHGdALj8J42Zlbyt+QewLbC7lbyaJOMaALp6/O/ynyaOlbyt+TulkvfLmXl97TBS20b+HweX/6TxaCp5Pwe8Dit5h/FnYAtgXyt5NcnG8eqgq6/+Xf7TRJhRybt27Sw99wdKJe8BVvJqGox0AHD5TxodK3lb81tgM+A7VvJqmoz6BMDlP6llEfFSyoP/ObWz9NxxlHv6v187iFTDqAeArh7/u/ynXplRybsp3d2p6YufUx78P6kdRKppZANAx5f/9qwdQJoPK3lb9SPKg/+Y2kGkLhjlCUBXX/3/Azi0dghpeZpK3rdTPs736Mpx+iyB71Ka+X5TO4zUJSMZADq+/PcVl//UVVbytuZWSiXv5pn5u9phpC4a1QmAy3/SAljJ25qbgP2ALTLzrNphpC4b1QDQ1eN/l//UKRFxT+D9WMk7rBuArwBbZuZfa4eR+qD1AcDlP2nFmkrejwAfwkreYVxLudFzm8w8v3YYqU9GcQLQ1Vf/Lv+puoh4EOXV/vuBu1eO02dXArsC22fmxbXDSH3U6gDg8p80Oyt5W3MpsCOwU2ZeXjuM1GdtnwB0dfkvgS/XDqHpExGrUyp518VK3mFcyNJK3qtrh5EmQdsDQFeP/4/IzHNqh9D0aCp5Pwu8BSt5h3EuSyt5r6sdRpokrf2HyeU/yUreFp0NfAH4ambeWDuMNInafGXS1Vf/Lv9p5CLimZQHv5W8w/kjpZJ3f3d2pNFqZQBw+U/TKiLWohT0vKh2lp47hVLJ++3MvLV2GGkatHUC4PKfpoqVvK05nnJP/2G1g0jTpq0BoKvH/y7/qTVW8rbqKEoz35G1g0jTaugBwOU/TbqmkveNlK1+K3mHczjlwf/L2kGkadfGCUBXX/27/KehWMnbmqT8u7hZZv66dhhJxVADgMt/mkRW8rbmVuCblAf/abXDSLq9YU8AXP7TxLCStzU3A1+nVPKeUTuMpNkNOwB09fjf5T/NW1PJ+wHgY1jJO4wbgH2AL1i7LXXfwAOAy3/quxmVvB8G7l05Tp9dC3wJ2Dozz6sdRtL8DHMCsEFrKdrl8p+Wy0re1lwF7AZsl5kX1Q4jaWEGGgCa5b+3tZylLS7/aVZNJe+ngPdiJe8wLmNpJe9ltcNIGsygJwAu/6k3rORtzUXAdsBumXlV7TCShjPoAODynzpvRiXvW4GVKsfps/OArYE9reSVJseCBwCX/9R1VvK25hxgS2BvK3mlyTPICYDLf+qkppJ3U+CVtbP03BnAFsDX3aeRJteCBgCX/9RFVvK25lRgc+CbVvJKk2+hJwAu/6kzrORtza+BzwOHZWbWDiNpPBY6AHR1+e9Il/+mQ1PJ+yrKe/xd3UXpi6MpzXxH1A4iafzmPQB0fPlvj9oBNFpW8rbqSMqD/6jaQSTVs5ATAJf/NHZW8rbqMMqD/4TaQSTVN68BwOU/jZuVvK25Ffg2pZL3lNphJHXHfE8AXP7TWDSVvBsCn8BK3mHcDOwPbJ6Zf6wdRlL3zHcAcPlPI2Ulb2tuBL5KqeQ9u3YYSd21wgHA5T+NkpW8rbmOpZW859YOI6n75nMC4PKfWtdU8n4c2AgreYdxNUsreS+sHUZSfyx3AHD5T22zkrc1lwM7ATtm5qW1w0jqnxWdALj8p1ZYyduai4HtgV0z88raYST114oGAJf/NJSIeCzlM/xW8g7nfGAbYI/MvLZ2GEn9N+cA4PKfhhERT6Jc1/tarOQdxl8plbxfycwbaoeRNDmWdwLg8p8WzEre1pxFqeT9mrsukkZh1gGg48t/e/sfxO6xkrc1vwM2Aw6yklfSKM11AtDl5b8v1Q6hpSLiZZQH/7NrZ+m531AqeQ+xklfSOMw1ALj8pzlZyduqYygFPT+qHUTSdLnDAODyn+Yyo5L3c8DjK8fpu59QHvw/rx1E0nSa7QTA5T/dTlPJ+w7K5/it5B3O9ykP/uNqB5E03W43AETE3XD5T42mkvfdlEreh1WO02cJfIfy4D+5dhhJgjueALwGl/+mnpW8rbmFpZW8p9cOI0kzLTsAvLlKihVz+W8MrORtzU0sreT9c+0wkjSb2waAiLgP8JKKWZZnz9oBJllTyftR4ENYyTuM6ykdFVtl5t9rh5Gk5Zl5AvBaYOVaQZbjH8AhtUNMIit5W3MNsDuwbWb+o3YYSZqPmQNAV4//Xf5rmZW8rbkC2BnYITMvqR1GkhYiMnPJ9v/lrLgdcNwSeITv/7fDSt7W/BPYAdglM6+oHUaSBrHkgf8suvfwB5f/WtFU8n4WeAtW8g7jAmBb4IuZeU3tMJI0jCUP/a7e4+7y3xCs5G3N31hayXt97TCS1IYuDwAu/w0oIp5FefBbyTucP7G0kvem2mEkqU2Lm/vdn1U7yCxc/lugiHg+pZnvhZWj9N3vgc2BAzPzltphJGkUFgNrAPesHWQZ3vy3AFbytuYkYDPgYCt5JU26xcDDa4eYhct/KzCjkndT4KmV4/TdsZR7+n9QO4gkjctiYLXaIWbh8t8cmrds3kTZ6reSdzg/ozz4f1o7iCSNWxcHgCux9vcOImJl4O3AZ4BHVY7Tdz+kPPh/VTuIJNXSxQHgx25cL2Ulb2sSOBjYLDNPqh1GkmpbDPxb7RDL8H1YblfJ+0ngwZXj9NktwIGUSt7f1w4jSV2xGLhH7RDLOLx2gJqaSt4PUip57185Tp/dBHwN2CIz/1Q7jCR1zWJgldohZrgpM8+tHaIGK3lbcz3wFWDLzPxb7TCS1FWLgTvXDjHDZbUDjJuVvK25BtgD2CYzL6gdRpK6rmsnAFMzAETEv7K0krdLfw/65kpgF2D7zPxn7TCS1BddOwG4rnaAUYuIR1Aqed+JlbzDuISllbyX1w4jSX2zGLgBuFvtII3VagcYFSt5W/MPllbyXl07jCT11WLKK6n71g7SuHdE3H+SjnJnVPK+DojKcfrs78BWwJet5JWk4S0GLq0dYhmPAno/ADSVvJsCr6idpef+DHwB2Dczb6wdRpImxSLKCUCXPKd2gGFExPMj4seUghkf/oM7HXgH8JjM/LIPf0lq1yK6dwLwttoBBhERL4uIX1IKZl5YO0+PnQy8AXh8Zu6XmbfUDiRJk2gR0LWLd9aMiF603EXxmog4kVIw8+zamXrsOGDtzHxyZn4rM2+tHUiSJtki4He1Q8xivdoBliciVoqItwCnAt8Bnlo5Up/9HHhRZv5HZn6vdhhJmhYBrEk5du2SG4AnZuaZtYPMZCVvq35EqeQ9pnYQSZpGQbkI6Bq699n0n2Tmi2qHACt5W5TAIZRK3hNrh5GkabYoM28AzqodZBYvjIh31gwQEXeLiI2Bc4Dd8OE/qFuBAyinOq/x4S9J9S1u/vc4YI2aQeawZ0Scl5k/Gec3tZK3NTcD+1EqeTv1do4kTbvITCJiHcrRbBddTVkSO37U3ygi7gd8BCt5h3UDsDelkvcvlbNIkmaxZABYBbiY7tbRXg68Y1Rb4hHxL5RK3vfR3b8GfXAtsCewdWaeXzuMJGluiwCau9V/UDnL8twbOCwidoiI1hr0IuJfI2Jnynv8n8CH/6CuBLYAVsvMj/nwl6Tui8wsfxDxJsqiVtedBnwe+Pagt8RFxCMpG/3rAiu3mG3aXArsCOxkJa8k9cvMAeAelLcB7lw10fz9BdgJODQz/7yiXxwRdwdeT3nor4XNfMO4iFLJu5uVvJLUT7cNAAARcSiwdr04AzsPOAr4PXAF5Uj6OsrH9h7T/HgKcLdaASfEucDWwJcy87raYSRJg1t2AFiPsr0tzXQOpZJ3H1v5JGkyLDsA3Be4kKX3A2i6/ZGy3PeNzLy5dhhJUnsWzfw/mXkppZxF0+0U4E3A4zJzXx/+kjR5Fs3yczuPPYW64gRgHeDJmXmQlbySNLlu9xbAbT8Z8QvgeeOPo0qOojTzHVk7iCRpPOYaAJ4BjPzqXVV3BOXBf3TtIJKk8ZrtLQAy8wTgoDFn0XgkcCjwjMx8qQ9/SZpOs54AAETE6sDpQGtX76qqW4FvAZtl5qm1w0iS6pr1BAAgM88Gdh9jFo3GzcC+wL9n5pt8+EuSYDknAHBbPe6fgXuNLZHaciNLK3nPqR1GktQtc54AAGTmJZSLYNQf11EKelbPzPf58JckzWa5JwAAEbEKcCbwr2NJpEFdBewGbJeZF9UOI0nqthUOAAAR8V/A97BBr4suo7Qi7piZl9UOI0nqh3kNAAARsQXw6dHG0QJcDGwH7JqZV9UOI0nql4UMACsBP8UbAms7D9gG2DMzr60dRpLUT/MeAAAi4sHAycADR5ZIc/kLsCWwd2beUDmLJKnnFjQAAETEcylXyK4ykkRa1pnA5sDXbeWTJLVlwQMAQESsA3wHWKn1RFriNGAz4Ju28kmS2rbcewDmkpmHAu+l3Cuvdp0IvBpYMzMP9OEvSRqFgQYAgMzcB/hUe1Gm3i+Bl2Xm0zPzkBzkaEaSpHka6C2A232BiI8DW+MdAYP6MaWS9xe1g0iSpsfQAwBARLwZ+Co2By7E9ygP/uNrB5EkTZ9WBgCAiHgBcDAWBy3PrcC3KZW8p9QOI0maXq0NAAAR8QTgEODhrX3RyXAL8A1gi8w8vXYYSZJaHQAAIuKewJ7Am1r9wv10I+WtkS9k5tm1w0iStETrA8BtXzjiPZSSmruO5Bt023XAl4GtMvPc2mEkSVrWyAYAgIhYA9gPeOrIvkm3XA3sDmybmRfWDiNJ0lxGOgAARMQiYH3g88D9R/rN6rkc2BnYITMvrR1GkqQVGfkAcNs3irgP8P8DGzE5Vwj/E9ge2CUzr6wdRpKk+RrbAHDbNyyfFPgf4FUMcRNhZRdQLj/aw0peSVIfjX0AuO0bRzwK2BhYF7hLlRALdwKwG3CAlbySpD6rNgDcFiDiAcAHgXcCq1UNM7trKZ/h3z0zT6odRpKkNlQfAGaKiH8HXtH8eDawuFKUG4GjgO8C+2XmFZVySJI0Ep0aAGaKiHsBL6EMAy8HHjjib3ku8EPg+8BPMvPqEX8/SZKq6ewAMFNEBPB0ykCwOvDgGT/uz8KWCW8G/gT8fsaP07yiV5I0TXoxACxPRCymnA7MHAoeAFwPXAFcOeN/LwPOycwb66SVJKkbej8ASJKkhevr5/AlSdIQHAAkSZpCDgCSJE0hBwBJkqaQA4AkSVPo/wH9hnZgmG1pVwAAAABJRU5ErkJggg=='/%3e%3c/defs%3e%3c/svg%3e";class $i extends Qt{constructor(){super("https://wallet-api.pantograph.app")}async getTokensDetails(t,n="base"){try{if(!t||!Array.isArray(t)||t.length===0)throw new Error("Addresses must be a non-empty array");const o=t.join(","),s=await this.get(`/keyrings/tokens/${n}/v2`,{query:{addresses:o}});return Array.isArray(s.data)&&(s.data=s.data.filter((a,r,i)=>r===i.findIndex(d=>d.address.toLowerCase()===a.address.toLowerCase())),Array.isArray(t)&&t.length>0&&(s.data=s.data.filter(a=>t.some(r=>r.toLowerCase()===a.address.toLowerCase())),s.data.sort((a,r)=>t.findIndex(i=>i.toLowerCase()===a.address.toLowerCase())-t.findIndex(i=>i.toLowerCase()===r.address.toLowerCase())))),s}catch(o){throw console.error("❌ Error getting tokens details:",o instanceof Error?o.message:o),o}}async getTokenDetail(t,n="base"){try{if(!t)throw new Error("Address is required");const o=await this.getTokensDetails([t],n);return{data:o.data[0]||null,status:o.status}}catch(o){throw console.error(`❌ Error getting token detail for ${t}:`,o instanceof Error?o.message:o),o}}async getTopGainers(t="base",n="24h",o=3){try{return await this.get(`/token-list/top-gainers/${t}`,{query:{duration:n,limit:o}})}catch(s){throw console.error("❌ Error getting top gainers:",s instanceof Error?s.message:s),s}}}const tt=new $i,Hi="https://dln.debridge.finance",Wi=new Qt(Hi);async function ro(e){const{chainId:t,tokenIn:n,tokenInAmount:o,tokenOut:s,accesstoken:a,slippage:r="auto",tokenOutRecipient:i}=e;if(!t||!n||!o||!s)throw new Error("Missing required parameters: chainId, tokenIn, tokenInAmount, tokenOut");try{const B=(await(await fetch("https://exchange-api.keyring.app/admin/setting?configs=others",{method:"GET"})).json())?.others||{},R=B?.AFFILIATE_FEE_PERENT,h=B?.AFFILIATE_FEE_RECIPIENT,x=await Wi.get("/v1.0/chain/transaction",{query:{chainId:String(t),tokenIn:n,tokenInAmount:o,tokenOut:s,slippage:String(r),tokenOutRecipient:i,accesstoken:a,affiliateFeePercent:R,affiliateFeeRecipient:h}});if(x.data?.error)throw new Error(`DeBridge API Error: ${x.data.error}`);return console.log("✅ Quote retrieved successfully"),{success:!0,data:x.data}}catch(d){let T=d instanceof Error?d.message:"Unknown error";const B=d;B.data?.errorMessage?T=B.data.errorMessage:B.response?.data?.errorMessage?T=B.response.data.errorMessage:B.data?.message?T=B.data.message:B.response?.data?.message&&(T=B.response.data.message);const R=B.status||B.response?.status||B.statusCode||B.data?.status;return console.error("📋 Error details:",{errorMessage:T,errorCode:B.data?.errorCode,errorId:B.data?.errorId,status:R,reqId:B.data?.reqId,fullError:{message:B.message,status:B.status,statusCode:B.statusCode}}),{success:!1,error:d instanceof Error?d.message:"Unknown error",status:R,errorMessage:T,errorCode:B.data?.errorCode,errorId:B.data?.errorId}}}function Tt(e){const t=[],n=/!\[([^\]]*)\]\(([^)]+)\)|\[([^\]]*)\]\(([^)]+)\)|(https?:\/\/[^\s<>]+)|\*\*(.+?)\*\*|__(.+?)__|\*(.+?)\*|_(.+?)_|~~(.+?)~~|`([^`]+)`/g;let o=0,s;for(;(s=n.exec(e))!==null;)s.index>o&&t.push(e.slice(o,s.index)),s[1]!==void 0||s[2]!==void 0?t.push(P.jsx("img",{src:s[2],alt:s[1],className:"mc-image"},s.index)):s[3]!==void 0?t.push(P.jsx("a",{href:s[4],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:s[3]},s.index)):s[5]!==void 0?t.push(P.jsx("a",{href:s[5],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:s[5]},s.index)):s[6]!==void 0?t.push(P.jsx("strong",{children:Tt(s[6])},s.index)):s[7]!==void 0?t.push(P.jsx("strong",{children:Tt(s[7])},s.index)):s[8]!==void 0?t.push(P.jsx("em",{children:Tt(s[8])},s.index)):s[9]!==void 0?t.push(P.jsx("em",{children:Tt(s[9])},s.index)):s[10]!==void 0?t.push(P.jsx("del",{children:Tt(s[10])},s.index)):s[11]!==void 0&&t.push(P.jsx("code",{className:"mc-inline-code",children:s[11]},s.index)),o=s.index+s[0].length;return o<e.length&&t.push(e.slice(o)),t.length>0?t:[e]}const Vi=({content:e})=>{const t=e.split(`
|
|
104
|
-
`),n=[];let o=0;for(;o<t.length;){const s=t[o];if(s.trimStart().startsWith("```")){const r=s.trimStart().slice(3)?.trim(),i=[];for(o++;o<t.length&&!t[o].trimStart().startsWith("```");)i.push(t[o]),o++;n.push(
|
|
105
|
-
`)})})]},`code-${o}`)),o++;continue}if(/^(\s*[-*_]\s*){3,}$/.test(s)){n.push(P.jsx("hr",{className:"mc-hr"},`hr-${o}`)),o++;continue}const a=s.match(/^(#{1,3})\s+(.+)/);if(a){const r=a[1].length,i=a[2];n.push(P.jsx("div",{className:`mc-heading mc-h${r}`,children:Tt(i)},`h-${o}`)),o++;continue}if(s.trimStart().startsWith("> ")){const r=[];for(;o<t.length&&t[o].trimStart().startsWith("> ");)r.push(t[o].replace(/^\s*>\s?/,"")),o++;n.push(P.jsx("div",{className:"mc-blockquote",children:r.map((i,d)=>P.jsx("div",{children:Tt(i)},d))},`bq-${o}`));continue}if(s?.trim()===""){n.push(P.jsx("div",{className:"mc-empty-line"},`empty-${o}`)),o++;continue}n.push(P.jsx("div",{className:"mc-line",children:Tt(s)},`line-${o}`)),o++}return P.jsx("div",{className:"message-content",children:n})},Gi={send_native:{label:"actionSendNativeLabel",description:"actionSendNativeDesc",fields:[{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_token:{label:"actionSendTokenLabel",description:"actionSendTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},swap_token:{label:"actionSwapTokenLabel",description:"actionSwapTokenDesc",fields:[{key:"token_in",label:"fieldTokenIn",type:"address",placeholder:"0x... or native",required:!0,editable:!1},{key:"token_in_symbol",label:"fieldTokenInSymbol",type:"text",placeholder:"e.g. ETH",required:!1,editable:!1},{key:"token_out",label:"fieldTokenOut",type:"address",placeholder:"0x...",required:!0,editable:!1},{key:"token_out_symbol",label:"fieldTokenOutSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"token_in_decimals",label:"fieldTokenInDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"token_out_decimals",label:"fieldTokenOutDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},approve_token:{label:"actionApproveTokenLabel",description:"actionApproveTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"spender_address",label:"fieldSpenderAddress",type:"address",placeholder:"0x... spender contract",required:!0,validation:"address",editable:!1},{key:"amount",label:"fieldAmountUnlimited",type:"amount",placeholder:"0.0 or leave empty for max",required:!1,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},wrap_native:{label:"actionWrapNativeLabel",description:"actionWrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},unwrap_native:{label:"actionUnwrapNativeLabel",description:"actionUnwrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_nft:{label:"actionSendNftLabel",description:"actionSendNftDesc",fields:[{key:"contract_address",label:"fieldNftContract",type:"address",placeholder:"0x... NFT contract",required:!0,validation:"address",editable:!1},{key:"token_id",label:"fieldTokenId",type:"text",placeholder:"e.g. 1234",required:!0,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"token_standard",label:"fieldTokenStandard",type:"text",placeholder:"ERC721 or ERC1155",required:!0,editable:!1},{key:"amount",label:"fieldAmount",type:"text",placeholder:"1",required:!0},{key:"maxAmount",label:"fieldMaxAmount",type:"text",placeholder:"",required:!1,editable:!1,hidden:!0},{key:"nft_name",label:"fieldNftName",type:"text",placeholder:"e.g. Bored Ape #1234",required:!1,editable:!1}]}};function zi(e){return Re(e)}function io(e){if(!e||e?.trim()==="")return!1;const t=parseFloat(e);return!isNaN(t)&&t>0}const qi=({action:e,initialValues:t,onSubmit:n,onCancel:o,isSubmitting:s=!1,tokenInfo:a,nftInfo:r})=>{const{t:i,ti:d}=Sn(),T=Gi[e],[B,R]=ne.useState(()=>{if(!T)return{};const N={};return T.fields.forEach(V=>{N[V.key]=t[V.key]||""}),N}),[h]=ne.useState(()=>["send_native","send_token","swap_token"].includes(e)&&!a&&B.contract_address?i("formTokenNotFound"):null),[x,m]=ne.useState(()=>{const N={};if(["send_native","send_token","swap_token"].includes(e)&&a){const X=parseFloat(a.balanceFormatted||"0");if(X<=0)N.amount=d("formNoBalance",{symbol:a.symbol??""});else{const fe=t.amount?.trim();fe&&io(fe)&&parseFloat(fe)>X&&(N.amount=d("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}}return N}),C=ne.useCallback((N,V)=>{R(X=>({...X,[N]:V})),x[N]&&m(X=>{const fe={...X};return delete fe[N],fe})},[x]),L=ne.useCallback(()=>{if(!T)return!1;const N={};if(T.fields.forEach(V=>{const X=B[V.key]?.trim()||"";if(V.required&&!X&&!(e==="send_nft"&&V.key==="amount")){N[V.key]=d("formFieldRequired",{field:i(V.label)});return}if(X){if(V.validation==="address"&&!zi(X)&&(N[V.key]=i("formInvalidAddress")),V.validation==="amount"&&!io(X)&&(N[V.key]=i("formMustBePositive")),V.key==="amount"&&X&&io(X)&&a?.balanceFormatted){const fe=parseFloat(X),pe=parseFloat(a.balanceFormatted);fe>pe&&(N[V.key]=d("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}V.validation==="positive_number"&&(isNaN(Number(X))||Number(X)<0)&&(N[V.key]=i("formMustBeValidNumber"))}}),e==="send_nft"&&B.token_standard?.toUpperCase()==="ERC1155"){const V=B.amount?.trim();if(!V)N.amount=d("formFieldRequired",{field:i("fieldAmount")});else if(!/^\d+$/.test(V)||parseInt(V,10)<1)N.amount=i("formMustBePositiveInteger");else{const X=parseInt(t.maxAmount||"0",10);X>0&&parseInt(V,10)>X&&(N.amount=d("formAmountExceedsNft",{max:String(X)}))}}return m(N),Object.keys(N).length===0},[T,B,a,e,t,i,d]),ke=ne.useCallback(()=>{L()&&n(e,B)},[L,n,e,B]);return T?P.jsxs("div",{className:"action-form",children:[P.jsx("div",{className:"action-form-title",children:P.jsx("span",{children:i(T.label)})}),h&&P.jsxs("div",{className:"action-form-general-error",children:["⚠️ ",h]}),a&&P.jsx("div",{className:"action-form-token-info",children:P.jsxs("div",{className:"token-info-row",children:[a.logo&&P.jsx("img",{src:a.logo,alt:a.symbol,className:"token-info-logo",width:20,height:20}),P.jsxs("div",{className:"token-info-details",children:[P.jsxs("span",{className:"token-info-name",children:[a.name," (",a.symbol,")"]}),P.jsxs("span",{className:"token-info-balance",children:[i("formBalance")," ",ce(a.balanceFormatted).decimalPlaces(8,ce.ROUND_DOWN).toFormat()," ",a.symbol,a.usdValue!==void 0&&P.jsxs("span",{className:"token-info-usd",children:[" ","≈ $",a.usdValue.toFixed(2)]})]})]})]})}),r?.image&&P.jsx("div",{className:"action-form-nft-info",children:P.jsx("img",{src:r.image,alt:r.name,className:"nft-info-image",onError:N=>{N.target.style.display="none"}})}),P.jsx("div",{className:"action-form-fields",children:T.fields.map(N=>N.hidden||N.key==="amount"&&e==="send_nft"&&B.token_standard?.toUpperCase()!=="ERC1155"?null:P.jsxs("div",{className:"action-form-field",children:[P.jsxs("div",{className:"action-form-field-header",children:[P.jsxs("div",{className:"action-form-field-label",children:[i(N.label),N.required&&" *"]}),N.key==="amount"&&a&&e!=="send_nft"&&P.jsxs("div",{className:"action-form-pct-btns",children:[[25,50,75].map(V=>P.jsxs("button",{type:"button",className:"action-form-pct-btn",onClick:()=>C("amount",(parseFloat(a.balanceFormatted)*V/100).toString()),disabled:s,children:[V,"%"]},V)),P.jsx("button",{type:"button",className:"action-form-pct-btn action-form-max-btn",onClick:()=>C("amount",a.balanceFormatted),disabled:s,children:"MAX"})]})]}),(()=>{const V=N.editable===!1&&!!t[N.key],X=s||V,fe=[x[N.key]?"error":"",V?"readonly":""].filter(Boolean).join(" ");return N.type==="address"?P.jsx("textarea",{rows:2,placeholder:N.placeholder,value:B[N.key]||"",onChange:pe=>C(N.key,pe.target.value),className:fe,disabled:X}):P.jsx("input",{type:N.type==="number"?"number":"text",placeholder:N.placeholder,value:B[N.key]||"",onChange:pe=>C(N.key,pe.target.value),className:fe,disabled:X})})(),x[N.key]&&P.jsx("span",{className:"field-error",children:x[N.key]})]},N.key))}),P.jsxs("div",{className:"action-form-actions",children:[P.jsx("button",{className:"action-form-cancel",onClick:o,type:"button",disabled:s,children:i("formCancel")}),P.jsx("button",{className:"action-form-submit",onClick:ke,type:"button",disabled:s,children:i(s?"formProcessing":"formExecute")})]})]}):null},Yi=({scrollContainerRef:e,threshold:t=200})=>{const[n,o]=ne.useState(!1);ne.useEffect(()=>{const a=e.current;if(!a)return;const r=()=>{const{scrollTop:i,scrollHeight:d,clientHeight:T}=a,B=d-i-T;o(B>t)};return a.addEventListener("scroll",r,{passive:!0}),r(),()=>{a.removeEventListener("scroll",r)}},[e,t]);const s=()=>{e.current?.scrollTo({top:e.current.scrollHeight,behavior:"smooth"})};return n?P.jsx("button",{className:"scroll-to-bottom-btn",onClick:s,"aria-label":"Scroll to bottom",type:"button",children:P.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:P.jsx("path",{d:"M9 3V15M9 15L4 10M9 15L14 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):null};function ji(e){const{walletAddress:t,chainName:n,chainId:o,nativeSymbol:s,walletTokens:a,walletNfts:r}=e;if(!t)return`You are a Web3 wallet assistant for the Keyring crypto EVM wallet app.
|
|
103
|
+
User: ${t}`:t;return{success:!0,data:(await r.post("/chat",{prompt:i,model:n,stream:o},{headers:{"X-API-Key":a,Accept:"application/json","Content-Type":"application/json"}})).data}}catch(a){const r=a instanceof Error?a.message:"Unknown error";return console.error("❌ Error chatting with Cortex AI:",r),{success:!1,error:r}}}async function Mi(e){const{address:t,chain:n="base"}=e;if(!t)throw new Error("Contract address is required");try{const o=en();return{success:!0,data:(await nn.get(`/api/v2.2/nft/${encodeURIComponent(t)}/metadata`,{query:{chain:n},headers:tn(o)})).data}}catch(o){const s=o instanceof Error?o.message:"Unknown error";return console.error("❌ Error fetching NFT contract metadata:",s),{success:!1,error:s}}}async function bn(e){const{address:t,chain:n="base",limit:o=100,exclude_spam:s=!0,cursor:a}=e;if(!t)throw new Error("Address is required");try{const r=en(),i={chain:n,format:"decimal",limit:o,exclude_spam:s,media_items:!0,normalizeMetadata:!0};return a&&(i.cursor=a),{success:!0,data:(await nn.get(`/api/v2.2/${encodeURIComponent(t)}/nft`,{query:i,headers:tn(r)})).data}}catch(r){const i=r instanceof Error?r.message:"Unknown error";return console.error("❌ Error fetching NFTs:",i),{success:!1,error:i}}}const Li="data:image/png;base64,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",Hi="data:image/svg+xml,%3csvg%20width='36'%20height='36'%20viewBox='0%200%2036%2036'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='36'%20height='36'%20rx='18'%20fill='%232358B2'/%3e%3cmask%20id='mask0_1924_16177'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='11'%20y='10'%20width='17'%20height='16'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='url(%23pattern0_1924_16177)'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_1924_16177)'%3e%3crect%20x='11.334'%20y='10'%20width='16'%20height='16'%20fill='white'/%3e%3c/g%3e%3cdefs%3e%3cpattern%20id='pattern0_1924_16177'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1924_16177'%20transform='scale(0.00195312)'/%3e%3c/pattern%3e%3cimage%20id='image0_1924_16177'%20width='512'%20height='512'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,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'/%3e%3c/defs%3e%3c/svg%3e";class Wi extends $t{constructor(){super("https://wallet-api.pantograph.app")}async getTokensDetails(t,n="base"){try{if(!t||!Array.isArray(t)||t.length===0)throw new Error("Addresses must be a non-empty array");const o=t.join(","),s=await this.get(`/keyrings/tokens/${n}/v2`,{query:{addresses:o}});return Array.isArray(s.data)&&(s.data=s.data.filter((a,r,i)=>r===i.findIndex(d=>d.address.toLowerCase()===a.address.toLowerCase())),Array.isArray(t)&&t.length>0&&(s.data=s.data.filter(a=>t.some(r=>r.toLowerCase()===a.address.toLowerCase())),s.data.sort((a,r)=>t.findIndex(i=>i.toLowerCase()===a.address.toLowerCase())-t.findIndex(i=>i.toLowerCase()===r.address.toLowerCase())))),s}catch(o){throw console.error("❌ Error getting tokens details:",o instanceof Error?o.message:o),o}}async getTokenDetail(t,n="base"){try{if(!t)throw new Error("Address is required");const o=await this.getTokensDetails([t],n);return{data:o.data[0]||null,status:o.status}}catch(o){throw console.error(`❌ Error getting token detail for ${t}:`,o instanceof Error?o.message:o),o}}async getTopGainers(t="base",n="24h",o=3){try{return await this.get(`/token-list/top-gainers/${t}`,{query:{duration:n,limit:o}})}catch(s){throw console.error("❌ Error getting top gainers:",s instanceof Error?s.message:s),s}}}const tt=new Wi,Vi="https://dln.debridge.finance",Gi=new $t(Vi);async function ro(e){const{chainId:t,tokenIn:n,tokenInAmount:o,tokenOut:s,accesstoken:a,slippage:r="auto",tokenOutRecipient:i}=e;if(!t||!n||!o||!s)throw new Error("Missing required parameters: chainId, tokenIn, tokenInAmount, tokenOut");try{const B=(await(await fetch("https://exchange-api.keyring.app/admin/setting?configs=others",{method:"GET"})).json())?.others||{},H=B?.AFFILIATE_FEE_PERENT,h=B?.AFFILIATE_FEE_RECIPIENT,E=await Gi.get("/v1.0/chain/transaction",{query:{chainId:String(t),tokenIn:n,tokenInAmount:o,tokenOut:s,slippage:String(r),tokenOutRecipient:i,accesstoken:a,affiliateFeePercent:H,affiliateFeeRecipient:h}});if(E.data?.error)throw new Error(`DeBridge API Error: ${E.data.error}`);return console.log("✅ Quote retrieved successfully"),{success:!0,data:E.data}}catch(d){let T=d instanceof Error?d.message:"Unknown error";const B=d;B.data?.errorMessage?T=B.data.errorMessage:B.response?.data?.errorMessage?T=B.response.data.errorMessage:B.data?.message?T=B.data.message:B.response?.data?.message&&(T=B.response.data.message);const H=B.status||B.response?.status||B.statusCode||B.data?.status;return console.error("📋 Error details:",{errorMessage:T,errorCode:B.data?.errorCode,errorId:B.data?.errorId,status:H,reqId:B.data?.reqId,fullError:{message:B.message,status:B.status,statusCode:B.statusCode}}),{success:!1,error:d instanceof Error?d.message:"Unknown error",status:H,errorMessage:T,errorCode:B.data?.errorCode,errorId:B.data?.errorId}}}function Tt(e){const t=[],n=/!\[([^\]]*)\]\(([^)]+)\)|\[([^\]]*)\]\(([^)]+)\)|(https?:\/\/[^\s<>]+)|\*\*(.+?)\*\*|__(.+?)__|\*(.+?)\*|_(.+?)_|~~(.+?)~~|`([^`]+)`/g;let o=0,s;for(;(s=n.exec(e))!==null;)s.index>o&&t.push(e.slice(o,s.index)),s[1]!==void 0||s[2]!==void 0?t.push(F.jsx("img",{src:s[2],alt:s[1],className:"mc-image"},s.index)):s[3]!==void 0?t.push(F.jsx("a",{href:s[4],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:s[3]},s.index)):s[5]!==void 0?t.push(F.jsx("a",{href:s[5],target:"_blank",rel:"noopener noreferrer",className:"mc-link",children:s[5]},s.index)):s[6]!==void 0?t.push(F.jsx("strong",{children:Tt(s[6])},s.index)):s[7]!==void 0?t.push(F.jsx("strong",{children:Tt(s[7])},s.index)):s[8]!==void 0?t.push(F.jsx("em",{children:Tt(s[8])},s.index)):s[9]!==void 0?t.push(F.jsx("em",{children:Tt(s[9])},s.index)):s[10]!==void 0?t.push(F.jsx("del",{children:Tt(s[10])},s.index)):s[11]!==void 0&&t.push(F.jsx("code",{className:"mc-inline-code",children:s[11]},s.index)),o=s.index+s[0].length;return o<e.length&&t.push(e.slice(o)),t.length>0?t:[e]}const Yi=({content:e})=>{const t=e.split(`
|
|
104
|
+
`),n=[];let o=0;for(;o<t.length;){const s=t[o];if(s.trimStart().startsWith("```")){const r=s.trimStart().slice(3)?.trim(),i=[];for(o++;o<t.length&&!t[o].trimStart().startsWith("```");)i.push(t[o]),o++;n.push(F.jsxs("div",{className:"mc-codeblock",children:[r&&F.jsx("div",{className:"mc-codeblock-lang",children:r}),F.jsx("pre",{children:F.jsx("code",{children:i.join(`
|
|
105
|
+
`)})})]},`code-${o}`)),o++;continue}if(/^(\s*[-*_]\s*){3,}$/.test(s)){n.push(F.jsx("hr",{className:"mc-hr"},`hr-${o}`)),o++;continue}const a=s.match(/^(#{1,3})\s+(.+)/);if(a){const r=a[1].length,i=a[2];n.push(F.jsx("div",{className:`mc-heading mc-h${r}`,children:Tt(i)},`h-${o}`)),o++;continue}if(s.trimStart().startsWith("> ")){const r=[];for(;o<t.length&&t[o].trimStart().startsWith("> ");)r.push(t[o].replace(/^\s*>\s?/,"")),o++;n.push(F.jsx("div",{className:"mc-blockquote",children:r.map((i,d)=>F.jsx("div",{children:Tt(i)},d))},`bq-${o}`));continue}if(s?.trim()===""){n.push(F.jsx("div",{className:"mc-empty-line"},`empty-${o}`)),o++;continue}n.push(F.jsx("div",{className:"mc-line",children:Tt(s)},`line-${o}`)),o++}return F.jsx("div",{className:"message-content",children:n})},Ji={send_native:{label:"actionSendNativeLabel",description:"actionSendNativeDesc",fields:[{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_token:{label:"actionSendTokenLabel",description:"actionSendTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},swap_token:{label:"actionSwapTokenLabel",description:"actionSwapTokenDesc",fields:[{key:"token_in",label:"fieldTokenIn",type:"address",placeholder:"0x... or native",required:!0,editable:!1},{key:"token_in_symbol",label:"fieldTokenInSymbol",type:"text",placeholder:"e.g. ETH",required:!1,editable:!1},{key:"token_out",label:"fieldTokenOut",type:"address",placeholder:"0x...",required:!0,editable:!1},{key:"token_out_symbol",label:"fieldTokenOutSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"token_in_decimals",label:"fieldTokenInDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"token_out_decimals",label:"fieldTokenOutDecimals",type:"number",placeholder:"18",required:!1,editable:!1},{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},approve_token:{label:"actionApproveTokenLabel",description:"actionApproveTokenDesc",fields:[{key:"contract_address",label:"fieldTokenContract",type:"address",placeholder:"0x... token contract",required:!0,validation:"address",editable:!1},{key:"token_symbol",label:"fieldTokenSymbol",type:"text",placeholder:"e.g. USDC",required:!1,editable:!1},{key:"spender_address",label:"fieldSpenderAddress",type:"address",placeholder:"0x... spender contract",required:!0,validation:"address",editable:!1},{key:"amount",label:"fieldAmountUnlimited",type:"amount",placeholder:"0.0 or leave empty for max",required:!1,validation:"amount"},{key:"decimals",label:"fieldDecimals",type:"number",placeholder:"18",required:!1,editable:!1}]},wrap_native:{label:"actionWrapNativeLabel",description:"actionWrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},unwrap_native:{label:"actionUnwrapNativeLabel",description:"actionUnwrapNativeDesc",fields:[{key:"amount",label:"fieldAmount",type:"amount",placeholder:"0.0",required:!0,validation:"amount"}]},send_nft:{label:"actionSendNftLabel",description:"actionSendNftDesc",fields:[{key:"contract_address",label:"fieldNftContract",type:"address",placeholder:"0x... NFT contract",required:!0,validation:"address",editable:!1},{key:"token_id",label:"fieldTokenId",type:"text",placeholder:"e.g. 1234",required:!0,editable:!1},{key:"to_address",label:"fieldToAddress",type:"address",placeholder:"0x...",required:!0,validation:"address"},{key:"token_standard",label:"fieldTokenStandard",type:"text",placeholder:"ERC721 or ERC1155",required:!0,editable:!1},{key:"amount",label:"fieldAmount",type:"text",placeholder:"1",required:!0},{key:"maxAmount",label:"fieldMaxAmount",type:"text",placeholder:"",required:!1,editable:!1,hidden:!0},{key:"nft_name",label:"fieldNftName",type:"text",placeholder:"e.g. Bored Ape #1234",required:!1,editable:!1}]}};function zi(e){return He(e)}function io(e){if(!e||e?.trim()==="")return!1;const t=parseFloat(e);return!isNaN(t)&&t>0}const ji=({action:e,initialValues:t,onSubmit:n,onCancel:o,isSubmitting:s=!1,tokenInfo:a,nftInfo:r})=>{const{t:i,ti:d}=xn(),T=Ji[e],[B,H]=ne.useState(()=>{if(!T)return{};const I={};return T.fields.forEach(Y=>{I[Y.key]=t[Y.key]||""}),I}),[h]=ne.useState(()=>["send_native","send_token","swap_token"].includes(e)&&!a&&B.contract_address?i("formTokenNotFound"):null),[E,m]=ne.useState(()=>{const I={};if(["send_native","send_token","swap_token"].includes(e)&&a){const K=parseFloat(a.balanceFormatted||"0");if(K<=0)I.amount=d("formNoBalance",{symbol:a.symbol??""});else{const fe=t.amount?.trim();fe&&io(fe)&&parseFloat(fe)>K&&(I.amount=d("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}}return I}),C=ne.useCallback((I,Y)=>{H(K=>({...K,[I]:Y})),E[I]&&m(K=>{const fe={...K};return delete fe[I],fe})},[E]),M=ne.useCallback(()=>{if(!T)return!1;const I={};if(T.fields.forEach(Y=>{const K=B[Y.key]?.trim()||"";if(Y.required&&!K&&!(e==="send_nft"&&Y.key==="amount")){I[Y.key]=d("formFieldRequired",{field:i(Y.label)});return}if(K){if(Y.validation==="address"&&!zi(K)&&(I[Y.key]=i("formInvalidAddress")),Y.validation==="amount"&&!io(K)&&(I[Y.key]=i("formMustBePositive")),Y.key==="amount"&&K&&io(K)&&a?.balanceFormatted){const fe=parseFloat(K),pe=parseFloat(a.balanceFormatted);fe>pe&&(I[Y.key]=d("formInsufficientBalance",{balance:a.balanceFormatted,symbol:a.symbol??""}))}Y.validation==="positive_number"&&(isNaN(Number(K))||Number(K)<0)&&(I[Y.key]=i("formMustBeValidNumber"))}}),e==="send_nft"&&B.token_standard?.toUpperCase()==="ERC1155"){const Y=B.amount?.trim();if(!Y)I.amount=d("formFieldRequired",{field:i("fieldAmount")});else if(!/^\d+$/.test(Y)||parseInt(Y,10)<1)I.amount=i("formMustBePositiveInteger");else{const K=parseInt(t.maxAmount||"0",10);K>0&&parseInt(Y,10)>K&&(I.amount=d("formAmountExceedsNft",{max:String(K)}))}}return m(I),Object.keys(I).length===0},[T,B,a,e,t,i,d]),ve=ne.useCallback(()=>{M()&&n(e,B)},[M,n,e,B]);return T?F.jsxs("div",{className:"action-form",children:[F.jsx("div",{className:"action-form-title",children:F.jsx("span",{children:i(T.label)})}),h&&F.jsxs("div",{className:"action-form-general-error",children:["⚠️ ",h]}),a&&F.jsx("div",{className:"action-form-token-info",children:F.jsxs("div",{className:"token-info-row",children:[a.logo&&F.jsx("img",{src:a.logo,alt:a.symbol,className:"token-info-logo",width:20,height:20}),F.jsxs("div",{className:"token-info-details",children:[F.jsxs("span",{className:"token-info-name",children:[a.name," (",a.symbol,")"]}),F.jsxs("span",{className:"token-info-balance",children:[i("formBalance")," ",ce(a.balanceFormatted).decimalPlaces(8,ce.ROUND_DOWN).toFormat()," ",a.symbol,a.usdValue!==void 0&&F.jsxs("span",{className:"token-info-usd",children:[" ","≈ $",a.usdValue.toFixed(2)]})]})]})]})}),r?.image&&F.jsx("div",{className:"action-form-nft-info",children:F.jsx("img",{src:r.image,alt:r.name,className:"nft-info-image",onError:I=>{I.target.style.display="none"}})}),F.jsx("div",{className:"action-form-fields",children:T.fields.map(I=>I.hidden||I.key==="amount"&&e==="send_nft"&&B.token_standard?.toUpperCase()!=="ERC1155"?null:F.jsxs("div",{className:"action-form-field",children:[F.jsxs("div",{className:"action-form-field-header",children:[F.jsxs("div",{className:"action-form-field-label",children:[i(I.label),I.required&&" *"]}),I.key==="amount"&&a&&e!=="send_nft"&&F.jsxs("div",{className:"action-form-pct-btns",children:[[25,50,75].map(Y=>F.jsxs("button",{type:"button",className:"action-form-pct-btn",onClick:()=>C("amount",(parseFloat(a.balanceFormatted)*Y/100).toString()),disabled:s,children:[Y,"%"]},Y)),F.jsx("button",{type:"button",className:"action-form-pct-btn action-form-max-btn",onClick:()=>C("amount",a.balanceFormatted),disabled:s,children:"MAX"})]})]}),(()=>{const Y=I.editable===!1&&!!t[I.key],K=s||Y,fe=[E[I.key]?"error":"",Y?"readonly":""].filter(Boolean).join(" ");return I.type==="address"?F.jsx("textarea",{rows:2,placeholder:I.placeholder,value:B[I.key]||"",onChange:pe=>C(I.key,pe.target.value),className:fe,disabled:K}):F.jsx("input",{type:I.type==="number"?"number":"text",placeholder:I.placeholder,value:B[I.key]||"",onChange:pe=>C(I.key,pe.target.value),className:fe,disabled:K})})(),E[I.key]&&F.jsx("span",{className:"field-error",children:E[I.key]})]},I.key))}),F.jsxs("div",{className:"action-form-actions",children:[F.jsx("button",{className:"action-form-cancel",onClick:o,type:"button",disabled:s,children:i("formCancel")}),F.jsx("button",{className:"action-form-submit",onClick:ve,type:"button",disabled:s,children:i(s?"formProcessing":"formExecute")})]})]}):null},qi=({scrollContainerRef:e,threshold:t=200})=>{const[n,o]=ne.useState(!1);ne.useEffect(()=>{const a=e.current;if(!a)return;const r=()=>{const{scrollTop:i,scrollHeight:d,clientHeight:T}=a,B=d-i-T;o(B>t)};return a.addEventListener("scroll",r,{passive:!0}),r(),()=>{a.removeEventListener("scroll",r)}},[e,t]);const s=()=>{e.current?.scrollTo({top:e.current.scrollHeight,behavior:"smooth"})};return n?F.jsx("button",{className:"scroll-to-bottom-btn",onClick:s,"aria-label":"Scroll to bottom",type:"button",children:F.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:F.jsx("path",{d:"M9 3V15M9 15L4 10M9 15L14 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}):null};function Qi(e){const{walletAddress:t,chainName:n,chainId:o,nativeSymbol:s,walletTokens:a,walletNfts:r}=e;if(!t)return`You are a Web3 wallet assistant for the Keyring crypto EVM wallet app.
|
|
106
106
|
The user is currently NOT connected to any wallet.
|
|
107
107
|
|
|
108
108
|
## YOUR ROLE:
|
|
@@ -396,48 +396,48 @@ Response: {"action":"view_nfts","message":"Let me show you your NFT collection!"
|
|
|
396
396
|
|
|
397
397
|
[With conversation history where user previously swapped ETH to USDC]
|
|
398
398
|
User: "do it again but with 2 ETH"
|
|
399
|
-
Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${s}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"2"}}`}const Ts={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",10:"0x4200000000000000000000000000000000000006",56:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",137:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},yn=[{name:"transfer",type:"function",stateMutability:"nonpayable",inputs:[{name:"to",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"approve",type:"function",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"allowance",type:"function",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]}],xs=[{name:"deposit",type:"function",stateMutability:"payable",inputs:[],outputs:[]},{name:"withdraw",type:"function",stateMutability:"nonpayable",inputs:[{name:"wad",type:"uint256"}],outputs:[]}],Ji=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"}],outputs:[]}],Xi=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function on(e,t){return t||lt[e]?.rpcUrls?.default?.http?.[0]}function Ki(e){const{action:t,parameters:n,fromAddress:o,chainId:s}=e;switch(t){case"send_native":return Zi(n,o,s);case"send_token":return Qi(n,o,s);case"approve_token":return ec(n,o,s);case"wrap_native":return tc(n,o,s);case"unwrap_native":return nc(n,o,s);case"send_nft":return sc(n,o,s);default:throw new Error(`Action "${t}" does not produce a transaction`)}}function Zi(e,t,n){const{to_address:o,amount:s}=e;if(!o)throw new Error("Recipient address is required");if(!s)throw new Error("Amount is required");const a=mt(s,18).toString();return{from:t,to:o,data:"0x",value:a,chainId:n,description:`Send ${s} native token to ${o}`}}function Qi(e,t,n){const{contract_address:o,to_address:s,amount:a,decimals:r,token_symbol:i}=e;if(!o)throw new Error("Token contract address is required");if(!s)throw new Error("Recipient address is required");if(!a)throw new Error("Amount is required");const d=parseInt(r)||18,T=mt(a,d),B=kt({abi:yn,functionName:"transfer",args:[s,T]});return{from:t,to:o,data:B,value:"0",chainId:n,description:`Send ${a} ${i||"tokens"} to ${s}`}}function ec(e,t,n){const{contract_address:o,spender_address:s,amount:a,token_symbol:r}=e;if(!o)throw new Error("Token contract address is required");if(!s)throw new Error("Spender address is required");const i=a&&a?.trim()!==""?mt(a,18):Mt,d=kt({abi:yn,functionName:"approve",args:[s,i]});return{from:t,to:o,data:d,value:"0",chainId:n,description:`Approve ${a||"unlimited"} ${r||"tokens"} for ${s}`}}function tc(e,t,n){const{amount:o}=e;if(!o)throw new Error("Amount is required");const s=Ts[n];if(!s)throw new Error(`WETH not supported on chain ${n}`);const a=mt(o,18).toString(),r=kt({abi:xs,functionName:"deposit"});return{from:t,to:s,data:r,value:a,chainId:n,description:`Wrap ${o} native token`}}function nc(e,t,n){const{amount:o}=e;if(!o)throw new Error("Amount is required");const s=Ts[n];if(!s)throw new Error(`WETH not supported on chain ${n}`);const a=mt(o,18),r=kt({abi:xs,functionName:"withdraw",args:[a]});return{from:t,to:s,data:r,value:"0",chainId:n,description:`Unwrap ${o} WETH`}}function oc(e){return["send_native","send_token","approve_token","wrap_native","unwrap_native","send_nft"].includes(e)}async function co(e){const{transactionHash:t,chainId:n,pollingInterval:o=3e3,timeout:s=12e4,rpcUrl:a}=e,r=on(n,a);if(!r)throw new Error(`No RPC endpoint for chain ${n}`);const i=Date.now();for(;Date.now()-i<s;){try{const T=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getTransactionReceipt",params:[t]})})).json();if(T.result){const B=T.result;return{status:B.status==="0x1"?"success":"fail",blockNumber:B.blockNumber,gasUsed:B.gasUsed,effectiveGasPrice:B.effectiveGasPrice}}}catch(d){console.warn("eth_getTransactionReceipt poll error:",d)}await new Promise(d=>setTimeout(d,o))}throw new Error(`Transaction ${t} was not mined within ${s/1e3}s`)}async function lo(e){const{tokenAddress:t,ownerAddress:n,spenderAddress:o,chainId:s,rpcUrl:a}=e,r=on(s,a);if(!r)return console.warn(`No RPC endpoint for chain ${s}, assuming no allowance`),BigInt(0);try{const i=kt({abi:yn,functionName:"allowance",args:[n,o]}),T=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[{to:t,data:i},"latest"]})})).json();return T.result&&T.result!=="0x"?BigInt(T.result):BigInt(0)}catch(i){return console.warn("checkAllowance failed:",i),BigInt(0)}}function vn(e){const{tokenAddress:t,spenderAddress:n,fromAddress:o,chainId:s,tokenSymbol:a}=e,r=kt({abi:yn,functionName:"approve",args:[n,Mt]});return{from:o,to:t,data:r,value:"0",chainId:s,description:`Approve ${a||"token"} for swap`}}function sc(e,t,n){const{contract_address:o,token_id:s,to_address:a,token_standard:r,amount:i,nft_name:d}=e;if(!o)throw new Error("NFT contract address is required");if(!s)throw new Error("Token ID is required");if(!a)throw new Error("Recipient address is required");const T=(r||"ERC721").toUpperCase(),B=BigInt(s);let R,h;if(T==="ERC1155"){const x=BigInt(i||"1");R=kt({abi:Xi,functionName:"safeTransferFrom",args:[t,a,B,x,"0x"]}),h=`Send ${x>1n?x.toString()+"x ":""}${d||"NFT"} (ERC1155 #${s}) to ${a}`}else R=kt({abi:Ji,functionName:"safeTransferFrom",args:[t,a,B]}),h=`Send ${d||"NFT"} (ERC721 #${s}) to ${a}`;return{from:t,to:o,data:R,value:"0",chainId:n,description:h}}async function kn(e){const{address:t,chainId:n,rpcUrl:o}=e,s=on(n,o);if(!s)return console.warn(`No RPC endpoint for chain ${n}`),new ce(0);try{const r=await(await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getBalance",params:[t,"latest"]})})).json();return r.result&&r.result!=="0x"?new ce(BigInt(r.result).toString()):new ce(0)}catch(a){return console.warn("getNativeBalance failed:",a),new ce(0)}}async function sn(e){const{from:t,to:n,data:o,value:s,chainId:a,rpcUrl:r}=e,i=on(a,r);if(!i)return console.warn(`No RPC endpoint for chain ${a}`),new ce(0);try{const[d,T]=await Promise.all([fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_estimateGas",params:[{from:t,to:n,data:o,...s&&s!=="0"?{value:s}:{}}]})}),fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:2,method:"eth_gasPrice",params:[]})})]),[B,R]=await Promise.all([d.json(),T.json()]),h=B.result?new ce(BigInt(B.result).toString()):new ce(0),x=R.result?new ce(BigInt(R.result).toString()):new ce(0);return h.times(x).times(1.1)}catch(d){return console.warn("estimateTransactionFee failed:",d),new ce(0)}}async function uo(e){const{chainId:t,rpcUrl:n}=e,o=on(t,n);if(!o)return console.warn(`No RPC endpoint for chain ${t}`),new ce(0);try{const a=await(await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_gasPrice",params:[]})})).json();return a.result&&a.result!=="0x"?new ce(BigInt(a.result).toString()):new ce(0)}catch(s){return console.warn("getGasPrice failed:",s),new ce(0)}}var oe={},an={exports:{}},ac=an.exports,Es;function rc(){return Es||(Es=1,(function(e,t){(function(n,o){var s="1.0.41",a="",r="?",i="function",d="undefined",T="object",B="string",R="major",h="model",x="name",m="type",C="vendor",L="version",ke="architecture",N="console",V="mobile",X="tablet",fe="smarttv",pe="wearable",Be="embedded",l=500,u="Amazon",c="Apple",b="ASUS",g="BlackBerry",w="Browser",v="Chrome",y="Edge",A="Firefox",k="Google",E="Honor",D="Huawei",z="Lenovo",se="LG",he="Microsoft",Ae="Motorola",Se="Nvidia",j="OnePlus",ge="Opera",Ee="OPPO",Ve="Samsung",at="Sharp",Je="Sony",Fe="Xiaomi",qe="Zebra",Me="Facebook",De="Chromium OS",Te="Mac OS",Pt=" Browser",Vt=function(U,Q){var H={};for(var te in U)Q[te]&&Q[te].length%2===0?H[te]=Q[te].concat(U[te]):H[te]=U[te];return H},bt=function(U){for(var Q={},H=0;H<U.length;H++)Q[U[H].toUpperCase()]=U[H];return Q},O=function(U,Q){return typeof U===B?Z(Q).indexOf(Z(U))!==-1:!1},Z=function(U){return U.toLowerCase()},G=function(U){return typeof U===B?U.replace(/[^\d\.]/g,a).split(".")[0]:o},ee=function(U,Q){if(typeof U===B)return U=U.replace(/^\s\s*/,a),typeof Q===d?U:U.substring(0,l)},K=function(U,Q){for(var H=0,te,we,ae,M,_,$;H<Q.length&&!_;){var me=Q[H],xe=Q[H+1];for(te=we=0;te<me.length&&!_&&me[te];)if(_=me[te++].exec(U),_)for(ae=0;ae<xe.length;ae++)$=_[++we],M=xe[ae],typeof M===T&&M.length>0?M.length===2?typeof M[1]==i?this[M[0]]=M[1].call(this,$):this[M[0]]=M[1]:M.length===3?typeof M[1]===i&&!(M[1].exec&&M[1].test)?this[M[0]]=$?M[1].call(this,$,M[2]):o:this[M[0]]=$?$.replace(M[1],M[2]):o:M.length===4&&(this[M[0]]=$?M[3].call(this,$.replace(M[1],M[2])):o):this[M]=$||o;H+=2}},q=function(U,Q){for(var H in Q)if(typeof Q[H]===T&&Q[H].length>0){for(var te=0;te<Q[H].length;te++)if(O(Q[H][te],U))return H===r?o:H}else if(O(Q[H],U))return H===r?o:H;return Q.hasOwnProperty("*")?Q["*"]:U},Y={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},ie={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"},ye={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[L,[x,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[L,[x,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[x,L],[/opios[\/ ]+([\w\.]+)/i],[L,[x,ge+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[L,[x,ge+" GX"]],[/\bopr\/([\w\.]+)/i],[L,[x,ge]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[L,[x,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[L,[x,"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],[x,L],[/quark(?:pc)?\/([-\w\.]+)/i],[L,[x,"Quark"]],[/\bddg\/([\w\.]+)/i],[L,[x,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[L,[x,"UC"+w]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[L,[x,"WeChat"]],[/konqueror\/([\w\.]+)/i],[L,[x,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[L,[x,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[L,[x,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[L,[x,"Smart Lenovo "+w]],[/(avast|avg)\/([\w\.]+)/i],[[x,/(.+)/,"$1 Secure "+w],L],[/\bfocus\/([\w\.]+)/i],[L,[x,A+" Focus"]],[/\bopt\/([\w\.]+)/i],[L,[x,ge+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[L,[x,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[L,[x,"Dolphin"]],[/coast\/([\w\.]+)/i],[L,[x,ge+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[L,[x,"MIUI"+Pt]],[/fxios\/([\w\.-]+)/i],[L,[x,A]],[/\bqihoobrowser\/?([\w\.]*)/i],[L,[x,"360"]],[/\b(qq)\/([\w\.]+)/i],[[x,/(.+)/,"$1Browser"],L],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[x,/(.+)/,"$1"+Pt],L],[/samsungbrowser\/([\w\.]+)/i],[L,[x,Ve+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[L,[x,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[x,"Sogou Mobile"],L],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[x,L],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[x],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[L,x],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[x,Me],L],[/(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],[x,L],[/\bgsa\/([\w\.]+) .*safari\//i],[L,[x,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[L,[x,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[L,[x,v+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[x,v+" WebView"],L],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[L,[x,"Android "+w]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[x,L],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[L,[x,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[L,x],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[x,[L,q,Y]],[/(webkit|khtml)\/([\w\.]+)/i],[x,L],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[x,"Netscape"],L],[/(wolvic|librewolf)\/([\w\.]+)/i],[x,L],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[L,[x,A+" 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],[x,[L,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[x,[L,/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,Z]],[/ 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,Z]]],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],[h,[C,Ve],[m,X]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[h,[C,Ve],[m,V]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[h,[C,c],[m,V]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[h,[C,c],[m,X]],[/(macintosh);/i],[h,[C,c]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[h,[C,at],[m,V]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[h,[C,E],[m,X]],[/honor([-\w ]+)[;\)]/i],[h,[C,E],[m,V]],[/\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],[h,[C,D],[m,X]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[h,[C,D],[m,V]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[h,/_/g," "],[C,Fe],[m,X]],[/\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],[[h,/_/g," "],[C,Fe],[m,V]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[h,[C,Ee],[m,V]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[h,[C,q,{OnePlus:["304","403","203"],"*":Ee}],[m,X]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[h,[C,"Vivo"],[m,V]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[h,[C,"Realme"],[m,V]],[/\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],[h,[C,Ae],[m,V]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[h,[C,Ae],[m,X]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[h,[C,se],[m,X]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[h,[C,se],[m,V]],[/(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],[h,[C,z],[m,X]],[/(nokia) (t[12][01])/i],[C,h,[m,X]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[h,/_/g," "],[m,V],[C,"Nokia"]],[/(pixel (c|tablet))\b/i],[h,[C,k],[m,X]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[h,[C,k],[m,V]],[/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],[h,[C,Je],[m,V]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[h,"Xperia Tablet"],[C,Je],[m,X]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[h,[C,j],[m,V]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[h,[C,u],[m,X]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[h,/(.+)/g,"Fire Phone $1"],[C,u],[m,V]],[/(playbook);[-\w\),; ]+(rim)/i],[h,C,[m,X]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[h,[C,g],[m,V]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[h,[C,b],[m,X]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[h,[C,b],[m,V]],[/(nexus 9)/i],[h,[C,"HTC"],[m,X]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[C,[h,/_/g," "],[m,V]],[/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],[h,[C,"TCL"],[m,X]],[/(itel) ((\w+))/i],[[C,Z],h,[m,q,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[h,[C,"Acer"],[m,X]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[h,[C,"Meizu"],[m,V]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[h,[C,"Ulefone"],[m,V]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[h,[C,"Energizer"],[m,V]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[h,[C,"Cat"],[m,V]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[h,[C,"Smartfren"],[m,V]],[/droid.+; (a(?:015|06[35]|142p?))/i],[h,[C,"Nothing"],[m,V]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[h,[C,"Archos"],[m,X]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[h,[C,"Archos"],[m,V]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[C,h,[m,X]],[/(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],[C,h,[m,V]],[/(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],[C,h,[m,X]],[/(surface duo)/i],[h,[C,he],[m,X]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[h,[C,"Fairphone"],[m,V]],[/(u304aa)/i],[h,[C,"AT&T"],[m,V]],[/\bsie-(\w*)/i],[h,[C,"Siemens"],[m,V]],[/\b(rct\w+) b/i],[h,[C,"RCA"],[m,X]],[/\b(venue[\d ]{2,7}) b/i],[h,[C,"Dell"],[m,X]],[/\b(q(?:mv|ta)\w+) b/i],[h,[C,"Verizon"],[m,X]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[h,[C,"Barnes & Noble"],[m,X]],[/\b(tm\d{3}\w+) b/i],[h,[C,"NuVision"],[m,X]],[/\b(k88) b/i],[h,[C,"ZTE"],[m,X]],[/\b(nx\d{3}j) b/i],[h,[C,"ZTE"],[m,V]],[/\b(gen\d{3}) b.+49h/i],[h,[C,"Swiss"],[m,V]],[/\b(zur\d{3}) b/i],[h,[C,"Swiss"],[m,X]],[/\b((zeki)?tb.*\b) b/i],[h,[C,"Zeki"],[m,X]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[C,"Dragon Touch"],h,[m,X]],[/\b(ns-?\w{0,9}) b/i],[h,[C,"Insignia"],[m,X]],[/\b((nxa|next)-?\w{0,9}) b/i],[h,[C,"NextBook"],[m,X]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[C,"Voice"],h,[m,V]],[/\b(lvtel\-)?(v1[12]) b/i],[[C,"LvTel"],h,[m,V]],[/\b(ph-1) /i],[h,[C,"Essential"],[m,V]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[h,[C,"Envizen"],[m,X]],[/\b(trio[-\w\. ]+) b/i],[h,[C,"MachSpeed"],[m,X]],[/\btu_(1491) b/i],[h,[C,"Rotor"],[m,X]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[h,[C,Se],[m,X]],[/(sprint) (\w+)/i],[C,h,[m,V]],[/(kin\.[onetw]{3})/i],[[h,/\./g," "],[C,he],[m,V]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[h,[C,qe],[m,X]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[h,[C,qe],[m,V]],[/smart-tv.+(samsung)/i],[C,[m,fe]],[/hbbtv.+maple;(\d+)/i],[[h,/^/,"SmartTV"],[C,Ve],[m,fe]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[C,se],[m,fe]],[/(apple) ?tv/i],[C,[h,c+" TV"],[m,fe]],[/crkey/i],[[h,v+"cast"],[C,k],[m,fe]],[/droid.+aft(\w+)( bui|\))/i],[h,[C,u],[m,fe]],[/(shield \w+ tv)/i],[h,[C,Se],[m,fe]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[h,[C,at],[m,fe]],[/(bravia[\w ]+)( bui|\))/i],[h,[C,Je],[m,fe]],[/(mi(tv|box)-?\w+) bui/i],[h,[C,Fe],[m,fe]],[/Hbbtv.*(technisat) (.*);/i],[C,h,[m,fe]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[C,ee],[h,ee],[m,fe]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[h,[m,fe]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[m,fe]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[C,h,[m,N]],[/droid.+; (shield)( bui|\))/i],[h,[C,Se],[m,N]],[/(playstation \w+)/i],[h,[C,Je],[m,N]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[h,[C,he],[m,N]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[h,[C,Ve],[m,pe]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[C,h,[m,pe]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[h,[C,Ee],[m,pe]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[h,[C,c],[m,pe]],[/(opwwe\d{3})/i],[h,[C,j],[m,pe]],[/(moto 360)/i],[h,[C,Ae],[m,pe]],[/(smartwatch 3)/i],[h,[C,Je],[m,pe]],[/(g watch r)/i],[h,[C,se],[m,pe]],[/droid.+; (wt63?0{2,3})\)/i],[h,[C,qe],[m,pe]],[/droid.+; (glass) \d/i],[h,[C,k],[m,pe]],[/(pico) (4|neo3(?: link|pro)?)/i],[C,h,[m,pe]],[/; (quest( \d| pro)?)/i],[h,[C,Me],[m,pe]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[C,[m,Be]],[/(aeobc)\b/i],[h,[C,u],[m,Be]],[/(homepod).+mac os/i],[h,[C,c],[m,Be]],[/windows iot/i],[[m,Be]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[h,[m,V]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[h,[m,X]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[m,X]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[m,V]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[h,[C,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[L,[x,y+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[x,L],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[L,[x,"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],[x,L],[/ladybird\//i],[[x,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[L,x]],os:[[/microsoft (windows) (vista|xp)/i],[x,L],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[x,[L,q,ie]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[L,q,ie],[x,"Windows"]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[L,/_/g,"."],[x,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[x,Te],[L,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[L,x],[/(ubuntu) ([\w\.]+) like android/i],[[x,/(.+)/,"$1 Touch"],L],[/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i],[x,L],[/\(bb(10);/i],[L,[x,g]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[L,[x,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[L,[x,A+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[L,[x,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[L,[x,"watchOS"]],[/crkey\/([\d\.]+)/i],[L,[x,v+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[x,De],L],[/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],[x,L],[/(sunos) ?([\w\.\d]*)/i],[[x,"Solaris"],L],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[x,L]]},re=function(U,Q){if(typeof U===T&&(Q=U,U=o),!(this instanceof re))return new re(U,Q).getResult();var H=typeof n!==d&&n.navigator?n.navigator:o,te=U||(H&&H.userAgent?H.userAgent:a),we=H&&H.userAgentData?H.userAgentData:o,ae=Q?Vt(ye,Q):ye,M=H&&H.userAgent==te;return this.getBrowser=function(){var _={};return _[x]=o,_[L]=o,K.call(_,te,ae.browser),_[R]=G(_[L]),M&&H&&H.brave&&typeof H.brave.isBrave==i&&(_[x]="Brave"),_},this.getCPU=function(){var _={};return _[ke]=o,K.call(_,te,ae.cpu),_},this.getDevice=function(){var _={};return _[C]=o,_[h]=o,_[m]=o,K.call(_,te,ae.device),M&&!_[m]&&we&&we.mobile&&(_[m]=V),M&&_[h]=="Macintosh"&&H&&typeof H.standalone!==d&&H.maxTouchPoints&&H.maxTouchPoints>2&&(_[h]="iPad",_[m]=X),_},this.getEngine=function(){var _={};return _[x]=o,_[L]=o,K.call(_,te,ae.engine),_},this.getOS=function(){var _={};return _[x]=o,_[L]=o,K.call(_,te,ae.os),M&&!_[x]&&we&&we.platform&&we.platform!="Unknown"&&(_[x]=we.platform.replace(/chrome os/i,De).replace(/macos/i,Te)),_},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return te},this.setUA=function(_){return te=typeof _===B&&_.length>l?ee(_,l):_,this},this.setUA(te),this};re.VERSION=s,re.BROWSER=bt([x,L,R]),re.CPU=bt([ke]),re.DEVICE=bt([h,C,m,N,V,fe,X,pe,Be]),re.ENGINE=re.OS=bt([x,L]),e.exports&&(t=e.exports=re),t.UAParser=re;var J=typeof n!==d&&(n.jQuery||n.Zepto);if(J&&!J.ua){var I=new re;J.ua=I.getResult(),J.ua.get=function(){return I.getUA()},J.ua.set=function(U){I.setUA(U);var Q=I.getResult();for(var H in Q)J.ua[H]=Q[H]}}})(typeof window=="object"?window:ac)})(an,an.exports)),an.exports}var Ss;function ic(){if(Ss)return oe;Ss=1,Object.defineProperty(oe,"__esModule",{value:!0});function e(S){return S&&typeof S=="object"&&"default"in S?S.default:S}var t=ne,n=e(t),o=rc(),s=new o,a=s.getBrowser(),r=s.getCPU(),i=s.getDevice(),d=s.getEngine(),T=s.getOS(),B=s.getUA(),R=function(f){return s.setUA(f)},h=function(f){if(!f){console.error("No userAgent string was provided");return}var p=new o(f);return{UA:p,browser:p.getBrowser(),cpu:p.getCPU(),device:p.getDevice(),engine:p.getEngine(),os:p.getOS(),ua:p.getUA(),setUserAgent:function(W){return p.setUA(W)}}},x=Object.freeze({ClientUAInstance:s,browser:a,cpu:r,device:i,engine:d,os:T,ua:B,setUa:R,parseUserAgent:h});function m(S,f){var p=Object.keys(S);if(Object.getOwnPropertySymbols){var F=Object.getOwnPropertySymbols(S);f&&(F=F.filter(function(W){return Object.getOwnPropertyDescriptor(S,W).enumerable})),p.push.apply(p,F)}return p}function C(S){for(var f=1;f<arguments.length;f++){var p=arguments[f]!=null?arguments[f]:{};f%2?m(Object(p),!0).forEach(function(F){X(S,F,p[F])}):Object.getOwnPropertyDescriptors?Object.defineProperties(S,Object.getOwnPropertyDescriptors(p)):m(Object(p)).forEach(function(F){Object.defineProperty(S,F,Object.getOwnPropertyDescriptor(p,F))})}return S}function L(S){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?L=function(f){return typeof f}:L=function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},L(S)}function ke(S,f){if(!(S instanceof f))throw new TypeError("Cannot call a class as a function")}function N(S,f){for(var p=0;p<f.length;p++){var F=f[p];F.enumerable=F.enumerable||!1,F.configurable=!0,"value"in F&&(F.writable=!0),Object.defineProperty(S,F.key,F)}}function V(S,f,p){return f&&N(S.prototype,f),S}function X(S,f,p){return f in S?Object.defineProperty(S,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):S[f]=p,S}function fe(){return fe=Object.assign||function(S){for(var f=1;f<arguments.length;f++){var p=arguments[f];for(var F in p)Object.prototype.hasOwnProperty.call(p,F)&&(S[F]=p[F])}return S},fe.apply(this,arguments)}function pe(S,f){if(typeof f!="function"&&f!==null)throw new TypeError("Super expression must either be null or a function");S.prototype=Object.create(f&&f.prototype,{constructor:{value:S,writable:!0,configurable:!0}}),f&&l(S,f)}function Be(S){return Be=Object.setPrototypeOf?Object.getPrototypeOf:function(p){return p.__proto__||Object.getPrototypeOf(p)},Be(S)}function l(S,f){return l=Object.setPrototypeOf||function(F,W){return F.__proto__=W,F},l(S,f)}function u(S,f){if(S==null)return{};var p={},F=Object.keys(S),W,ve;for(ve=0;ve<F.length;ve++)W=F[ve],!(f.indexOf(W)>=0)&&(p[W]=S[W]);return p}function c(S,f){if(S==null)return{};var p=u(S,f),F,W;if(Object.getOwnPropertySymbols){var ve=Object.getOwnPropertySymbols(S);for(W=0;W<ve.length;W++)F=ve[W],!(f.indexOf(F)>=0)&&Object.prototype.propertyIsEnumerable.call(S,F)&&(p[F]=S[F])}return p}function b(S){if(S===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return S}function g(S,f){if(f&&(typeof f=="object"||typeof f=="function"))return f;if(f!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return b(S)}function w(S,f){return v(S)||y(S,f)||A(S,f)||E()}function v(S){if(Array.isArray(S))return S}function y(S,f){var p=S==null?null:typeof Symbol<"u"&&S[Symbol.iterator]||S["@@iterator"];if(p!=null){var F=[],W=!0,ve=!1,Le,Ye;try{for(p=p.call(S);!(W=(Le=p.next()).done)&&(F.push(Le.value),!(f&&F.length===f));W=!0);}catch(En){ve=!0,Ye=En}finally{try{!W&&p.return!=null&&p.return()}finally{if(ve)throw Ye}}return F}}function A(S,f){if(S){if(typeof S=="string")return k(S,f);var p=Object.prototype.toString.call(S).slice(8,-1);if(p==="Object"&&S.constructor&&(p=S.constructor.name),p==="Map"||p==="Set")return Array.from(S);if(p==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p))return k(S,f)}}function k(S,f){(f==null||f>S.length)&&(f=S.length);for(var p=0,F=new Array(f);p<f;p++)F[p]=S[p];return F}function E(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
400
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var D={Mobile:"mobile",Tablet:"tablet",SmartTv:"smarttv",Console:"console",Wearable:"wearable",Embedded:"embedded",Browser:void 0},z={Chrome:"Chrome",Firefox:"Firefox",Opera:"Opera",Yandex:"Yandex",Safari:"Safari",InternetExplorer:"Internet Explorer",Edge:"Edge",Chromium:"Chromium",Ie:"IE",MobileSafari:"Mobile Safari",EdgeChromium:"Edge Chromium",MIUI:"MIUI Browser",SamsungBrowser:"Samsung Browser"},se={IOS:"iOS",Android:"Android",WindowsPhone:"Windows Phone",Windows:"Windows",MAC_OS:"Mac OS"},he={isMobile:!1,isTablet:!1,isBrowser:!1,isSmartTV:!1,isConsole:!1,isWearable:!1},Ae=function(f){switch(f){case D.Mobile:return{isMobile:!0};case D.Tablet:return{isTablet:!0};case D.SmartTv:return{isSmartTV:!0};case D.Console:return{isConsole:!0};case D.Wearable:return{isWearable:!0};case D.Browser:return{isBrowser:!0};case D.Embedded:return{isEmbedded:!0};default:return he}},Se=function(f){return R(f)},j=function(f){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"none";return f||p},ge=function(){return typeof window<"u"&&(window.navigator||navigator)?window.navigator||navigator:!1},Ee=function(f){var p=ge();return p&&p.platform&&(p.platform.indexOf(f)!==-1||p.platform==="MacIntel"&&p.maxTouchPoints>1&&!window.MSStream)},Ve=function(f,p,F,W,ve){return{isBrowser:f,browserMajorVersion:j(p.major),browserFullVersion:j(p.version),browserName:j(p.name),engineName:j(F.name),engineVersion:j(F.version),osName:j(W.name),osVersion:j(W.version),userAgent:j(ve)}},at=function(f,p,F,W){return C({},f,{vendor:j(p.vendor),model:j(p.model),os:j(F.name),osVersion:j(F.version),ua:j(W)})},Je=function(f,p,F,W){return{isSmartTV:f,engineName:j(p.name),engineVersion:j(p.version),osName:j(F.name),osVersion:j(F.version),userAgent:j(W)}},Fe=function(f,p,F,W){return{isConsole:f,engineName:j(p.name),engineVersion:j(p.version),osName:j(F.name),osVersion:j(F.version),userAgent:j(W)}},qe=function(f,p,F,W){return{isWearable:f,engineName:j(p.name),engineVersion:j(p.version),osName:j(F.name),osVersion:j(F.version),userAgent:j(W)}},Me=function(f,p,F,W,ve){return{isEmbedded:f,vendor:j(p.vendor),model:j(p.model),engineName:j(F.name),engineVersion:j(F.version),osName:j(W.name),osVersion:j(W.version),userAgent:j(ve)}};function De(S){var f=S?h(S):x,p=f.device,F=f.browser,W=f.engine,ve=f.os,Le=f.ua,Ye=Ae(p.type),En=Ye.isBrowser,al=Ye.isMobile,rl=Ye.isTablet,Ls=Ye.isSmartTV,Ms=Ye.isConsole,Rs=Ye.isWearable,$s=Ye.isEmbedded;if(En)return Ve(En,F,W,ve,Le);if(Ls)return Je(Ls,W,ve,Le);if(Ms)return Fe(Ms,W,ve,Le);if(al||rl)return at(Ye,p,ve,Le);if(Rs)return qe(Rs,W,ve,Le);if($s)return Me($s,p,W,ve,Le)}var Te=function(f){var p=f.type;return p===D.Mobile},Pt=function(f){var p=f.type;return p===D.Tablet},Vt=function(f){var p=f.type;return p===D.Mobile||p===D.Tablet},bt=function(f){var p=f.type;return p===D.SmartTv},O=function(f){var p=f.type;return p===D.Browser},Z=function(f){var p=f.type;return p===D.Wearable},G=function(f){var p=f.type;return p===D.Console},ee=function(f){var p=f.type;return p===D.Embedded},K=function(f){var p=f.vendor;return j(p)},q=function(f){var p=f.model;return j(p)},Y=function(f){var p=f.type;return j(p,"browser")},ie=function(f){var p=f.name;return p===se.Android},ye=function(f){var p=f.name;return p===se.Windows},re=function(f){var p=f.name;return p===se.MAC_OS},J=function(f){var p=f.name;return p===se.WindowsPhone},I=function(f){var p=f.name;return p===se.IOS},U=function(f){var p=f.version;return j(p)},Q=function(f){var p=f.name;return j(p)},H=function(f){var p=f.name;return p===z.Chrome},te=function(f){var p=f.name;return p===z.Firefox},we=function(f){var p=f.name;return p===z.Chromium},ae=function(f){var p=f.name;return p===z.Edge},M=function(f){var p=f.name;return p===z.Yandex},_=function(f){var p=f.name;return p===z.Safari||p===z.MobileSafari},$=function(f){var p=f.name;return p===z.MobileSafari},me=function(f){var p=f.name;return p===z.Opera},xe=function(f){var p=f.name;return p===z.InternetExplorer||p===z.Ie},de=function(f){var p=f.name;return p===z.MIUI},Ne=function(f){var p=f.name;return p===z.SamsungBrowser},Pe=function(f){var p=f.version;return j(p)},Ce=function(f){var p=f.major;return j(p)},_e=function(f){var p=f.name;return j(p)},Xe=function(f){var p=f.name;return j(p)},nt=function(f){var p=f.version;return j(p)},dt=function(){var f=ge(),p=f&&f.userAgent&&f.userAgent.toLowerCase();return typeof p=="string"?/electron/.test(p):!1},rt=function(f){return typeof f=="string"&&f.indexOf("Edg/")!==-1},Ft=function(){var f=ge();return f&&(/iPad|iPhone|iPod/.test(f.platform)||f.platform==="MacIntel"&&f.maxTouchPoints>1)&&!window.MSStream},Ke=function(){return Ee("iPad")},rn=function(){return Ee("iPhone")},Gt=function(){return Ee("iPod")},Ue=function(f){return j(f)};function An(S){var f=S||x,p=f.device,F=f.browser,W=f.os,ve=f.engine,Le=f.ua;return{isSmartTV:bt(p),isConsole:G(p),isWearable:Z(p),isEmbedded:ee(p),isMobileSafari:$(F)||Ke(),isChromium:we(F),isMobile:Vt(p)||Ke(),isMobileOnly:Te(p),isTablet:Pt(p)||Ke(),isBrowser:O(p),isDesktop:O(p),isAndroid:ie(W),isWinPhone:J(W),isIOS:I(W)||Ke(),isChrome:H(F),isFirefox:te(F),isSafari:_(F),isOpera:me(F),isIE:xe(F),osVersion:U(W),osName:Q(W),fullBrowserVersion:Pe(F),browserVersion:Ce(F),browserName:_e(F),mobileVendor:K(p),mobileModel:q(p),engineName:Xe(ve),engineVersion:nt(ve),getUA:Ue(Le),isEdge:ae(F)||rt(Le),isYandex:M(F),deviceType:Y(p),isIOS13:Ft(),isIPad13:Ke(),isIPhone13:rn(),isIPod13:Gt(),isElectron:dt(),isEdgeChromium:rt(Le),isLegacyEdge:ae(F)&&!rt(Le),isWindows:ye(W),isMacOs:re(W),isMIUI:de(F),isSamsungBrowser:Ne(F)}}var Tn=bt(i),Ns=G(i),Cs=Z(i),uc=ee(i),fc=$(a)||Ke(),pc=we(a),xn=Vt(i)||Ke(),Bs=Te(i),Is=Pt(i)||Ke(),Ps=O(i),mc=O(i),Fs=ie(T),Ds=J(T),_s=I(T)||Ke(),hc=H(a),bc=te(a),gc=_(a),wc=me(a),Os=xe(a),yc=U(T),vc=Q(T),kc=Pe(a),Ac=Ce(a),Tc=_e(a),xc=K(i),Ec=q(i),Sc=Xe(d),Nc=nt(d),Cc=Ue(B),Bc=ae(a)||rt(B),Ic=M(a),Pc=Y(i),Fc=Ft(),Dc=Ke(),_c=rn(),Oc=Gt(),Uc=dt(),Lc=rt(B),Mc=ae(a)&&!rt(B),Rc=ye(T),$c=re(T),Hc=de(a),Wc=Ne(a),Vc=function(f){if(!f||typeof f!="string"){console.error("No valid user agent string was provided");return}var p=h(f),F=p.device,W=p.browser,ve=p.os,Le=p.engine,Ye=p.ua;return An({device:F,browser:W,os:ve,engine:Le,ua:Ye})},Gc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Fs?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},zc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Ps?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},qc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Os?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},Yc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return _s?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},jc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return xn?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},Jc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Is?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},Xc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Ds?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},Kc=function(f){var p=f.renderWithFragment,F=f.children;f.viewClassName,f.style;var W=c(f,["renderWithFragment","children","viewClassName","style"]);return Bs?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},Zc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Tn?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},Qc=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Ns?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},el=function(f){var p=f.renderWithFragment,F=f.children,W=c(f,["renderWithFragment","children"]);return Cs?p?n.createElement(t.Fragment,null,F):n.createElement("div",W,F):null},tl=function(f){var p=f.renderWithFragment,F=f.children;f.viewClassName,f.style;var W=f.condition,ve=c(f,["renderWithFragment","children","viewClassName","style","condition"]);return W?p?n.createElement(t.Fragment,null,F):n.createElement("div",ve,F):null};function nl(S){return(function(f){pe(p,f);function p(F){var W;return ke(this,p),W=g(this,Be(p).call(this,F)),W.isEventListenerAdded=!1,W.handleOrientationChange=W.handleOrientationChange.bind(b(W)),W.onOrientationChange=W.onOrientationChange.bind(b(W)),W.onPageLoad=W.onPageLoad.bind(b(W)),W.state={isLandscape:!1,isPortrait:!1},W}return V(p,[{key:"handleOrientationChange",value:function(){this.isEventListenerAdded||(this.isEventListenerAdded=!0);var W=window.innerWidth>window.innerHeight?90:0;this.setState({isPortrait:W===0,isLandscape:W===90})}},{key:"onOrientationChange",value:function(){this.handleOrientationChange()}},{key:"onPageLoad",value:function(){this.handleOrientationChange()}},{key:"componentDidMount",value:function(){(typeof window>"u"?"undefined":L(window))!==void 0&&xn&&(this.isEventListenerAdded?window.removeEventListener("load",this.onPageLoad,!1):(this.handleOrientationChange(),window.addEventListener("load",this.onPageLoad,!1)),window.addEventListener("resize",this.onOrientationChange,!1))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.onOrientationChange,!1)}},{key:"render",value:function(){return n.createElement(S,fe({},this.props,{isLandscape:this.state.isLandscape,isPortrait:this.state.isPortrait}))}}]),p})(n.Component)}function ol(){var S=t.useState(function(){var ve=window.innerWidth>window.innerHeight?90:0;return{isPortrait:ve===0,isLandscape:ve===90,orientation:ve===0?"portrait":"landscape"}}),f=w(S,2),p=f[0],F=f[1],W=t.useCallback(function(){var ve=window.innerWidth>window.innerHeight?90:0,Le={isPortrait:ve===0,isLandscape:ve===90,orientation:ve===0?"portrait":"landscape"};p.orientation!==Le.orientation&&F(Le)},[p.orientation]);return t.useEffect(function(){return(typeof window>"u"?"undefined":L(window))!==void 0&&xn&&(W(),window.addEventListener("load",W,!1),window.addEventListener("resize",W,!1)),function(){window.removeEventListener("resize",W,!1),window.removeEventListener("load",W,!1)}},[W]),p}function Us(S){var f=S||window.navigator.userAgent;return h(f)}function sl(S){var f=S||window.navigator.userAgent,p=Us(f),F=An(p);return[F,p]}return oe.AndroidView=Gc,oe.BrowserTypes=z,oe.BrowserView=zc,oe.ConsoleView=Qc,oe.CustomView=tl,oe.IEView=qc,oe.IOSView=Yc,oe.MobileOnlyView=Kc,oe.MobileView=jc,oe.OsTypes=se,oe.SmartTVView=Zc,oe.TabletView=Jc,oe.WearableView=el,oe.WinPhoneView=Xc,oe.browserName=Tc,oe.browserVersion=Ac,oe.deviceDetect=De,oe.deviceType=Pc,oe.engineName=Sc,oe.engineVersion=Nc,oe.fullBrowserVersion=kc,oe.getSelectorsByUserAgent=Vc,oe.getUA=Cc,oe.isAndroid=Fs,oe.isBrowser=Ps,oe.isChrome=hc,oe.isChromium=pc,oe.isConsole=Ns,oe.isDesktop=mc,oe.isEdge=Bc,oe.isEdgeChromium=Lc,oe.isElectron=Uc,oe.isEmbedded=uc,oe.isFirefox=bc,oe.isIE=Os,oe.isIOS=_s,oe.isIOS13=Fc,oe.isIPad13=Dc,oe.isIPhone13=_c,oe.isIPod13=Oc,oe.isLegacyEdge=Mc,oe.isMIUI=Hc,oe.isMacOs=$c,oe.isMobile=xn,oe.isMobileOnly=Bs,oe.isMobileSafari=fc,oe.isOpera=wc,oe.isSafari=gc,oe.isSamsungBrowser=Wc,oe.isSmartTV=Tn,oe.isTablet=Is,oe.isWearable=Cs,oe.isWinPhone=Ds,oe.isWindows=Rc,oe.isYandex=Ic,oe.mobileModel=Ec,oe.mobileVendor=xc,oe.osName=vc,oe.osVersion=yc,oe.parseUserAgent=h,oe.setUserAgent=Se,oe.useDeviceData=Us,oe.useDeviceSelectors=sl,oe.useMobileOrientation=ol,oe.withOrientationChange=nl,oe}var Wt=ic();function fo(e,t){if(!e)return e;const n=e.toLowerCase().trim();if(n==="max"||n==="all")return t||e;const o=n.match(/^(\d+(?:\.\d+)?)%$/);if(o){const s=parseFloat(o[1])/100;return((parseFloat(t)||0)*s).toFixed(8).replace(/\.?0+$/,"")||"0"}return e}const cc=({isOpen:e,onClose:t,onTransaction:n,position:o="bottom-right",modalChatStyle:s={}})=>{const{t:a,ti:r}=Sn(),{messages:i,addMessage:d,updateMessageAction:T,updateMessageText:B}=Ii(),[R,h]=ne.useState(""),[x,m]=ne.useState(!1),[C,L]=ne.useState(!0),[ke,N]=ne.useState(null),V=ne.useRef(null),X=ne.useRef(null),fe=ne.useRef(null),pe=ne.useRef(null),Be=ne.useRef(null),l=ne.useRef(!1),u=ne.useRef(C);ne.useEffect(()=>{u.current=C},[C]);const{account:c,chainData:b,chainType:g,chainTypeMoralis:w,chainId:v,isChainSupported:y}=eo(),{config:A}=Pi(),k=v&&A?.rpcUrls?.[v]||void 0,E=ne.useCallback(()=>{const O=Bt.getItem("dataBuyToken");if(O)try{return JSON.parse(O)}catch{return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}}return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}},[]),D=ne.useCallback(O=>{Bt.setItem("dataBuyToken",JSON.stringify(O))},[]),z=ne.useCallback(O=>{const G={...E(),...O};D(G)},[E,D]),se=ne.useCallback(O=>{N(O),Wt.isDesktop&&fe.current?.focus()},[]),he=ne.useCallback(async(O,Z)=>{z({descTokenAddress:O,descTokenDecimals:Z||18});try{m(!0);const G=await je({address:c?.address||"",chain:w});if(G?.success&&G?.data?.result){const ee=G.data.result;if(ee?.length>0){const K=ee.map(q=>({id:q.token_address,text:`${q.name}: ${q.balance_formatted} ${q.symbol} ($${ce(q.usd_value||0)?.decimalPlaces(2).toFormat()||"0"})`,value:r("buttonBuyWith",{symbol:q.symbol}),action:"click_balance_item_user_to_buy_button",fullWidth:!0,extraData:{tokenAddress:q.token_address,symbol:q.symbol,balance:q.balance_formatted,usdValue:q.usd_value,decimals:q.decimals}}));d(r("walletBalanceSpendable",{chain:b?.name||"unknown"}),"bot",void 0,K)}else d(r("walletNoTokensFound",{chain:b?.name||"unknown"}),"bot")}else d(a("walletFetchFailed"),"bot")}catch(G){console.error("Error fetching wallet balance:",G),d(a("walletFetchError"),"bot")}finally{m(!1)}},[z,c?.address,w,d,b?.name,a,r]),Ae=ne.useCallback(async(O,Z,G,ee)=>{const K=[25,50,75,100];z({srcTokenAddress:O,srcTokenDecimals:ee||18});let q=G||"0";if(O===He)try{const ie=await uo({chainId:v,rpcUrl:k});if(ie.isGreaterThan(0)){const ye=ie.times(1e6),J=new ce(mt(G,ee||18).toString()).minus(ye);J.isGreaterThan(0)?q=ce(Oe(BigInt(J.toFixed(0)),18)).toFixed():q="0"}}catch(ie){console.warn("getGasPrice for swap native fee deduction failed:",ie)}const Y=K.map(ie=>({id:`percent-${ie}`,text:`${ie}%`,value:r("buttonUsePercent",{percent:String(ie),symbol:Z}),action:"select_percent",extraData:{percent:ie,tokenAddress:O,tokenSymbol:Z,tokenBalance:q}}));if(ce(q).isZero()){d(r("insufficientFeeToken",{symbol:Z}),"bot");return}d(r("selectAmountOf",{symbol:Z,balance:q}),"bot",void 0,Y)},[d,v,k,z,r]),Se=ne.useCallback(async(O,Z)=>{z({amount:(parseFloat(Z)*(O/100)).toFixed(6)});const G=E(),ee=mt(G.amount,G.srcTokenDecimals||18).toString(),K=await ro({chainId:v,tokenIn:G.srcTokenAddress,tokenInAmount:ee,tokenOut:G.descTokenAddress,tokenOutRecipient:c?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(K.success&&K.data){const q=K.data,Y=q.tokenIn,ie=q.tokenOut,ye=ce(Oe(BigInt(Y.amount||0),Y.decimals)).decimalPlaces(6).toFormat(),re=ce(Oe(BigInt(ie.amount||0),ie.decimals)).decimalPlaces(6).toFormat(),J=G.srcTokenAddress===He||G.srcTokenAddress==="";let I=!1;if(!J&&c?.address&&q.tx?.to)try{const _=await lo({tokenAddress:G.srcTokenAddress,ownerAddress:c.address,spenderAddress:q.tx.to,chainId:v,rpcUrl:k});I=ce(_.toString()).isLessThan(ee)}catch(_){console.warn("Allowance check failed:",_),I=!0}const U=q.estimatedTransactionFee?.total?ce(q.estimatedTransactionFee.total):ce(0);let Q=ce(0);if(I&&c?.address)try{const _=vn({tokenAddress:G.srcTokenAddress,spenderAddress:q.tx?.to||"",fromAddress:c.address,chainId:v});Q=await sn({from:c.address,to:_.to,data:_.data,chainId:v,rpcUrl:k})}catch(_){console.warn("Approve fee estimation failed:",_)}const H=U.plus(Q),te=b?.nativeCurrency?.symbol||"native";let we="",ae=!1;if(c?.address&&H.isGreaterThan(0))try{const _=await kn({address:c.address,chainId:v,rpcUrl:k});if(_.isLessThan(H)){ae=!0;const $=ce(Oe(BigInt(_.toFixed(0)),18)).decimalPlaces(6).toFormat(),me=ce(Oe(BigInt(H.toFixed(0)),18)).decimalPlaces(6).toFormat();we=r("swapFeeWarning",{symbol:te,balance:$,needed:me})}}catch(_){console.warn("Fee balance check failed:",_)}const M=`From: ${ye} ${Y.symbol}
|
|
399
|
+
Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${s}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"2"}}`}const Ts={1:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",10:"0x4200000000000000000000000000000000000006",56:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",137:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",8453:"0x4200000000000000000000000000000000000006",42161:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},yn=[{name:"transfer",type:"function",stateMutability:"nonpayable",inputs:[{name:"to",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"approve",type:"function",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{name:"allowance",type:"function",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]}],Es=[{name:"deposit",type:"function",stateMutability:"payable",inputs:[],outputs:[]},{name:"withdraw",type:"function",stateMutability:"nonpayable",inputs:[{name:"wad",type:"uint256"}],outputs:[]}],Xi=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"tokenId",type:"uint256"}],outputs:[]}],Ki=[{name:"safeTransferFrom",type:"function",stateMutability:"nonpayable",inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"id",type:"uint256"},{name:"amount",type:"uint256"},{name:"data",type:"bytes"}],outputs:[]}];function on(e,t){return t||lt[e]?.rpcUrls?.default?.http?.[0]}function Zi(e){const{action:t,parameters:n,fromAddress:o,chainId:s}=e;switch(t){case"send_native":return _i(n,o,s);case"send_token":return $i(n,o,s);case"approve_token":return ec(n,o,s);case"wrap_native":return tc(n,o,s);case"unwrap_native":return nc(n,o,s);case"send_nft":return sc(n,o,s);default:throw new Error(`Action "${t}" does not produce a transaction`)}}function _i(e,t,n){const{to_address:o,amount:s}=e;if(!o)throw new Error("Recipient address is required");if(!s)throw new Error("Amount is required");const a=mt(s,18).toString();return{from:t,to:o,data:"0x",value:a,chainId:n,description:`Send ${s} native token to ${o}`}}function $i(e,t,n){const{contract_address:o,to_address:s,amount:a,decimals:r,token_symbol:i}=e;if(!o)throw new Error("Token contract address is required");if(!s)throw new Error("Recipient address is required");if(!a)throw new Error("Amount is required");const d=parseInt(r)||18,T=mt(a,d),B=vt({abi:yn,functionName:"transfer",args:[s,T]});return{from:t,to:o,data:B,value:"0",chainId:n,description:`Send ${a} ${i||"tokens"} to ${s}`}}function ec(e,t,n){const{contract_address:o,spender_address:s,amount:a,token_symbol:r}=e;if(!o)throw new Error("Token contract address is required");if(!s)throw new Error("Spender address is required");const i=a&&a?.trim()!==""?mt(a,18):Lt,d=vt({abi:yn,functionName:"approve",args:[s,i]});return{from:t,to:o,data:d,value:"0",chainId:n,description:`Approve ${a||"unlimited"} ${r||"tokens"} for ${s}`}}function tc(e,t,n){const{amount:o}=e;if(!o)throw new Error("Amount is required");const s=Ts[n];if(!s)throw new Error(`WETH not supported on chain ${n}`);const a=mt(o,18).toString(),r=vt({abi:Es,functionName:"deposit"});return{from:t,to:s,data:r,value:a,chainId:n,description:`Wrap ${o} native token`}}function nc(e,t,n){const{amount:o}=e;if(!o)throw new Error("Amount is required");const s=Ts[n];if(!s)throw new Error(`WETH not supported on chain ${n}`);const a=mt(o,18),r=vt({abi:Es,functionName:"withdraw",args:[a]});return{from:t,to:s,data:r,value:"0",chainId:n,description:`Unwrap ${o} WETH`}}function oc(e){return["send_native","send_token","approve_token","wrap_native","unwrap_native","send_nft"].includes(e)}async function co(e){const{transactionHash:t,chainId:n,pollingInterval:o=3e3,timeout:s=12e4,rpcUrl:a}=e,r=on(n,a);if(!r)throw new Error(`No RPC endpoint for chain ${n}`);const i=Date.now();for(;Date.now()-i<s;){try{const T=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getTransactionReceipt",params:[t]})})).json();if(T.result){const B=T.result;return{status:B.status==="0x1"?"success":"fail",blockNumber:B.blockNumber,gasUsed:B.gasUsed,effectiveGasPrice:B.effectiveGasPrice}}}catch(d){console.warn("eth_getTransactionReceipt poll error:",d)}await new Promise(d=>setTimeout(d,o))}throw new Error(`Transaction ${t} was not mined within ${s/1e3}s`)}async function lo(e){const{tokenAddress:t,ownerAddress:n,spenderAddress:o,chainId:s,rpcUrl:a}=e,r=on(s,a);if(!r)return console.warn(`No RPC endpoint for chain ${s}, assuming no allowance`),BigInt(0);try{const i=vt({abi:yn,functionName:"allowance",args:[n,o]}),T=await(await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_call",params:[{to:t,data:i},"latest"]})})).json();return T.result&&T.result!=="0x"?BigInt(T.result):BigInt(0)}catch(i){return console.warn("checkAllowance failed:",i),BigInt(0)}}function An(e){const{tokenAddress:t,spenderAddress:n,fromAddress:o,chainId:s,tokenSymbol:a}=e,r=vt({abi:yn,functionName:"approve",args:[n,Lt]});return{from:o,to:t,data:r,value:"0",chainId:s,description:`Approve ${a||"token"} for swap`}}function sc(e,t,n){const{contract_address:o,token_id:s,to_address:a,token_standard:r,amount:i,nft_name:d}=e;if(!o)throw new Error("NFT contract address is required");if(!s)throw new Error("Token ID is required");if(!a)throw new Error("Recipient address is required");const T=(r||"ERC721").toUpperCase(),B=BigInt(s);let H,h;if(T==="ERC1155"){const E=BigInt(i||"1");H=vt({abi:Ki,functionName:"safeTransferFrom",args:[t,a,B,E,"0x"]}),h=`Send ${E>1n?E.toString()+"x ":""}${d||"NFT"} (ERC1155 #${s}) to ${a}`}else H=vt({abi:Xi,functionName:"safeTransferFrom",args:[t,a,B]}),h=`Send ${d||"NFT"} (ERC721 #${s}) to ${a}`;return{from:t,to:o,data:H,value:"0",chainId:n,description:h}}async function vn(e){const{address:t,chainId:n,rpcUrl:o}=e,s=on(n,o);if(!s)return console.warn(`No RPC endpoint for chain ${n}`),new ce(0);try{const r=await(await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_getBalance",params:[t,"latest"]})})).json();return r.result&&r.result!=="0x"?new ce(BigInt(r.result).toString()):new ce(0)}catch(a){return console.warn("getNativeBalance failed:",a),new ce(0)}}async function sn(e){const{from:t,to:n,data:o,value:s,chainId:a,rpcUrl:r}=e,i=on(a,r);if(!i)return console.warn(`No RPC endpoint for chain ${a}`),new ce(0);try{const[d,T]=await Promise.all([fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_estimateGas",params:[{from:t,to:n,data:o,...s&&s!=="0"?{value:s}:{}}]})}),fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:2,method:"eth_gasPrice",params:[]})})]),[B,H]=await Promise.all([d.json(),T.json()]),h=B.result?new ce(BigInt(B.result).toString()):new ce(0),E=H.result?new ce(BigInt(H.result).toString()):new ce(0);return h.times(E).times(1.1)}catch(d){return console.warn("estimateTransactionFee failed:",d),new ce(0)}}async function uo(e){const{chainId:t,rpcUrl:n}=e,o=on(t,n);if(!o)return console.warn(`No RPC endpoint for chain ${t}`),new ce(0);try{const a=await(await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_gasPrice",params:[]})})).json();return a.result&&a.result!=="0x"?new ce(BigInt(a.result).toString()):new ce(0)}catch(s){return console.warn("getGasPrice failed:",s),new ce(0)}}var oe={},an={exports:{}},ac=an.exports,Ss;function rc(){return Ss||(Ss=1,(function(e,t){(function(n,o){var s="1.0.41",a="",r="?",i="function",d="undefined",T="object",B="string",H="major",h="model",E="name",m="type",C="vendor",M="version",ve="architecture",I="console",Y="mobile",K="tablet",fe="smarttv",pe="wearable",Be="embedded",l=500,u="Amazon",c="Apple",g="ASUS",w="BlackBerry",b="Browser",A="Chrome",y="Edge",k="Firefox",v="Google",S="Honor",D="Huawei",z="Lenovo",se="LG",he="Microsoft",ke="Motorola",xe="Nvidia",Q="OnePlus",we="Opera",Se="OPPO",Ye="Samsung",at="Sharp",Xe="Sony",Pe="Xiaomi",je="Zebra",Le="Facebook",De="Chromium OS",Te="Mac OS",Ft=" Browser",Yt=function(R,$){var V={};for(var te in R)$[te]&&$[te].length%2===0?V[te]=$[te].concat(R[te]):V[te]=R[te];return V},gt=function(R){for(var $={},V=0;V<R.length;V++)$[R[V].toUpperCase()]=R[V];return $},U=function(R,$){return typeof R===B?_($).indexOf(_(R))!==-1:!1},_=function(R){return R.toLowerCase()},J=function(R){return typeof R===B?R.replace(/[^\d\.]/g,a).split(".")[0]:o},ee=function(R,$){if(typeof R===B)return R=R.replace(/^\s\s*/,a),typeof $===d?R:R.substring(0,l)},Z=function(R,$){for(var V=0,te,be,ae,L,O,W;V<$.length&&!O;){var me=$[V],Ee=$[V+1];for(te=be=0;te<me.length&&!O&&me[te];)if(O=me[te++].exec(R),O)for(ae=0;ae<Ee.length;ae++)W=O[++be],L=Ee[ae],typeof L===T&&L.length>0?L.length===2?typeof L[1]==i?this[L[0]]=L[1].call(this,W):this[L[0]]=L[1]:L.length===3?typeof L[1]===i&&!(L[1].exec&&L[1].test)?this[L[0]]=W?L[1].call(this,W,L[2]):o:this[L[0]]=W?W.replace(L[1],L[2]):o:L.length===4&&(this[L[0]]=W?L[3].call(this,W.replace(L[1],L[2])):o):this[L]=W||o;V+=2}},j=function(R,$){for(var V in $)if(typeof $[V]===T&&$[V].length>0){for(var te=0;te<$[V].length;te++)if(U($[V][te],R))return V===r?o:V}else if(U($[V],R))return V===r?o:V;return $.hasOwnProperty("*")?$["*"]:R},q={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},ie={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"},ye={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[M,[E,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[M,[E,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[E,M],[/opios[\/ ]+([\w\.]+)/i],[M,[E,we+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[M,[E,we+" GX"]],[/\bopr\/([\w\.]+)/i],[M,[E,we]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[M,[E,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[M,[E,"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],[E,M],[/quark(?:pc)?\/([-\w\.]+)/i],[M,[E,"Quark"]],[/\bddg\/([\w\.]+)/i],[M,[E,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[M,[E,"UC"+b]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[M,[E,"WeChat"]],[/konqueror\/([\w\.]+)/i],[M,[E,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[M,[E,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[M,[E,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[M,[E,"Smart Lenovo "+b]],[/(avast|avg)\/([\w\.]+)/i],[[E,/(.+)/,"$1 Secure "+b],M],[/\bfocus\/([\w\.]+)/i],[M,[E,k+" Focus"]],[/\bopt\/([\w\.]+)/i],[M,[E,we+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[M,[E,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[M,[E,"Dolphin"]],[/coast\/([\w\.]+)/i],[M,[E,we+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[M,[E,"MIUI"+Ft]],[/fxios\/([\w\.-]+)/i],[M,[E,k]],[/\bqihoobrowser\/?([\w\.]*)/i],[M,[E,"360"]],[/\b(qq)\/([\w\.]+)/i],[[E,/(.+)/,"$1Browser"],M],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[E,/(.+)/,"$1"+Ft],M],[/samsungbrowser\/([\w\.]+)/i],[M,[E,Ye+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[M,[E,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[E,"Sogou Mobile"],M],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[E,M],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[E],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[M,E],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[E,Le],M],[/(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],[E,M],[/\bgsa\/([\w\.]+) .*safari\//i],[M,[E,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[M,[E,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[M,[E,A+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[E,A+" WebView"],M],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[M,[E,"Android "+b]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[E,M],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[M,[E,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[M,E],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[E,[M,j,q]],[/(webkit|khtml)\/([\w\.]+)/i],[E,M],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[E,"Netscape"],M],[/(wolvic|librewolf)\/([\w\.]+)/i],[E,M],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[M,[E,k+" 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],[E,[M,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[E,[M,/master.|lts./,""]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[ve,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[ve,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[ve,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[ve,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[ve,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[ve,/ower/,a,_]],[/ sun4\w[;\)]/i],[[ve,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[ve,_]]],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],[h,[C,Ye],[m,K]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[h,[C,Ye],[m,Y]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[h,[C,c],[m,Y]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[h,[C,c],[m,K]],[/(macintosh);/i],[h,[C,c]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[h,[C,at],[m,Y]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[h,[C,S],[m,K]],[/honor([-\w ]+)[;\)]/i],[h,[C,S],[m,Y]],[/\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],[h,[C,D],[m,K]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[h,[C,D],[m,Y]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[h,/_/g," "],[C,Pe],[m,K]],[/\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],[[h,/_/g," "],[C,Pe],[m,Y]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[h,[C,Se],[m,Y]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[h,[C,j,{OnePlus:["304","403","203"],"*":Se}],[m,K]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[h,[C,"Vivo"],[m,Y]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[h,[C,"Realme"],[m,Y]],[/\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],[h,[C,ke],[m,Y]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[h,[C,ke],[m,K]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[h,[C,se],[m,K]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[h,[C,se],[m,Y]],[/(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],[h,[C,z],[m,K]],[/(nokia) (t[12][01])/i],[C,h,[m,K]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[h,/_/g," "],[m,Y],[C,"Nokia"]],[/(pixel (c|tablet))\b/i],[h,[C,v],[m,K]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[h,[C,v],[m,Y]],[/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],[h,[C,Xe],[m,Y]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[h,"Xperia Tablet"],[C,Xe],[m,K]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[h,[C,Q],[m,Y]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[h,[C,u],[m,K]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[h,/(.+)/g,"Fire Phone $1"],[C,u],[m,Y]],[/(playbook);[-\w\),; ]+(rim)/i],[h,C,[m,K]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[h,[C,w],[m,Y]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[h,[C,g],[m,K]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[h,[C,g],[m,Y]],[/(nexus 9)/i],[h,[C,"HTC"],[m,K]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[C,[h,/_/g," "],[m,Y]],[/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],[h,[C,"TCL"],[m,K]],[/(itel) ((\w+))/i],[[C,_],h,[m,j,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[h,[C,"Acer"],[m,K]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[h,[C,"Meizu"],[m,Y]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[h,[C,"Ulefone"],[m,Y]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[h,[C,"Energizer"],[m,Y]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[h,[C,"Cat"],[m,Y]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[h,[C,"Smartfren"],[m,Y]],[/droid.+; (a(?:015|06[35]|142p?))/i],[h,[C,"Nothing"],[m,Y]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[h,[C,"Archos"],[m,K]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[h,[C,"Archos"],[m,Y]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[C,h,[m,K]],[/(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],[C,h,[m,Y]],[/(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],[C,h,[m,K]],[/(surface duo)/i],[h,[C,he],[m,K]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[h,[C,"Fairphone"],[m,Y]],[/(u304aa)/i],[h,[C,"AT&T"],[m,Y]],[/\bsie-(\w*)/i],[h,[C,"Siemens"],[m,Y]],[/\b(rct\w+) b/i],[h,[C,"RCA"],[m,K]],[/\b(venue[\d ]{2,7}) b/i],[h,[C,"Dell"],[m,K]],[/\b(q(?:mv|ta)\w+) b/i],[h,[C,"Verizon"],[m,K]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[h,[C,"Barnes & Noble"],[m,K]],[/\b(tm\d{3}\w+) b/i],[h,[C,"NuVision"],[m,K]],[/\b(k88) b/i],[h,[C,"ZTE"],[m,K]],[/\b(nx\d{3}j) b/i],[h,[C,"ZTE"],[m,Y]],[/\b(gen\d{3}) b.+49h/i],[h,[C,"Swiss"],[m,Y]],[/\b(zur\d{3}) b/i],[h,[C,"Swiss"],[m,K]],[/\b((zeki)?tb.*\b) b/i],[h,[C,"Zeki"],[m,K]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[C,"Dragon Touch"],h,[m,K]],[/\b(ns-?\w{0,9}) b/i],[h,[C,"Insignia"],[m,K]],[/\b((nxa|next)-?\w{0,9}) b/i],[h,[C,"NextBook"],[m,K]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[C,"Voice"],h,[m,Y]],[/\b(lvtel\-)?(v1[12]) b/i],[[C,"LvTel"],h,[m,Y]],[/\b(ph-1) /i],[h,[C,"Essential"],[m,Y]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[h,[C,"Envizen"],[m,K]],[/\b(trio[-\w\. ]+) b/i],[h,[C,"MachSpeed"],[m,K]],[/\btu_(1491) b/i],[h,[C,"Rotor"],[m,K]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[h,[C,xe],[m,K]],[/(sprint) (\w+)/i],[C,h,[m,Y]],[/(kin\.[onetw]{3})/i],[[h,/\./g," "],[C,he],[m,Y]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[h,[C,je],[m,K]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[h,[C,je],[m,Y]],[/smart-tv.+(samsung)/i],[C,[m,fe]],[/hbbtv.+maple;(\d+)/i],[[h,/^/,"SmartTV"],[C,Ye],[m,fe]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[C,se],[m,fe]],[/(apple) ?tv/i],[C,[h,c+" TV"],[m,fe]],[/crkey/i],[[h,A+"cast"],[C,v],[m,fe]],[/droid.+aft(\w+)( bui|\))/i],[h,[C,u],[m,fe]],[/(shield \w+ tv)/i],[h,[C,xe],[m,fe]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[h,[C,at],[m,fe]],[/(bravia[\w ]+)( bui|\))/i],[h,[C,Xe],[m,fe]],[/(mi(tv|box)-?\w+) bui/i],[h,[C,Pe],[m,fe]],[/Hbbtv.*(technisat) (.*);/i],[C,h,[m,fe]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[C,ee],[h,ee],[m,fe]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[h,[m,fe]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[m,fe]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[C,h,[m,I]],[/droid.+; (shield)( bui|\))/i],[h,[C,xe],[m,I]],[/(playstation \w+)/i],[h,[C,Xe],[m,I]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[h,[C,he],[m,I]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[h,[C,Ye],[m,pe]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[C,h,[m,pe]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[h,[C,Se],[m,pe]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[h,[C,c],[m,pe]],[/(opwwe\d{3})/i],[h,[C,Q],[m,pe]],[/(moto 360)/i],[h,[C,ke],[m,pe]],[/(smartwatch 3)/i],[h,[C,Xe],[m,pe]],[/(g watch r)/i],[h,[C,se],[m,pe]],[/droid.+; (wt63?0{2,3})\)/i],[h,[C,je],[m,pe]],[/droid.+; (glass) \d/i],[h,[C,v],[m,pe]],[/(pico) (4|neo3(?: link|pro)?)/i],[C,h,[m,pe]],[/; (quest( \d| pro)?)/i],[h,[C,Le],[m,pe]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[C,[m,Be]],[/(aeobc)\b/i],[h,[C,u],[m,Be]],[/(homepod).+mac os/i],[h,[C,c],[m,Be]],[/windows iot/i],[[m,Be]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[h,[m,Y]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[h,[m,K]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[m,K]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[m,Y]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[h,[C,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[M,[E,y+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[E,M],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[M,[E,"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],[E,M],[/ladybird\//i],[[E,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[M,E]],os:[[/microsoft (windows) (vista|xp)/i],[E,M],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[E,[M,j,ie]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[M,j,ie],[E,"Windows"]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[M,/_/g,"."],[E,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[E,Te],[M,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[M,E],[/(ubuntu) ([\w\.]+) like android/i],[[E,/(.+)/,"$1 Touch"],M],[/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i],[E,M],[/\(bb(10);/i],[M,[E,w]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[M,[E,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[M,[E,k+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[M,[E,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[M,[E,"watchOS"]],[/crkey\/([\d\.]+)/i],[M,[E,A+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[E,De],M],[/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],[E,M],[/(sunos) ?([\w\.\d]*)/i],[[E,"Solaris"],M],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[E,M]]},re=function(R,$){if(typeof R===T&&($=R,R=o),!(this instanceof re))return new re(R,$).getResult();var V=typeof n!==d&&n.navigator?n.navigator:o,te=R||(V&&V.userAgent?V.userAgent:a),be=V&&V.userAgentData?V.userAgentData:o,ae=$?Yt(ye,$):ye,L=V&&V.userAgent==te;return this.getBrowser=function(){var O={};return O[E]=o,O[M]=o,Z.call(O,te,ae.browser),O[H]=J(O[M]),L&&V&&V.brave&&typeof V.brave.isBrave==i&&(O[E]="Brave"),O},this.getCPU=function(){var O={};return O[ve]=o,Z.call(O,te,ae.cpu),O},this.getDevice=function(){var O={};return O[C]=o,O[h]=o,O[m]=o,Z.call(O,te,ae.device),L&&!O[m]&&be&&be.mobile&&(O[m]=Y),L&&O[h]=="Macintosh"&&V&&typeof V.standalone!==d&&V.maxTouchPoints&&V.maxTouchPoints>2&&(O[h]="iPad",O[m]=K),O},this.getEngine=function(){var O={};return O[E]=o,O[M]=o,Z.call(O,te,ae.engine),O},this.getOS=function(){var O={};return O[E]=o,O[M]=o,Z.call(O,te,ae.os),L&&!O[E]&&be&&be.platform&&be.platform!="Unknown"&&(O[E]=be.platform.replace(/chrome os/i,De).replace(/macos/i,Te)),O},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return te},this.setUA=function(O){return te=typeof O===B&&O.length>l?ee(O,l):O,this},this.setUA(te),this};re.VERSION=s,re.BROWSER=gt([E,M,H]),re.CPU=gt([ve]),re.DEVICE=gt([h,C,m,I,Y,fe,K,pe,Be]),re.ENGINE=re.OS=gt([E,M]),e.exports&&(t=e.exports=re),t.UAParser=re;var X=typeof n!==d&&(n.jQuery||n.Zepto);if(X&&!X.ua){var N=new re;X.ua=N.getResult(),X.ua.get=function(){return N.getUA()},X.ua.set=function(R){N.setUA(R);var $=N.getResult();for(var V in $)X.ua[V]=$[V]}}})(typeof window=="object"?window:ac)})(an,an.exports)),an.exports}var xs;function ic(){if(xs)return oe;xs=1,Object.defineProperty(oe,"__esModule",{value:!0});function e(x){return x&&typeof x=="object"&&"default"in x?x.default:x}var t=ne,n=e(t),o=rc(),s=new o,a=s.getBrowser(),r=s.getCPU(),i=s.getDevice(),d=s.getEngine(),T=s.getOS(),B=s.getUA(),H=function(f){return s.setUA(f)},h=function(f){if(!f){console.error("No userAgent string was provided");return}var p=new o(f);return{UA:p,browser:p.getBrowser(),cpu:p.getCPU(),device:p.getDevice(),engine:p.getEngine(),os:p.getOS(),ua:p.getUA(),setUserAgent:function(G){return p.setUA(G)}}},E=Object.freeze({ClientUAInstance:s,browser:a,cpu:r,device:i,engine:d,os:T,ua:B,setUa:H,parseUserAgent:h});function m(x,f){var p=Object.keys(x);if(Object.getOwnPropertySymbols){var P=Object.getOwnPropertySymbols(x);f&&(P=P.filter(function(G){return Object.getOwnPropertyDescriptor(x,G).enumerable})),p.push.apply(p,P)}return p}function C(x){for(var f=1;f<arguments.length;f++){var p=arguments[f]!=null?arguments[f]:{};f%2?m(Object(p),!0).forEach(function(P){K(x,P,p[P])}):Object.getOwnPropertyDescriptors?Object.defineProperties(x,Object.getOwnPropertyDescriptors(p)):m(Object(p)).forEach(function(P){Object.defineProperty(x,P,Object.getOwnPropertyDescriptor(p,P))})}return x}function M(x){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?M=function(f){return typeof f}:M=function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},M(x)}function ve(x,f){if(!(x instanceof f))throw new TypeError("Cannot call a class as a function")}function I(x,f){for(var p=0;p<f.length;p++){var P=f[p];P.enumerable=P.enumerable||!1,P.configurable=!0,"value"in P&&(P.writable=!0),Object.defineProperty(x,P.key,P)}}function Y(x,f,p){return f&&I(x.prototype,f),x}function K(x,f,p){return f in x?Object.defineProperty(x,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):x[f]=p,x}function fe(){return fe=Object.assign||function(x){for(var f=1;f<arguments.length;f++){var p=arguments[f];for(var P in p)Object.prototype.hasOwnProperty.call(p,P)&&(x[P]=p[P])}return x},fe.apply(this,arguments)}function pe(x,f){if(typeof f!="function"&&f!==null)throw new TypeError("Super expression must either be null or a function");x.prototype=Object.create(f&&f.prototype,{constructor:{value:x,writable:!0,configurable:!0}}),f&&l(x,f)}function Be(x){return Be=Object.setPrototypeOf?Object.getPrototypeOf:function(p){return p.__proto__||Object.getPrototypeOf(p)},Be(x)}function l(x,f){return l=Object.setPrototypeOf||function(P,G){return P.__proto__=G,P},l(x,f)}function u(x,f){if(x==null)return{};var p={},P=Object.keys(x),G,Ae;for(Ae=0;Ae<P.length;Ae++)G=P[Ae],!(f.indexOf(G)>=0)&&(p[G]=x[G]);return p}function c(x,f){if(x==null)return{};var p=u(x,f),P,G;if(Object.getOwnPropertySymbols){var Ae=Object.getOwnPropertySymbols(x);for(G=0;G<Ae.length;G++)P=Ae[G],!(f.indexOf(P)>=0)&&Object.prototype.propertyIsEnumerable.call(x,P)&&(p[P]=x[P])}return p}function g(x){if(x===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return x}function w(x,f){if(f&&(typeof f=="object"||typeof f=="function"))return f;if(f!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return g(x)}function b(x,f){return A(x)||y(x,f)||k(x,f)||S()}function A(x){if(Array.isArray(x))return x}function y(x,f){var p=x==null?null:typeof Symbol<"u"&&x[Symbol.iterator]||x["@@iterator"];if(p!=null){var P=[],G=!0,Ae=!1,Me,qe;try{for(p=p.call(x);!(G=(Me=p.next()).done)&&(P.push(Me.value),!(f&&P.length===f));G=!0);}catch(Sn){Ae=!0,qe=Sn}finally{try{!G&&p.return!=null&&p.return()}finally{if(Ae)throw qe}}return P}}function k(x,f){if(x){if(typeof x=="string")return v(x,f);var p=Object.prototype.toString.call(x).slice(8,-1);if(p==="Object"&&x.constructor&&(p=x.constructor.name),p==="Map"||p==="Set")return Array.from(x);if(p==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p))return v(x,f)}}function v(x,f){(f==null||f>x.length)&&(f=x.length);for(var p=0,P=new Array(f);p<f;p++)P[p]=x[p];return P}function S(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
400
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var D={Mobile:"mobile",Tablet:"tablet",SmartTv:"smarttv",Console:"console",Wearable:"wearable",Embedded:"embedded",Browser:void 0},z={Chrome:"Chrome",Firefox:"Firefox",Opera:"Opera",Yandex:"Yandex",Safari:"Safari",InternetExplorer:"Internet Explorer",Edge:"Edge",Chromium:"Chromium",Ie:"IE",MobileSafari:"Mobile Safari",EdgeChromium:"Edge Chromium",MIUI:"MIUI Browser",SamsungBrowser:"Samsung Browser"},se={IOS:"iOS",Android:"Android",WindowsPhone:"Windows Phone",Windows:"Windows",MAC_OS:"Mac OS"},he={isMobile:!1,isTablet:!1,isBrowser:!1,isSmartTV:!1,isConsole:!1,isWearable:!1},ke=function(f){switch(f){case D.Mobile:return{isMobile:!0};case D.Tablet:return{isTablet:!0};case D.SmartTv:return{isSmartTV:!0};case D.Console:return{isConsole:!0};case D.Wearable:return{isWearable:!0};case D.Browser:return{isBrowser:!0};case D.Embedded:return{isEmbedded:!0};default:return he}},xe=function(f){return H(f)},Q=function(f){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"none";return f||p},we=function(){return typeof window<"u"&&(window.navigator||navigator)?window.navigator||navigator:!1},Se=function(f){var p=we();return p&&p.platform&&(p.platform.indexOf(f)!==-1||p.platform==="MacIntel"&&p.maxTouchPoints>1&&!window.MSStream)},Ye=function(f,p,P,G,Ae){return{isBrowser:f,browserMajorVersion:Q(p.major),browserFullVersion:Q(p.version),browserName:Q(p.name),engineName:Q(P.name),engineVersion:Q(P.version),osName:Q(G.name),osVersion:Q(G.version),userAgent:Q(Ae)}},at=function(f,p,P,G){return C({},f,{vendor:Q(p.vendor),model:Q(p.model),os:Q(P.name),osVersion:Q(P.version),ua:Q(G)})},Xe=function(f,p,P,G){return{isSmartTV:f,engineName:Q(p.name),engineVersion:Q(p.version),osName:Q(P.name),osVersion:Q(P.version),userAgent:Q(G)}},Pe=function(f,p,P,G){return{isConsole:f,engineName:Q(p.name),engineVersion:Q(p.version),osName:Q(P.name),osVersion:Q(P.version),userAgent:Q(G)}},je=function(f,p,P,G){return{isWearable:f,engineName:Q(p.name),engineVersion:Q(p.version),osName:Q(P.name),osVersion:Q(P.version),userAgent:Q(G)}},Le=function(f,p,P,G,Ae){return{isEmbedded:f,vendor:Q(p.vendor),model:Q(p.model),engineName:Q(P.name),engineVersion:Q(P.version),osName:Q(G.name),osVersion:Q(G.version),userAgent:Q(Ae)}};function De(x){var f=x?h(x):E,p=f.device,P=f.browser,G=f.engine,Ae=f.os,Me=f.ua,qe=ke(p.type),Sn=qe.isBrowser,al=qe.isMobile,rl=qe.isTablet,Ms=qe.isSmartTV,Ls=qe.isConsole,Hs=qe.isWearable,Ws=qe.isEmbedded;if(Sn)return Ye(Sn,P,G,Ae,Me);if(Ms)return Xe(Ms,G,Ae,Me);if(Ls)return Pe(Ls,G,Ae,Me);if(al||rl)return at(qe,p,Ae,Me);if(Hs)return je(Hs,G,Ae,Me);if(Ws)return Le(Ws,p,G,Ae,Me)}var Te=function(f){var p=f.type;return p===D.Mobile},Ft=function(f){var p=f.type;return p===D.Tablet},Yt=function(f){var p=f.type;return p===D.Mobile||p===D.Tablet},gt=function(f){var p=f.type;return p===D.SmartTv},U=function(f){var p=f.type;return p===D.Browser},_=function(f){var p=f.type;return p===D.Wearable},J=function(f){var p=f.type;return p===D.Console},ee=function(f){var p=f.type;return p===D.Embedded},Z=function(f){var p=f.vendor;return Q(p)},j=function(f){var p=f.model;return Q(p)},q=function(f){var p=f.type;return Q(p,"browser")},ie=function(f){var p=f.name;return p===se.Android},ye=function(f){var p=f.name;return p===se.Windows},re=function(f){var p=f.name;return p===se.MAC_OS},X=function(f){var p=f.name;return p===se.WindowsPhone},N=function(f){var p=f.name;return p===se.IOS},R=function(f){var p=f.version;return Q(p)},$=function(f){var p=f.name;return Q(p)},V=function(f){var p=f.name;return p===z.Chrome},te=function(f){var p=f.name;return p===z.Firefox},be=function(f){var p=f.name;return p===z.Chromium},ae=function(f){var p=f.name;return p===z.Edge},L=function(f){var p=f.name;return p===z.Yandex},O=function(f){var p=f.name;return p===z.Safari||p===z.MobileSafari},W=function(f){var p=f.name;return p===z.MobileSafari},me=function(f){var p=f.name;return p===z.Opera},Ee=function(f){var p=f.name;return p===z.InternetExplorer||p===z.Ie},de=function(f){var p=f.name;return p===z.MIUI},Ie=function(f){var p=f.name;return p===z.SamsungBrowser},Fe=function(f){var p=f.version;return Q(p)},Ce=function(f){var p=f.major;return Q(p)},Oe=function(f){var p=f.name;return Q(p)},Ke=function(f){var p=f.name;return Q(p)},nt=function(f){var p=f.version;return Q(p)},dt=function(){var f=we(),p=f&&f.userAgent&&f.userAgent.toLowerCase();return typeof p=="string"?/electron/.test(p):!1},rt=function(f){return typeof f=="string"&&f.indexOf("Edg/")!==-1},Pt=function(){var f=we();return f&&(/iPad|iPhone|iPod/.test(f.platform)||f.platform==="MacIntel"&&f.maxTouchPoints>1)&&!window.MSStream},Ze=function(){return Se("iPad")},rn=function(){return Se("iPhone")},Jt=function(){return Se("iPod")},Re=function(f){return Q(f)};function kn(x){var f=x||E,p=f.device,P=f.browser,G=f.os,Ae=f.engine,Me=f.ua;return{isSmartTV:gt(p),isConsole:J(p),isWearable:_(p),isEmbedded:ee(p),isMobileSafari:W(P)||Ze(),isChromium:be(P),isMobile:Yt(p)||Ze(),isMobileOnly:Te(p),isTablet:Ft(p)||Ze(),isBrowser:U(p),isDesktop:U(p),isAndroid:ie(G),isWinPhone:X(G),isIOS:N(G)||Ze(),isChrome:V(P),isFirefox:te(P),isSafari:O(P),isOpera:me(P),isIE:Ee(P),osVersion:R(G),osName:$(G),fullBrowserVersion:Fe(P),browserVersion:Ce(P),browserName:Oe(P),mobileVendor:Z(p),mobileModel:j(p),engineName:Ke(Ae),engineVersion:nt(Ae),getUA:Re(Me),isEdge:ae(P)||rt(Me),isYandex:L(P),deviceType:q(p),isIOS13:Pt(),isIPad13:Ze(),isIPhone13:rn(),isIPod13:Jt(),isElectron:dt(),isEdgeChromium:rt(Me),isLegacyEdge:ae(P)&&!rt(Me),isWindows:ye(G),isMacOs:re(G),isMIUI:de(P),isSamsungBrowser:Ie(P)}}var Tn=gt(i),Is=J(i),Cs=_(i),uc=ee(i),fc=W(a)||Ze(),pc=be(a),En=Yt(i)||Ze(),Bs=Te(i),Ns=Ft(i)||Ze(),Fs=U(i),mc=U(i),Ps=ie(T),Ds=X(T),Os=N(T)||Ze(),hc=V(a),gc=te(a),wc=O(a),bc=me(a),Us=Ee(a),yc=R(T),Ac=$(T),vc=Fe(a),kc=Ce(a),Tc=Oe(a),Ec=Z(i),Sc=j(i),xc=Ke(d),Ic=nt(d),Cc=Re(B),Bc=ae(a)||rt(B),Nc=L(a),Fc=q(i),Pc=Pt(),Dc=Ze(),Oc=rn(),Uc=Jt(),Rc=dt(),Mc=rt(B),Lc=ae(a)&&!rt(B),Hc=ye(T),Wc=re(T),Vc=de(a),Gc=Ie(a),Yc=function(f){if(!f||typeof f!="string"){console.error("No valid user agent string was provided");return}var p=h(f),P=p.device,G=p.browser,Ae=p.os,Me=p.engine,qe=p.ua;return kn({device:P,browser:G,os:Ae,engine:Me,ua:qe})},Jc=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Ps?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},zc=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Fs?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},jc=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Us?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},qc=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Os?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},Qc=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return En?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},Xc=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Ns?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},Kc=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Ds?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},Zc=function(f){var p=f.renderWithFragment,P=f.children;f.viewClassName,f.style;var G=c(f,["renderWithFragment","children","viewClassName","style"]);return Bs?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},_c=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Tn?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},$c=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Is?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},el=function(f){var p=f.renderWithFragment,P=f.children,G=c(f,["renderWithFragment","children"]);return Cs?p?n.createElement(t.Fragment,null,P):n.createElement("div",G,P):null},tl=function(f){var p=f.renderWithFragment,P=f.children;f.viewClassName,f.style;var G=f.condition,Ae=c(f,["renderWithFragment","children","viewClassName","style","condition"]);return G?p?n.createElement(t.Fragment,null,P):n.createElement("div",Ae,P):null};function nl(x){return(function(f){pe(p,f);function p(P){var G;return ve(this,p),G=w(this,Be(p).call(this,P)),G.isEventListenerAdded=!1,G.handleOrientationChange=G.handleOrientationChange.bind(g(G)),G.onOrientationChange=G.onOrientationChange.bind(g(G)),G.onPageLoad=G.onPageLoad.bind(g(G)),G.state={isLandscape:!1,isPortrait:!1},G}return Y(p,[{key:"handleOrientationChange",value:function(){this.isEventListenerAdded||(this.isEventListenerAdded=!0);var G=window.innerWidth>window.innerHeight?90:0;this.setState({isPortrait:G===0,isLandscape:G===90})}},{key:"onOrientationChange",value:function(){this.handleOrientationChange()}},{key:"onPageLoad",value:function(){this.handleOrientationChange()}},{key:"componentDidMount",value:function(){(typeof window>"u"?"undefined":M(window))!==void 0&&En&&(this.isEventListenerAdded?window.removeEventListener("load",this.onPageLoad,!1):(this.handleOrientationChange(),window.addEventListener("load",this.onPageLoad,!1)),window.addEventListener("resize",this.onOrientationChange,!1))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.onOrientationChange,!1)}},{key:"render",value:function(){return n.createElement(x,fe({},this.props,{isLandscape:this.state.isLandscape,isPortrait:this.state.isPortrait}))}}]),p})(n.Component)}function ol(){var x=t.useState(function(){var Ae=window.innerWidth>window.innerHeight?90:0;return{isPortrait:Ae===0,isLandscape:Ae===90,orientation:Ae===0?"portrait":"landscape"}}),f=b(x,2),p=f[0],P=f[1],G=t.useCallback(function(){var Ae=window.innerWidth>window.innerHeight?90:0,Me={isPortrait:Ae===0,isLandscape:Ae===90,orientation:Ae===0?"portrait":"landscape"};p.orientation!==Me.orientation&&P(Me)},[p.orientation]);return t.useEffect(function(){return(typeof window>"u"?"undefined":M(window))!==void 0&&En&&(G(),window.addEventListener("load",G,!1),window.addEventListener("resize",G,!1)),function(){window.removeEventListener("resize",G,!1),window.removeEventListener("load",G,!1)}},[G]),p}function Rs(x){var f=x||window.navigator.userAgent;return h(f)}function sl(x){var f=x||window.navigator.userAgent,p=Rs(f),P=kn(p);return[P,p]}return oe.AndroidView=Jc,oe.BrowserTypes=z,oe.BrowserView=zc,oe.ConsoleView=$c,oe.CustomView=tl,oe.IEView=jc,oe.IOSView=qc,oe.MobileOnlyView=Zc,oe.MobileView=Qc,oe.OsTypes=se,oe.SmartTVView=_c,oe.TabletView=Xc,oe.WearableView=el,oe.WinPhoneView=Kc,oe.browserName=Tc,oe.browserVersion=kc,oe.deviceDetect=De,oe.deviceType=Fc,oe.engineName=xc,oe.engineVersion=Ic,oe.fullBrowserVersion=vc,oe.getSelectorsByUserAgent=Yc,oe.getUA=Cc,oe.isAndroid=Ps,oe.isBrowser=Fs,oe.isChrome=hc,oe.isChromium=pc,oe.isConsole=Is,oe.isDesktop=mc,oe.isEdge=Bc,oe.isEdgeChromium=Mc,oe.isElectron=Rc,oe.isEmbedded=uc,oe.isFirefox=gc,oe.isIE=Us,oe.isIOS=Os,oe.isIOS13=Pc,oe.isIPad13=Dc,oe.isIPhone13=Oc,oe.isIPod13=Uc,oe.isLegacyEdge=Lc,oe.isMIUI=Vc,oe.isMacOs=Wc,oe.isMobile=En,oe.isMobileOnly=Bs,oe.isMobileSafari=fc,oe.isOpera=bc,oe.isSafari=wc,oe.isSamsungBrowser=Gc,oe.isSmartTV=Tn,oe.isTablet=Ns,oe.isWearable=Cs,oe.isWinPhone=Ds,oe.isWindows=Hc,oe.isYandex=Nc,oe.mobileModel=Sc,oe.mobileVendor=Ec,oe.osName=Ac,oe.osVersion=yc,oe.parseUserAgent=h,oe.setUserAgent=xe,oe.useDeviceData=Rs,oe.useDeviceSelectors=sl,oe.useMobileOrientation=ol,oe.withOrientationChange=nl,oe}var Gt=ic();function fo(e,t){if(!e)return e;const n=e.toLowerCase().trim();if(n==="max"||n==="all")return t||e;const o=n.match(/^(\d+(?:\.\d+)?)%$/);if(o){const s=parseFloat(o[1])/100;return((parseFloat(t)||0)*s).toFixed(8).replace(/\.?0+$/,"")||"0"}return e}const cc=({isOpen:e,onClose:t,onTransaction:n,position:o="bottom-right",modalChatStyle:s={}})=>{const{t:a,ti:r}=xn(),{messages:i,addMessage:d,updateMessageAction:T,updateMessageText:B}=Ni(),[H,h]=ne.useState(""),[E,m]=ne.useState(!1),[C,M]=ne.useState(!0),[ve,I]=ne.useState(null),Y=ne.useRef(null),K=ne.useRef(null),fe=ne.useRef(null),pe=ne.useRef(null),Be=ne.useRef(null),l=ne.useRef(!1),u=ne.useRef(C);ne.useEffect(()=>{u.current=C},[C]);const{account:c,chainData:g,chainType:w,chainTypeMoralis:b,chainId:A,isChainSupported:y}=eo(),{config:k}=Fi(),v=A&&k?.rpcUrls?.[A]||void 0,S=ne.useCallback(()=>{const U=Bt.getItem("dataBuyToken");if(U)try{return JSON.parse(U)}catch{return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}}return{srcTokenAddress:"",descTokenAddress:"",amount:"",srcTokenDecimals:18,descTokenDecimals:18}},[]),D=ne.useCallback(U=>{Bt.setItem("dataBuyToken",JSON.stringify(U))},[]),z=ne.useCallback(U=>{const J={...S(),...U};D(J)},[S,D]),se=ne.useCallback(U=>{I(U),Gt.isDesktop&&fe.current?.focus()},[]),he=ne.useCallback(async(U,_)=>{z({descTokenAddress:U,descTokenDecimals:_||18});try{m(!0);const J=await Qe({address:c?.address||"",chain:b});if(J?.success&&J?.data?.result){const ee=J.data.result;if(ee?.length>0){const Z=ee.map(j=>({id:j.token_address,text:`${j.name}: ${j.balance_formatted} ${j.symbol} ($${ce(j.usd_value||0)?.decimalPlaces(2).toFormat()||"0"})`,value:r("buttonBuyWith",{symbol:j.symbol}),action:"click_balance_item_user_to_buy_button",fullWidth:!0,extraData:{tokenAddress:j.token_address,symbol:j.symbol,balance:j.balance_formatted,usdValue:j.usd_value,decimals:j.decimals}}));d(r("walletBalanceSpendable",{chain:g?.name||"unknown"}),"bot",void 0,Z)}else d(r("walletNoTokensFound",{chain:g?.name||"unknown"}),"bot")}else d(a("walletFetchFailed"),"bot")}catch(J){console.error("Error fetching wallet balance:",J),d(a("walletFetchError"),"bot")}finally{m(!1)}},[z,c?.address,b,d,g?.name,a,r]),ke=ne.useCallback(async(U,_,J,ee)=>{const Z=[25,50,75,100];z({srcTokenAddress:U,srcTokenDecimals:ee||18});let j=J||"0";if(U===Ve)try{const ie=await uo({chainId:A,rpcUrl:v});if(ie.isGreaterThan(0)){const ye=ie.times(1e6),X=new ce(mt(J,ee||18).toString()).minus(ye);X.isGreaterThan(0)?j=ce(Ue(BigInt(X.toFixed(0)),18)).toFixed():j="0"}}catch(ie){console.warn("getGasPrice for swap native fee deduction failed:",ie)}const q=Z.map(ie=>({id:`percent-${ie}`,text:`${ie}%`,value:r("buttonUsePercent",{percent:String(ie),symbol:_}),action:"select_percent",extraData:{percent:ie,tokenAddress:U,tokenSymbol:_,tokenBalance:j}}));if(ce(j).isZero()){d(r("insufficientFeeToken",{symbol:_}),"bot");return}d(r("selectAmountOf",{symbol:_,balance:j}),"bot",void 0,q)},[d,A,v,z,r]),xe=ne.useCallback(async(U,_)=>{z({amount:(parseFloat(_)*(U/100)).toFixed(6)});const J=S(),ee=mt(J.amount,J.srcTokenDecimals||18).toString(),Z=await ro({chainId:A,tokenIn:J.srcTokenAddress,tokenInAmount:ee,tokenOut:J.descTokenAddress,tokenOutRecipient:c?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(Z.success&&Z.data){const j=Z.data,q=j.tokenIn,ie=j.tokenOut,ye=ce(Ue(BigInt(q.amount||0),q.decimals)).decimalPlaces(6).toFormat(),re=ce(Ue(BigInt(ie.amount||0),ie.decimals)).decimalPlaces(6).toFormat(),X=J.srcTokenAddress===Ve||J.srcTokenAddress==="";let N=!1;if(!X&&c?.address&&j.tx?.to)try{const O=await lo({tokenAddress:J.srcTokenAddress,ownerAddress:c.address,spenderAddress:j.tx.to,chainId:A,rpcUrl:v});N=ce(O.toString()).isLessThan(ee)}catch(O){console.warn("Allowance check failed:",O),N=!0}const R=j.estimatedTransactionFee?.total?ce(j.estimatedTransactionFee.total):ce(0);let $=ce(0);if(N&&c?.address)try{const O=An({tokenAddress:J.srcTokenAddress,spenderAddress:j.tx?.to||"",fromAddress:c.address,chainId:A});$=await sn({from:c.address,to:O.to,data:O.data,chainId:A,rpcUrl:v})}catch(O){console.warn("Approve fee estimation failed:",O)}const V=R.plus($),te=g?.nativeCurrency?.symbol||"native";let be="",ae=!1;if(c?.address&&V.isGreaterThan(0))try{const O=await vn({address:c.address,chainId:A,rpcUrl:v});if(O.isLessThan(V)){ae=!0;const W=ce(Ue(BigInt(O.toFixed(0)),18)).decimalPlaces(6).toFormat(),me=ce(Ue(BigInt(V.toFixed(0)),18)).decimalPlaces(6).toFormat();be=r("swapFeeWarning",{symbol:te,balance:W,needed:me})}}catch(O){console.warn("Fee balance check failed:",O)}const L=`From: ${ye} ${q.symbol}
|
|
401
401
|
⬇️
|
|
402
402
|
To: ${re} ${ie.symbol}
|
|
403
403
|
|
|
404
|
-
`+
|
|
405
|
-
`;if(ae)d(
|
|
406
|
-
[View on Explorer](${ie}/tx/${
|
|
407
|
-
Tx: ${
|
|
408
|
-
Error: ${
|
|
409
|
-
Error: ${re.error}`:"";d(a("approvalFailed")+
|
|
410
|
-
$${ce(
|
|
404
|
+
`+be+`
|
|
405
|
+
`;if(ae)d(L,"bot");else if(N){const O=L+r("swapNeedApprove",{symbol:q.symbol}),W=[{id:"approve-for-swap",text:r("swapApproveButton",{symbol:q.symbol}),value:r("swapApproveValue",{symbol:q.symbol}),action:"approve_for_swap",fullWidth:!0,extraData:{tokenAddress:J.srcTokenAddress,spenderAddress:j.tx.to,tokenSymbol:q.symbol,tx:j.tx}}];d(O,"bot",void 0,W)}else{const O=[{id:"confirm-swap",text:a("swapConfirmButton"),value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:j.tx}}];d(L+a("swapReadyToProceed"),"bot",void 0,O)}}else d(r("swapEstimationError",{error:Z.errorMessage||Z.error||"Unknown error"}),"bot")},[S,z,d,A,c?.address,g?.nativeCurrency?.symbol,v,a,r]),Q=ne.useCallback(async(U,_,J)=>{try{if(_==="suggested_action"){pe.current=U,h(U);return}if(d(U,"user"),M(!1),m(!0),_)switch(await ot(500),_){case"click_buy_item_token_button":await he(J?.tokenAddress||"",J?.decimals||18);break;case"click_balance_item_user_to_buy_button":await ke(J?.tokenAddress||"",J?.symbol||"",J?.balance||"",J?.decimals||18);break;case"select_percent":await xe(J?.percent||0,J?.tokenBalance||"");break;case"confirm_swap":if(J?.tx&&n){const ee=J.tx,Z={from:c?.address||"",to:ee.to,data:ee.data,value:ee.value,chainId:A},j=d(a("txProcessing"),"bot");try{m(!1);const q=await n(Z);if(q.status==="success"&&q.transactionHash){const ie=g?.blockExplorers?.default?.url,ye=ie?`
|
|
406
|
+
[View on Explorer](${ie}/tx/${q.transactionHash})`:`
|
|
407
|
+
Tx: ${q.transactionHash}`;B(j.id,a("txSubmitted")+ye);try{await ot(2e3),(await co({transactionHash:q.transactionHash,chainId:A||1,rpcUrl:v})).status==="success"?B(j.id,a("txConfirmedSwap")+ye):B(j.id,a("txRevertedSwap")+ye)}catch(re){console.warn("Transaction tracking timeout:",re),B(j.id,a("txTimeout")+ye)}}else if(q.status==="success")B(j.id,a("txSuccessfulSwap"));else{const ie=q.error?`
|
|
408
|
+
Error: ${q.error}`:"";B(j.id,a("txFailed")+ie)}}catch(q){console.error("Transaction error:",q),B(j.id,a("txFailed"))}}else d(a("txDataNotAvailable"),"bot");break;case"approve_for_swap":{const ee=J?.tokenAddress||"",Z=J?.spenderAddress||"",j=J?.tokenSymbol||"token",q=J?.tx;if(!ee||!Z||!n){d(a("approvalDataNotAvailable"),"bot");break}const ie=An({tokenAddress:ee,spenderAddress:Z,fromAddress:c?.address||"",chainId:A,tokenSymbol:j}),ye={from:ie.from,to:ie.to,data:ie.data,value:ie.value,chainId:ie.chainId};d(r("approving",{symbol:j}),"bot");try{m(!1);const re=await n(ye);let X=re.status==="success";if(re.status==="success"&&re.transactionHash)try{X=(await co({transactionHash:re.transactionHash,chainId:A||1,rpcUrl:v})).status==="success"}catch(N){console.warn("Approval tracking timeout:",N),X=!0}if(X){d(r("approvalSuccess",{symbol:j}),"bot");const N=[{id:"confirm-swap-after-approve",text:a("confirmSwapButton"),value:a("swapConfirmValue"),action:"confirm_swap",fullWidth:!0,extraData:{tx:q}}];d(a("approvalConfirmSwap"),"bot",void 0,N)}else{const N=re.error?`
|
|
409
|
+
Error: ${re.error}`:"";d(a("approvalFailed")+N,"bot")}}catch(re){console.error("Approval error:",re),d(a("approvalFailed"),"bot")}break}case"click_swap_dest_token":{const ee=J?.tokenAddress||"",Z=J?.symbol||"",j=J?.decimals||18;z({descTokenAddress:ee,descTokenDecimals:j});const ie=S().srcTokenAddress||"",ye=ie===Ve;try{const re=await Qe({address:c?.address||"",chain:b});if(re?.success&&re?.data?.result){const X=re.data.result;let N="",R="0";if(ye){const $=X.find(V=>V.native_token);N=g?.nativeCurrency?.symbol||"ETH",R=$?.balance_formatted||"0"}else{const $=X.find(V=>V.token_address.toLowerCase()===ie.toLowerCase());$&&(N=$.symbol,R=$.balance_formatted)}if(N&&parseFloat(R)>0){const V=[25,50,75,100].map(te=>({id:`percent-${te}`,text:`${te}%`,value:r("buttonUsePercent",{percent:String(te),symbol:N}),action:"select_percent",extraData:{percent:te,tokenAddress:ie,tokenSymbol:N,tokenBalance:R}}));d(r("swapSelectAmount",{from:N,to:Z,balance:R}),"bot",void 0,V)}else d(a("swapNoSourceToken"),"bot")}else d(a("couldNotFetchBalance"),"bot")}catch(re){console.error("Error in click_swap_dest_token:",re),d(a("couldNotLoadBalance"),"bot")}break}case"select_nft_to_send":{const ee=J?.name||"NFT",Z=J?.contractAddress||"",j=J?.tokenId||"",q=J?.tokenStandard||"ERC721",ie=J?.amount||"1",ye=J?.image||"",re={contract_address:Z,token_id:j,to_address:"",token_standard:q,amount:"1",maxAmount:ie,nft_name:ee};d(r("nftSendReview",{name:ee,standard:q,tokenId:j}),"bot",void 0,void 0,{action:"send_nft",parameters:re,status:"pending",nftInfo:{name:ee,image:ye||void 0,tokenId:j,contractAddress:Z,tokenStandard:q}});break}default:d(`Action "${_}" executed for: ${U}`,"bot")}else await ot(500),d(`Received: ${U}`,"bot");m(!1),Gt.isDesktop&&fe.current?.focus()}catch(ee){d(a("errorProcessingRequest"),"bot"),m(!1),console.error("Error handling button click:",ee)}},[c?.address,d,B,g?.blockExplorers?.default?.url,g?.nativeCurrency?.symbol,A,b,S,he,ke,n,xe,z,v,a,r]),we=ne.useCallback(async()=>{try{m(!0);const U=g?.tokenTrendingDefault||[],[_,J]=await Promise.allSettled([tt.getTopGainers(w,"24h",5),tt.getTokensDetails(U,w)]);let ee=[];_.status==="fulfilled"&&_.value?.data?ee=[..._.value.data]:console.warn("⚠️ Top gainers failed:"),J.status==="fulfilled"&&J.value?.data?ee=[...J.value.data,...ee]:console.warn("⚠️ Default tokens failed:"),ee=ee.filter((q,ie,ye)=>ie===ye.findIndex(re=>re.address.toLowerCase()===q.address.toLowerCase()));const Z=ee.map(q=>({id:q?.symbol,text:q?.symbol,value:r("buttonBuyToken",{name:q.name,symbol:q?.symbol||""}),action:"click_buy_item_token_button",extraData:{tokenAddress:q?.address||"",symbol:q?.symbol||"",decimals:q?.decimals||18}}));await ot(1e3),m(!1),d(r("trendingTokensHeader",{chain:g?.name||"Unknown"}),"bot");const j=ee.map((q,ie)=>`${ie+1}. ${q.name} (${q?.auditGoplus?.token_symbol||q.symbol||"Unknown"})
|
|
410
|
+
$${ce(q?.price||0).decimalPlaces(4).toFormat()} (${q.price_change_percentage_24h||q.priceChange}%)
|
|
411
411
|
|
|
412
412
|
---
|
|
413
413
|
`).join(`
|
|
414
|
-
`);d(`${
|
|
415
|
-
`:"🖼️ ";return`${
|
|
416
|
-
${
|
|
414
|
+
`);d(`${j}${a("trendingTokensQuestion")}`,"bot",void 0,Z)}catch(U){console.error("Error fetching trending tokens:",U),d(a("trendingTokensError"),"bot")}finally{m(!1)}},[d,g?.name,g?.tokenTrendingDefault,w,a,r]),Se=ne.useCallback(async()=>{try{m(!0);const U=await bn({address:c?.address||"",chain:b,limit:100,exclude_spam:!1});if(U?.success&&U?.data?.result&&U.data.result.length>0){const _=U.data.result,J=_.map(Z=>{const j=Z.normalized_metadata?.name||Z.name||`#${Z.token_id}`,q=Z.normalized_metadata?.image||Z.media?.original_media_url||"";return{id:`${Z.token_address}-${Z.token_id}`,text:`${j} (${Z.symbol||Z.contract_type}) - ${Z.token_id}`,value:r("buttonSendNft",{name:j}),action:"select_nft_to_send",fullWidth:!0,extraData:{contractAddress:Z.token_address,tokenId:Z.token_id,tokenStandard:Z.contract_type,name:j,symbol:Z.symbol,amount:Z.amount,image:q}}}),ee=_.map((Z,j)=>{const q=Z.normalized_metadata?.name||Z.name||`#${Z.token_id}`,ie=Z.contract_type==="ERC1155"?` (x${Z.amount})`:"",ye=Z.normalized_metadata?.image||Z.media?.original_media_url||"",re=ye?`
|
|
415
|
+
`:"🖼️ ";return`${j+1}. ${re}**${q}**${ie}
|
|
416
|
+
${Z.symbol||Z.contract_type} | Token ID: ${Z.token_id}`}).join(`
|
|
417
417
|
|
|
418
|
-
`);await ot(500),m(!1),d(r("nftCollectionHeader",{count:String(
|
|
419
|
-
Balance: ${
|
|
418
|
+
`);await ot(500),m(!1),d(r("nftCollectionHeader",{count:String(_.length),list:ee}),"bot",void 0,J)}else m(!1),d(a("nftNoCollection"),"bot")}catch(U){console.error("Error fetching NFTs:",U),m(!1),d(a("nftFetchError"),"bot")}},[c?.address,b,d,a,r]),Ye=ne.useCallback(async()=>{try{m(!0);const U=await Qe({address:c?.address||"",chain:b});if(U?.success&&U?.data?.result&&U.data.result.length>0){const _=U.data.result,J=_.flatMap(Z=>[{id:`send-${Z.token_address}`,text:r("buttonSendToken",{symbol:Z.symbol}),value:r("buttonSendToken",{symbol:Z.symbol}),action:"suggested_action",fullWidth:!!Gt.isMobile},{id:`buy-more-${Z.token_address}`,text:r("buttonBuyMoreToken",{symbol:Z.symbol}),value:r("buttonBuyMoreToken",{symbol:Z.symbol}),action:"suggested_action",fullWidth:!!Gt.isMobile}]),ee=_.map((Z,j)=>{const q=Z.usd_value!==void 0?` ≈ $${ce(Z.usd_value).decimalPlaces(2).toFormat()}`:"";return`${j+1}. **${Z.name}** (${Z.symbol})
|
|
419
|
+
Balance: ${Z.balance_formatted}${q}`}).join(`
|
|
420
420
|
|
|
421
|
-
`);await ot(500),m(!1),d(r("viewBalancesHeader",{chain:
|
|
421
|
+
`);await ot(500),m(!1),d(r("viewBalancesHeader",{chain:g?.name||"this chain",list:ee}),"bot",void 0,J)}else m(!1),d(a("viewBalancesEmpty"),"bot")}catch(U){console.error("Error fetching balances:",U),m(!1),d(a("viewBalancesFetchError"),"bot")}},[c?.address,b,d,g?.name,a,r]),at=ne.useMemo(()=>[{id:"ask",icon:"❓",text:a("suggestionAskText"),action:async()=>{M(!1),m(!0),d(a("suggestionAskUserMessage"),"user"),await ot(1e3),m(!1),d(a("suggestionAskBotReply"),"bot")}},{id:"buy",icon:"💰",text:a("suggestionBuyText"),action:async()=>{M(!1),d(a("suggestionBuyText"),"user"),He(c?.address||"")&&y?await we():(m(!0),await ot(1e3),He(c?.address||"")&&!y?d(a("walletConnectedChainUnsupported"),"bot"):d(a("walletNotConnected"),"bot"),m(!1))}}],[d,c?.address,we,a,y]),Xe=U=>{if(U===0)return!0;const _=i[U],J=i[U-1],ee=new Date(_.timestamp),Z=new Date(J.timestamp);return ee.setHours(0,0,0,0),Z.setHours(0,0,0,0),ee.getTime()!==Z.getTime()};ne.useEffect(()=>{Y.current?.scrollIntoView({behavior:"smooth"})},[i]),ne.useEffect(()=>{e?(fe.current&&Gt.isDesktop&&fe.current.focus(),Y.current?.scrollIntoView({behavior:"instant"}),l.current&&Be.current?Date.now()-Be.current>1e4&&M(!0):M(!0),Be.current=null,l.current=!1,setTimeout(()=>{Y.current?.scrollIntoView({behavior:"smooth"})},50)):(Be.current=Date.now(),l.current=!u.current)},[e]),ne.useEffect(()=>{const U=_=>{_.key==="Escape"&&e&&t()};return document.addEventListener("keydown",U),()=>document.removeEventListener("keydown",U)},[e,t]);const Pe=ne.useCallback(async()=>{if(H?.trim()===""||E)return;const U=ve,_=d(H?.trim(),"user",ve?.id);h(""),I(null),m(!0),M(!1),m(!0);try{let J,ee;if(c?.address&&y)try{const[re,X]=await Promise.allSettled([Qe({address:c.address,chain:b}),bn({address:c.address,chain:b,limit:100,exclude_spam:!0})]);re.status==="fulfilled"&&re.value?.success&&re.value?.data?.result&&(J=re.value.data.result.map(N=>({symbol:N.symbol,name:N.name,balance_formatted:N.balance_formatted,usd_value:N.usd_value,native_token:N.native_token,token_address:N.token_address}))),X.status==="fulfilled"&&X.value?.success&&X.value?.data?.result&&(ee=X.value.data.result.map(N=>({name:N.normalized_metadata?.name||N.name||`#${N.token_id}`,token_address:N.token_address,token_id:N.token_id,contract_type:N.contract_type||"",amount:N.amount||"1"})))}catch{}const Z=Qi({walletAddress:c?.address||void 0,chainName:g?.name||void 0,chainId:A||void 0,nativeSymbol:g?.nativeCurrency?.symbol||void 0,walletTokens:J,walletNfts:ee}),j=i.slice(-20);let q="";if(j.length>0){q=`
|
|
422
422
|
|
|
423
423
|
## CONVERSATION HISTORY:
|
|
424
|
-
`;for(const re of
|
|
425
|
-
`;else{const
|
|
426
|
-
`}
|
|
424
|
+
`;for(const re of j)if(re.sender==="user")q+=`User: ${re.text}
|
|
425
|
+
`;else{const X=re.text.length>400?re.text.substring(0,400)+"...":re.text;q+=`Assistant: ${X}
|
|
426
|
+
`}q+=`
|
|
427
427
|
---
|
|
428
|
-
`}let ie=
|
|
428
|
+
`}let ie=H?.trim();U&&(ie=`[Replying to ${U.sender==="user"?"my previous":"your"} message: "${U.text}"]
|
|
429
429
|
|
|
430
|
-
${ie}`);const ye=await
|
|
430
|
+
${ie}`);const ye=await Ri({prompt:ie,model:"gpt-4.1-mini",stream:!1,systemPrompt:Z+q});if(ye.success&&ye.data){const re=ye.data.text||"";let X=null;try{let N=re?.trim();N.startsWith("```json")?N=N.replace(/^```json\s*/,"").replace(/\s*```$/,""):N.startsWith("```")&&(N=N.replace(/^```\s*/,"").replace(/\s*```$/,"")),X=JSON.parse(N)}catch{X=null}if(X&&X.action&&X.action!=="chat")if(X.action==="buy_token"){const N=X.parameters?.token_symbol||"";let R=X.parameters?.contract_address||"",$=18;if(R.toLowerCase()==="native"&&(R=Ve),R&&R!==Ve)try{const V=await tt.getTokensDetails([R],w);V?.data?.[0]&&($=V.data[0].decimals||18)}catch(V){console.warn("getTokensDetails for buy_token failed:",V)}if(!R&&N&&c?.address)try{const V=await Qe({address:c.address,chain:b});if(V?.success&&V?.data?.result){const te=V.data.result,be=te.find(ae=>ae.token_address.toLowerCase()===R.toLowerCase())||te.find(ae=>ae.symbol.toUpperCase()===N.toUpperCase());be&&(R=be.token_address,$=be.decimals)}if(!R){const te=g.tokenTrendingDefault||[],[be,ae]=await Promise.allSettled([tt.getTopGainers(w,"24h",10),tt.getTokensDetails(te,w)]),L=[];be.status==="fulfilled"&&be.value?.data&&L.push(...be.value.data),ae.status==="fulfilled"&&ae.value?.data&&L.push(...ae.value.data);const O=L.find(W=>W.address?.toLowerCase()===R.toLowerCase())||L.find(W=>W.symbol?.toUpperCase()===N.toUpperCase());O&&(R=O.address,$=O.decimals||18)}}catch(V){console.warn("Token lookup for buy failed:",V)}R?(d(X.message||`🛒 I'll help you buy ${N}. Let me show your available tokens to trade with.`,"bot",_.id),await he(R,$)):(d(X.message||`I couldn't find the token "${N}" on this chain. Here are the trending tokens you can buy:`,"bot",_.id),await we())}else if(X.action==="swap_token"){const N={...X.parameters||{}},R=N.token_in==="native"||N.token_in_symbol?.toUpperCase()===g?.nativeCurrency?.symbol?.toUpperCase(),$=N.token_out==="native"||N.token_out_symbol?.toUpperCase()===g?.nativeCurrency?.symbol?.toUpperCase();if($&&(N.token_out=Ve),!R&&(N.token_in||N.token_in_symbol)&&c?.address)try{const ae=await Qe({address:c.address,chain:b});if(ae?.success&&ae?.data?.result){const L=ae.data.result,O=N.token_in?L.find(W=>W.token_address.toLowerCase()===N.token_in.toLowerCase()):L.find(W=>W.symbol.toUpperCase()===N.token_in_symbol.toUpperCase());O&&(N.token_in=O.token_address,N.token_in_decimals=String(O.decimals))}}catch(ae){console.warn("Resolve token_in failed:",ae)}if(!$&&(N.token_out||N.token_out_symbol)&&c?.address)try{const ae=await Qe({address:c.address,chain:b});if(ae?.success&&ae?.data?.result){const L=ae.data.result,O=N.token_out?L.find(W=>W.token_address.toLowerCase()===N.token_out.toLowerCase()):L.find(W=>W.symbol.toUpperCase()===N.token_out_symbol.toUpperCase());O&&(N.token_out=O.token_address,N.token_out_decimals=String(O.decimals))}}catch(ae){console.warn("Resolve token_out failed:",ae)}const V=!!(N.token_in||R),te=!!N.token_out,be=!!N.amount;if(V&&te&&be){d(X.message||"🔄 Preparing your swap...","bot",_.id);try{const ae=[];N.token_out&&ae.push(N.token_out),N.token_in&&!R&&ae.push(N.token_in);let L=18,O=18;if(ae.length>0)try{const de=await tt.getTokensDetails(ae,w);if(de?.data)for(const Ie of de.data)!R&&Ie.address.toLowerCase()===N.token_in?.toLowerCase()&&(L=Ie.decimals||18),Ie.address.toLowerCase()===N.token_out?.toLowerCase()&&(O=Ie.decimals||18)}catch(de){console.warn("getTokensDetails failed, using default decimals:",de)}if(c?.address)try{const de=await Qe({address:c.address,chain:b});if(de?.success&&de?.data?.result){const Ie=de.data.result;if(R){const Fe=Ie.find(nt=>nt.native_token);let Ce=Fe?.balance_formatted||"0";try{const nt=await uo({chainId:A,rpcUrl:v});if(nt.isGreaterThan(0)){const dt=nt.times(1e6),Pt=new ce(Fe?.balance||"0").minus(dt);Pt.isGreaterThan(0)?Ce=ce(Ue(BigInt(Pt.toFixed(0)),Fe?.decimals||18)).toFixed():Ce="0"}}catch(nt){console.warn("getGasPrice for swap native fee deduction failed:",nt)}N.amount=fo(N.amount,Ce);const Oe=parseFloat(Ce),Ke=parseFloat(N.amount);if(Oe<Ke){d(r("swapInsufficientNativeBalance",{balance:Oe.toFixed(6),symbol:g?.nativeCurrency?.symbol||"native",amount:N.amount}),"bot"),m(!1);return}}else{const Fe=Ie.find(Ke=>Ke.token_address.toLowerCase()===N.token_in?.toLowerCase());if(!Fe){d(r("swapTokenNotInWallet",{symbol:N.token_in_symbol||N.token_in}),"bot"),m(!1);return}N.amount=fo(N.amount,Fe.balance_formatted||"0");const Ce=parseFloat(Fe.balance_formatted||"0"),Oe=parseFloat(N.amount);if(Ce<Oe){d(r("swapInsufficientTokenBalance",{balance:Ce.toFixed(6),symbol:Fe.symbol,amount:N.amount}),"bot"),m(!1);return}}}}catch(de){console.warn("Balance check failed:",de)}const W=R?Ve:N.token_in;z({srcTokenAddress:W,descTokenAddress:N.token_out,amount:N.amount,srcTokenDecimals:L,descTokenDecimals:O});const me=mt(N.amount,L).toString(),Ee=await ro({chainId:A,tokenIn:W,tokenInAmount:me,tokenOut:N.token_out,tokenOutRecipient:c?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(Ee.success&&Ee.data){const de=Ee.data,Ie=de.tokenIn,Fe=de.tokenOut,Ce=ce(Ue(BigInt(Ie.amount||0),Ie.decimals)).decimalPlaces(6).toFormat(),Oe=ce(Ue(BigInt(Fe.amount||0),Fe.decimals)).decimalPlaces(6).toFormat();let Ke=!1;if(!R&&c?.address&&de.tx?.to)try{const Re=await lo({tokenAddress:W,ownerAddress:c.address,spenderAddress:de.tx.to,chainId:A,rpcUrl:v});Ke=ce(Re.toString()).isLessThan(me)}catch(Re){console.warn("Allowance check failed (CASE 1):",Re),Ke=!0}const nt=de.estimatedTransactionFee?.total?ce(de.estimatedTransactionFee.total):ce(0);let dt=ce(0);if(Ke&&c?.address)try{const Re=An({tokenAddress:W,spenderAddress:de.tx?.to||"",fromAddress:c.address,chainId:A});dt=await sn({from:c.address,to:Re.to,data:Re.data,chainId:A,rpcUrl:v})}catch(Re){console.warn("Approve fee estimation failed:",Re)}const rt=nt.plus(dt),Pt=g?.nativeCurrency?.symbol||"native";let Ze="",rn=!1;if(c?.address&&rt.isGreaterThan(0))try{const Re=await vn({address:c.address,chainId:A,rpcUrl:v});if(Re.isLessThan(rt)){rn=!0;const kn=ce(Ue(BigInt(Re.toFixed(0)),18)).decimalPlaces(6).toFormat(),Tn=ce(Ue(BigInt(rt.toFixed(0)),18)).decimalPlaces(6).toFormat();Ze=r("swapFeeWarning",{symbol:Pt,balance:kn,needed:Tn})}}catch(Re){console.warn("Fee balance check failed:",Re)}const Jt=`From: ${Ce} ${Ie.symbol}
|
|
431
431
|
⬇️
|
|
432
|
-
To: ${
|
|
432
|
+
To: ${Oe} ${Fe.symbol}
|
|
433
433
|
|
|
434
|
-
`+
|
|
435
|
-
`;if(rn)d(Gt,"bot");else if(Xe){const Ue=[{id:"approve-for-swap",text:r("swapApproveButton",{symbol:Ne.symbol}),value:r("swapApproveValue",{symbol:Ne.symbol}),action:"approve_for_swap",fullWidth:!0,extraData:{tokenAddress:$,spenderAddress:de.tx.to,tokenSymbol:Ne.symbol,tx:de.tx}}];d(Gt+r("swapNeedApprove",{symbol:Ne.symbol}),"bot",void 0,Ue)}else{const Ue=[{id:"confirm-swap",text:"Yes",value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:de.tx}}];d(Gt+a("swapReadyToProceed"),"bot",void 0,Ue)}}else d(r("swapEstimationError",{error:xe.errorMessage||xe.error||"Unknown error"}),"bot")}catch(ae){console.error("Swap estimation error:",ae),d(a("swapEstimationFailed"),"bot")}}else if(H&&te&&!we){let ae=U?18:parseInt(I.token_in_decimals||"18",10),M=parseInt(I.token_out_decimals||"18",10);const _=[];if(I.token_out&&_.push(I.token_out),I.token_in&&!U&&_.push(I.token_in),_.length>0)try{const $=await tt.getTokensDetails(_,g);if($?.data)for(const me of $.data)!U&&me.address.toLowerCase()===I.token_in?.toLowerCase()&&(ae=me.decimals||ae),me.address.toLowerCase()===I.token_out?.toLowerCase()&&(M=me.decimals||M)}catch($){console.warn("getTokensDetails failed in CASE 2, using fallback decimals:",$)}if(z({descTokenAddress:I.token_out,descTokenDecimals:M}),U)try{const $=await je({address:c?.address||"",chain:w});if($?.success&&$?.data?.result){const xe=$.data.result.find(_e=>_e.native_token),de=b?.nativeCurrency?.symbol||"ETH";let Ne=xe?.balance_formatted||"0";try{const _e=await uo({chainId:v,rpcUrl:k});if(_e.isGreaterThan(0)){const Xe=_e.times(1e6),dt=new ce(xe?.balance||"0").minus(Xe);dt.isGreaterThan(0)?Ne=ce(Oe(BigInt(dt.toFixed(0)),xe?.decimals||18)).toFixed():Ne="0"}}catch(_e){console.warn("getGasPrice for swap native fee deduction (CASE 2) failed:",_e)}z({srcTokenAddress:He,srcTokenDecimals:ae});const Ce=[25,50,75,100].map(_e=>({id:`percent-${_e}`,text:`${_e}%`,value:r("buttonUsePercent",{percent:String(_e),symbol:de}),action:"select_percent",extraData:{percent:_e,tokenAddress:He,tokenSymbol:de,tokenBalance:Ne}}));d(r("selectAmountToSwap",{symbol:de,balance:Ne}),"bot",Z.id,Ce)}else d(a("couldNotFetchBalance"),"bot")}catch($){console.warn("Native balance fetch failed:",$),d(a("couldNotFetchBalanceRetry"),"bot")}else{const $=I.token_in_symbol||"Token";z({srcTokenAddress:I.token_in,srcTokenDecimals:ae});try{const me=await je({address:c?.address||"",chain:w});if(me?.success&&me?.data?.result){const de=me.data.result.find(Ce=>Ce.token_address.toLowerCase()===I.token_in?.toLowerCase());if(!de){d(r("swapTokenNotInWallet",{symbol:$}),"bot"),m(!1);return}const Pe=[25,50,75,100].map(Ce=>({id:`percent-${Ce}`,text:`${Ce}%`,value:r("buttonUsePercent",{percent:String(Ce),symbol:de.symbol}),action:"select_percent",extraData:{percent:Ce,tokenAddress:de.token_address,tokenSymbol:de.symbol,tokenBalance:de.balance_formatted}}));d(r("selectAmountToSwap",{symbol:de.symbol,balance:`${de.balance_formatted} (~$${de.usd_value?.toFixed(2)||"0"})`}),"bot",Z.id,Pe)}else d(a("couldNotFetchBalance"),"bot")}catch(me){console.warn("Token balance fetch failed:",me),d(a("couldNotFetchBalanceRetry"),"bot")}}}else if(!H&&te){d(J.message||"🔄 Please choose which token you want to swap from:","bot",Z.id);let ae=parseInt(I.token_out_decimals||"18",10);if(I.token_out)try{const M=await tt.getTokensDetails([I.token_out],g);M?.data?.[0]&&(ae=M.data[0].decimals||ae)}catch(M){console.warn("getTokensDetails failed in CASE 3, using fallback:",M)}await he(I.token_out,ae)}else if(H&&!te){let ae=U?18:parseInt(I.token_in_decimals||"18",10);if(I.token_in&&!U)try{const M=await tt.getTokensDetails([I.token_in],g);M?.data?.[0]&&(ae=M.data[0].decimals||ae)}catch(M){console.warn("getTokensDetails failed in CASE 4, using fallback:",M)}z(U?{srcTokenAddress:He,srcTokenDecimals:18}:{srcTokenAddress:I.token_in,srcTokenDecimals:ae}),d(J.message||`🔄 You want to swap ${I.token_in_symbol||"your token"}. Please choose which token you want to receive:`,"bot",Z.id);try{m(!0);const M=b?.tokenTrendingDefault||[],[_,$]=await Promise.allSettled([tt.getTopGainers(g,"24h",5),tt.getTokensDetails(M,g)]);let me=[];_.status==="fulfilled"&&_.value?.data&&(me=[..._.value.data]),$.status==="fulfilled"&&$.value?.data&&(me=[...$.value.data,...me]),me=me.filter((de,Ne,Pe)=>Ne===Pe.findIndex(Ce=>Ce.address.toLowerCase()===de.address.toLowerCase()));const xe=me.map(de=>({id:de?.symbol,text:de?.symbol,value:r("buttonSwapTo",{name:de.name,symbol:de?.symbol||""}),action:"click_swap_dest_token",extraData:{tokenAddress:de?.address||"",symbol:de?.symbol||"",decimals:de?.decimals||18}}));d(r("trendingTokensForReceive",{chain:b?.name||"Unknown"}),"bot",void 0,xe)}catch(M){console.error("Error fetching trending tokens for swap:",M),d(a("couldNotLoadTokenList"),"bot")}finally{m(!1)}}else d(J.message||'🔄 I need more details for your swap. Please specify which tokens you want to swap (e.g. "Swap 1 ETH to USDC").',"bot",Z.id)}else if(J.action==="view_balances")d(J.message||a("viewBalancesLoading"),"bot",Z.id),await Ve();else if(J.action==="view_nfts")d(J.message||"🖼️ Let me show you your NFT collection!","bot",Z.id),await Ee();else if(J.action==="send_token"&&!J.parameters?.contract_address&&!J.parameters?.token_symbol&&c?.address){d("💰 Which token would you like to send?","bot",Z.id);try{m(!0);const I=await je({address:c.address,chain:w});if(I?.success&&I?.data?.result&&I.data.result.length>0){const Q=I.data.result.map(H=>({id:`send-select-${H.token_address}`,text:`Send ${H.name} (${H.symbol})`,value:`Send ${H.name} (${H.symbol})`,action:"suggested_action",fullWidth:!0}));await ot(500),m(!1),d(r("walletBalanceSpendable",{chain:b?.name||"this chain"}),"bot",void 0,Q)}else m(!1),d(r("walletNoTokensFound",{chain:b?.name||"this chain"}),"bot")}catch(I){console.warn("Failed to fetch balance for send_token picker:",I),m(!1),d(a("walletFetchError"),"bot")}}else if(J.action==="send_nft"&&!J.parameters?.contract_address&&!J.parameters?.token_id&&!J.parameters?.nft_name&&c?.address)d("Which NFT would you like to send?","bot",Z.id),await Ee();else if(J.action==="send_nft"&&!Re(J.parameters?.contract_address||"")&&(J.parameters?.nft_name||J.parameters?.token_id)&&c?.address)try{m(!0);const I=await wn({address:c.address,chain:w,limit:100,exclude_spam:!1});if(I?.success&&I?.data?.result){const U=I.data.result,Q=(J.parameters?.nft_name||"").toLowerCase(),H=J.parameters?.token_id||"",te=U.find(we=>{const ae=(we.normalized_metadata?.name||we.name||"").toLowerCase(),M=(we.name||"").toLowerCase(),_=Q&&(ae.includes(Q)||M.includes(Q)),$=H&&we.token_id===H;return Q&&H?_&&$:Q?_:$});if(te){const we=te.normalized_metadata?.name||te.name||`#${te.token_id}`,ae=te.normalized_metadata?.image||te.media?.original_media_url||"",M={contract_address:te.token_address,token_id:te.token_id,to_address:J.parameters?.to_address||"",token_standard:te.contract_type||"",amount:"1",maxAmount:te.amount||"1",nft_name:we};d(J.message||r("nftSendReview",{name:we,standard:te.contract_type||"NFT",tokenId:te.token_id}),"bot",Z.id,void 0,{action:"send_nft",parameters:M,status:"pending",nftInfo:{name:we,image:ae||void 0,tokenId:te.token_id,contractAddress:te.token_address,tokenStandard:te.contract_type||void 0}})}else d(J.message||r("nftNotFoundInWallet",{name:Q||H}),"bot",Z.id),await Ee()}else d(a("nftNoCollection"),"bot",Z.id)}catch(I){console.error("NFT lookup by name failed:",I),d(a("nftFetchError"),"bot",Z.id)}finally{m(!1)}else{const I=oc(J.action);let U={...J.parameters||{}},Q,H;const te=["send_token","approve_token"].includes(J.action)&&(U.contract_address||U.token_symbol),we=J.action==="send_native",ae=J.action==="send_nft"&&U.contract_address;if(te&&c?.address)try{const M=await je({address:c.address,chain:w});if(M?.success&&M?.data?.result){const _=M.data.result,$=U.contract_address?_.find(me=>me.token_address.toLowerCase()===U.contract_address.toLowerCase()):_.find(me=>me.symbol.toUpperCase()===U.token_symbol.toUpperCase());$&&(U={...U,contract_address:$.token_address,decimals:String($.decimals)},Q={symbol:$.symbol,name:$.name,balance:$.balance,balanceFormatted:$.balance_formatted,usdValue:$.usd_value,usdPrice:$.usd_price,decimals:$.decimals,logo:$.logo||$.thumbnail,contractAddress:$.token_address})}}catch(M){console.warn("Token enrichment failed:",M)}if(te&&!Q&&U.contract_address)try{const M=await As({address:U.contract_address,chain:w});if(M?.success&&M?.data){const _=M.data;Q={symbol:_.symbol,name:_.name,balance:"0",balanceFormatted:"0",usdPrice:_.usd_price,decimals:_.decimals,logo:_.logo,contractAddress:U.contract_address},U={...U,decimals:String(_.decimals)}}}catch(M){console.warn("Token metadata fallback failed:",M)}if(we&&c?.address)try{const M=await je({address:c.address,chain:w});if(M?.success&&M?.data?.result){const $=M.data.result.find(me=>me.native_token);if($){let me=$.balance_formatted,xe=$.balance;try{const de=new ce($.balance),Ne="0x"+BigInt(de.toFixed(0)).toString(16),Pe=await sn({from:c.address,to:c.address,data:"0x",value:Ne,chainId:v,rpcUrl:k});if(Pe.isGreaterThan(0)){const Ce=de.minus(Pe);Ce.isGreaterThan(0)?(xe=Ce.toFixed(0),me=ce(Oe(BigInt(Ce.toFixed(0)),$.decimals)).toFixed()):(xe="0",me="0")}}catch(de){console.warn("Estimate send fee for send_native failed:",de)}Q={symbol:$.symbol,name:$.name,balance:xe,balanceFormatted:me,usdValue:$.usd_value,usdPrice:$.usd_price,decimals:$.decimals,logo:$.logo||$.thumbnail,contractAddress:He}}else{const me=await As({address:He,chain:w});if(me?.success&&me?.data){const xe=me.data;Q={symbol:xe.symbol,name:xe.name,balance:"0",balanceFormatted:"0",usdValue:0,usdPrice:xe.usd_price,decimals:xe.decimals,logo:xe.logo||xe.thumbnail,contractAddress:He}}}}}catch(M){console.warn("Native token balance fetch failed:",M)}if(ae){try{const M=await Li({address:U.contract_address,chain:w});if(M?.success&&M?.data){const _=M.data;_.contract_type&&(U={...U,token_standard:_.contract_type}),!U.nft_name&&_.name&&(U={...U,nft_name:_.name})}}catch(M){console.warn("NFT contract metadata fetch failed:",M)}if(c?.address)try{const M=await wn({address:c.address,chain:w,limit:100,exclude_spam:!1});if(M?.success&&M?.data?.result){const _=M.data.result.find($=>$.token_address.toLowerCase()===U.contract_address.toLowerCase()&&$.token_id===U.token_id);if(_){U={...U,amount:"1",maxAmount:_.amount||"1"};const $=_.normalized_metadata?.image||_.media?.original_media_url||"";H={name:_.normalized_metadata?.name||_.name||U.nft_name||`#${_.token_id}`,image:$||void 0,tokenId:_.token_id,contractAddress:_.token_address,tokenStandard:_.contract_type||U.token_standard||void 0}}}}catch(M){console.warn("NFT ownership lookup failed:",M)}}if(U.amount&&Q?.balanceFormatted&&(J.action==="send_token"||J.action==="send_native")&&(U.amount=fo(U.amount,Q.balanceFormatted)),I){const M=J.message||"Please review and complete the form below.";d(M,"bot",Z.id,void 0,{action:J.action,parameters:U,status:"pending",tokenInfo:Q,nftInfo:H})}else d(J.message||re,"bot",Z.id)}else if(J&&J.action==="chat"){const I=J.token_mentions||[],U=J.suggested_actions||[],Q=[];I.length>0&&I.forEach(H=>{Q.push({id:`buy-${H.symbol}`,text:`💰 Buy ${H.symbol}`,value:r("buttonBuySymbol",{symbol:H.symbol}),action:"click_buy_item_token_button",extraData:{tokenAddress:H.contract_address||"",symbol:H.symbol,decimals:H.decimals||18},fullWidth:!0})}),U.length>0&&U.forEach((H,te)=>{Q.push({id:`suggested-${te}-${H.label}`,text:H.label,value:H.prompt,action:"suggested_action",fullWidth:!0})}),Q.length>0?d(J.message||re,"bot",Z.id,Q):d(J.message||re,"bot",Z.id)}else d(re,"bot",Z.id)}else d(a("errorProcessingRequest"),"bot",Z.id)}catch(G){console.error("Error getting AI response:",G),d(a("errorProcessingRequest"),"bot",Z.id)}m(!1),await ot(50),Wt.isDesktop&&fe.current?.focus()},[R,x,i,d,ke,c?.address,b?.name,b?.nativeCurrency?.symbol,b?.tokenTrendingDefault,v,g,w,y,he,ge,Ee,Ve,z,k,a,r]);ne.useEffect(()=>{pe.current&&R===pe.current&&(pe.current=null,Fe())},[R,Fe]);const qe=ne.useCallback(async(O,Z,G)=>{try{if(T(G,"submitted"),O==="swap_token"){let ee=18;if(Z.token_in&&Z.token_in!==He)try{const Y=await tt.getTokensDetails([Z.token_in],g);Y?.data?.[0]&&(ee=Y.data[0].decimals||18)}catch(Y){console.warn("getTokensDetails failed in ActionForm swap, using default 18:",Y)}const K=mt(Z.amount||"0",ee).toString(),q=await ro({chainId:v,tokenIn:Z.token_in||"",tokenInAmount:K,tokenOut:Z.token_out||"",tokenOutRecipient:c?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(q.success&&q.data){const Y=q.data,ie=Y.tokenIn,ye=Y.tokenOut,re=ce(Oe(BigInt(ie.amount||0),ie.decimals)).decimalPlaces(6).toFormat(),J=ce(Oe(BigInt(ye.amount||0),ye.decimals)).decimalPlaces(6).toFormat(),I=!Z.token_in||Z.token_in===He;let U=!1;if(!I&&c?.address&&Y.tx?.to)try{const $=await lo({tokenAddress:Z.token_in,ownerAddress:c.address,spenderAddress:Y.tx.to,chainId:v,rpcUrl:k});U=ce($.toString()).isLessThan(K)}catch($){console.warn("Allowance check failed in ActionForm swap:",$)}const Q=Y.estimatedTransactionFee?.total?ce(Y.estimatedTransactionFee.total):ce(0);let H=ce(0);if(U&&c?.address)try{const $=vn({tokenAddress:Z.token_in,spenderAddress:Y.tx?.to||"",fromAddress:c.address,chainId:v});H=await sn({from:c.address,to:$.to,data:$.data,chainId:v,rpcUrl:k})}catch($){console.warn("Approve fee estimation failed:",$)}const te=Q.plus(H),we=b?.nativeCurrency?.symbol||"native";let ae="",M=!1;if(c?.address&&te.isGreaterThan(0))try{const $=await kn({address:c.address,chainId:v,rpcUrl:k});if($.isLessThan(te)){M=!0;const me=ce(Oe(BigInt($.toFixed(0)),18)).decimalPlaces(6).toFormat(),xe=ce(Oe(BigInt(te.toFixed(0)),18)).decimalPlaces(6).toFormat();ae=r("swapFeeWarning",{symbol:we,balance:me,needed:xe})}}catch($){console.warn("Fee balance check failed:",$)}const _=`From: ${re} ${ie.symbol}
|
|
434
|
+
`+Ze+`
|
|
435
|
+
`;if(rn)d(Jt,"bot");else if(Ke){const Re=[{id:"approve-for-swap",text:r("swapApproveButton",{symbol:Ie.symbol}),value:r("swapApproveValue",{symbol:Ie.symbol}),action:"approve_for_swap",fullWidth:!0,extraData:{tokenAddress:W,spenderAddress:de.tx.to,tokenSymbol:Ie.symbol,tx:de.tx}}];d(Jt+r("swapNeedApprove",{symbol:Ie.symbol}),"bot",void 0,Re)}else{const Re=[{id:"confirm-swap",text:"Yes",value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:de.tx}}];d(Jt+a("swapReadyToProceed"),"bot",void 0,Re)}}else d(r("swapEstimationError",{error:Ee.errorMessage||Ee.error||"Unknown error"}),"bot")}catch(ae){console.error("Swap estimation error:",ae),d(a("swapEstimationFailed"),"bot")}}else if(V&&te&&!be){let ae=R?18:parseInt(N.token_in_decimals||"18",10),L=parseInt(N.token_out_decimals||"18",10);const O=[];if(N.token_out&&O.push(N.token_out),N.token_in&&!R&&O.push(N.token_in),O.length>0)try{const W=await tt.getTokensDetails(O,w);if(W?.data)for(const me of W.data)!R&&me.address.toLowerCase()===N.token_in?.toLowerCase()&&(ae=me.decimals||ae),me.address.toLowerCase()===N.token_out?.toLowerCase()&&(L=me.decimals||L)}catch(W){console.warn("getTokensDetails failed in CASE 2, using fallback decimals:",W)}if(z({descTokenAddress:N.token_out,descTokenDecimals:L}),R)try{const W=await Qe({address:c?.address||"",chain:b});if(W?.success&&W?.data?.result){const Ee=W.data.result.find(Oe=>Oe.native_token),de=g?.nativeCurrency?.symbol||"ETH";let Ie=Ee?.balance_formatted||"0";try{const Oe=await uo({chainId:A,rpcUrl:v});if(Oe.isGreaterThan(0)){const Ke=Oe.times(1e6),dt=new ce(Ee?.balance||"0").minus(Ke);dt.isGreaterThan(0)?Ie=ce(Ue(BigInt(dt.toFixed(0)),Ee?.decimals||18)).toFixed():Ie="0"}}catch(Oe){console.warn("getGasPrice for swap native fee deduction (CASE 2) failed:",Oe)}z({srcTokenAddress:Ve,srcTokenDecimals:ae});const Ce=[25,50,75,100].map(Oe=>({id:`percent-${Oe}`,text:`${Oe}%`,value:r("buttonUsePercent",{percent:String(Oe),symbol:de}),action:"select_percent",extraData:{percent:Oe,tokenAddress:Ve,tokenSymbol:de,tokenBalance:Ie}}));d(r("selectAmountToSwap",{symbol:de,balance:Ie}),"bot",_.id,Ce)}else d(a("couldNotFetchBalance"),"bot")}catch(W){console.warn("Native balance fetch failed:",W),d(a("couldNotFetchBalanceRetry"),"bot")}else{const W=N.token_in_symbol||"Token";z({srcTokenAddress:N.token_in,srcTokenDecimals:ae});try{const me=await Qe({address:c?.address||"",chain:b});if(me?.success&&me?.data?.result){const de=me.data.result.find(Ce=>Ce.token_address.toLowerCase()===N.token_in?.toLowerCase());if(!de){d(r("swapTokenNotInWallet",{symbol:W}),"bot"),m(!1);return}const Fe=[25,50,75,100].map(Ce=>({id:`percent-${Ce}`,text:`${Ce}%`,value:r("buttonUsePercent",{percent:String(Ce),symbol:de.symbol}),action:"select_percent",extraData:{percent:Ce,tokenAddress:de.token_address,tokenSymbol:de.symbol,tokenBalance:de.balance_formatted}}));d(r("selectAmountToSwap",{symbol:de.symbol,balance:`${de.balance_formatted} (~$${de.usd_value?.toFixed(2)||"0"})`}),"bot",_.id,Fe)}else d(a("couldNotFetchBalance"),"bot")}catch(me){console.warn("Token balance fetch failed:",me),d(a("couldNotFetchBalanceRetry"),"bot")}}}else if(!V&&te){d(X.message||"🔄 Please choose which token you want to swap from:","bot",_.id);let ae=parseInt(N.token_out_decimals||"18",10);if(N.token_out)try{const L=await tt.getTokensDetails([N.token_out],w);L?.data?.[0]&&(ae=L.data[0].decimals||ae)}catch(L){console.warn("getTokensDetails failed in CASE 3, using fallback:",L)}await he(N.token_out,ae)}else if(V&&!te){let ae=R?18:parseInt(N.token_in_decimals||"18",10);if(N.token_in&&!R)try{const L=await tt.getTokensDetails([N.token_in],w);L?.data?.[0]&&(ae=L.data[0].decimals||ae)}catch(L){console.warn("getTokensDetails failed in CASE 4, using fallback:",L)}z(R?{srcTokenAddress:Ve,srcTokenDecimals:18}:{srcTokenAddress:N.token_in,srcTokenDecimals:ae}),d(X.message||`🔄 You want to swap ${N.token_in_symbol||"your token"}. Please choose which token you want to receive:`,"bot",_.id);try{m(!0);const L=g?.tokenTrendingDefault||[],[O,W]=await Promise.allSettled([tt.getTopGainers(w,"24h",5),tt.getTokensDetails(L,w)]);let me=[];O.status==="fulfilled"&&O.value?.data&&(me=[...O.value.data]),W.status==="fulfilled"&&W.value?.data&&(me=[...W.value.data,...me]),me=me.filter((de,Ie,Fe)=>Ie===Fe.findIndex(Ce=>Ce.address.toLowerCase()===de.address.toLowerCase()));const Ee=me.map(de=>({id:de?.symbol,text:de?.symbol,value:r("buttonSwapTo",{name:de.name,symbol:de?.symbol||""}),action:"click_swap_dest_token",extraData:{tokenAddress:de?.address||"",symbol:de?.symbol||"",decimals:de?.decimals||18}}));d(r("trendingTokensForReceive",{chain:g?.name||"Unknown"}),"bot",void 0,Ee)}catch(L){console.error("Error fetching trending tokens for swap:",L),d(a("couldNotLoadTokenList"),"bot")}finally{m(!1)}}else d(X.message||'🔄 I need more details for your swap. Please specify which tokens you want to swap (e.g. "Swap 1 ETH to USDC").',"bot",_.id)}else if(X.action==="view_balances")d(X.message||a("viewBalancesLoading"),"bot",_.id),await Ye();else if(X.action==="view_nfts")d(X.message||"🖼️ Let me show you your NFT collection!","bot",_.id),await Se();else if(X.action==="send_token"&&!X.parameters?.contract_address&&!X.parameters?.token_symbol&&c?.address){d("💰 Which token would you like to send?","bot",_.id);try{m(!0);const N=await Qe({address:c.address,chain:b});if(N?.success&&N?.data?.result&&N.data.result.length>0){const $=N.data.result.map(V=>({id:`send-select-${V.token_address}`,text:`Send ${V.name} (${V.symbol})`,value:`Send ${V.name} (${V.symbol})`,action:"suggested_action",fullWidth:!0}));await ot(500),m(!1),d(r("walletBalanceSpendable",{chain:g?.name||"this chain"}),"bot",void 0,$)}else m(!1),d(r("walletNoTokensFound",{chain:g?.name||"this chain"}),"bot")}catch(N){console.warn("Failed to fetch balance for send_token picker:",N),m(!1),d(a("walletFetchError"),"bot")}}else if(X.action==="send_nft"&&!X.parameters?.contract_address&&!X.parameters?.token_id&&!X.parameters?.nft_name&&c?.address)d("Which NFT would you like to send?","bot",_.id),await Se();else if(X.action==="send_nft"&&!He(X.parameters?.contract_address||"")&&(X.parameters?.nft_name||X.parameters?.token_id)&&c?.address)try{m(!0);const N=await bn({address:c.address,chain:b,limit:100,exclude_spam:!1});if(N?.success&&N?.data?.result){const R=N.data.result,$=(X.parameters?.nft_name||"").toLowerCase(),V=X.parameters?.token_id||"",te=R.find(be=>{const ae=(be.normalized_metadata?.name||be.name||"").toLowerCase(),L=(be.name||"").toLowerCase(),O=$&&(ae.includes($)||L.includes($)),W=V&&be.token_id===V;return $&&V?O&&W:$?O:W});if(te){const be=te.normalized_metadata?.name||te.name||`#${te.token_id}`,ae=te.normalized_metadata?.image||te.media?.original_media_url||"",L={contract_address:te.token_address,token_id:te.token_id,to_address:X.parameters?.to_address||"",token_standard:te.contract_type||"",amount:"1",maxAmount:te.amount||"1",nft_name:be};d(X.message||r("nftSendReview",{name:be,standard:te.contract_type||"NFT",tokenId:te.token_id}),"bot",_.id,void 0,{action:"send_nft",parameters:L,status:"pending",nftInfo:{name:be,image:ae||void 0,tokenId:te.token_id,contractAddress:te.token_address,tokenStandard:te.contract_type||void 0}})}else d(X.message||r("nftNotFoundInWallet",{name:$||V}),"bot",_.id),await Se()}else d(a("nftNoCollection"),"bot",_.id)}catch(N){console.error("NFT lookup by name failed:",N),d(a("nftFetchError"),"bot",_.id)}finally{m(!1)}else{const N=oc(X.action);let R={...X.parameters||{}},$,V;const te=["send_token","approve_token"].includes(X.action)&&(R.contract_address||R.token_symbol),be=X.action==="send_native",ae=X.action==="send_nft"&&R.contract_address;if(te&&c?.address)try{const L=await Qe({address:c.address,chain:b});if(L?.success&&L?.data?.result){const O=L.data.result,W=R.contract_address?O.find(me=>me.token_address.toLowerCase()===R.contract_address.toLowerCase()):O.find(me=>me.symbol.toUpperCase()===R.token_symbol.toUpperCase());W&&(R={...R,contract_address:W.token_address,decimals:String(W.decimals)},$={symbol:W.symbol,name:W.name,balance:W.balance,balanceFormatted:W.balance_formatted,usdValue:W.usd_value,usdPrice:W.usd_price,decimals:W.decimals,logo:W.logo||W.thumbnail,contractAddress:W.token_address})}}catch(L){console.warn("Token enrichment failed:",L)}if(te&&!$&&R.contract_address)try{const L=await ks({address:R.contract_address,chain:b});if(L?.success&&L?.data){const O=L.data;$={symbol:O.symbol,name:O.name,balance:"0",balanceFormatted:"0",usdPrice:O.usd_price,decimals:O.decimals,logo:O.logo,contractAddress:R.contract_address},R={...R,decimals:String(O.decimals)}}}catch(L){console.warn("Token metadata fallback failed:",L)}if(be&&c?.address)try{const L=await Qe({address:c.address,chain:b});if(L?.success&&L?.data?.result){const W=L.data.result.find(me=>me.native_token);if(W){let me=W.balance_formatted,Ee=W.balance;try{const de=new ce(W.balance),Ie="0x"+BigInt(de.toFixed(0)).toString(16),Fe=await sn({from:c.address,to:c.address,data:"0x",value:Ie,chainId:A,rpcUrl:v});if(Fe.isGreaterThan(0)){const Ce=de.minus(Fe);Ce.isGreaterThan(0)?(Ee=Ce.toFixed(0),me=ce(Ue(BigInt(Ce.toFixed(0)),W.decimals)).toFixed()):(Ee="0",me="0")}}catch(de){console.warn("Estimate send fee for send_native failed:",de)}$={symbol:W.symbol,name:W.name,balance:Ee,balanceFormatted:me,usdValue:W.usd_value,usdPrice:W.usd_price,decimals:W.decimals,logo:W.logo||W.thumbnail,contractAddress:Ve}}else{const me=await ks({address:Ve,chain:b});if(me?.success&&me?.data){const Ee=me.data;$={symbol:Ee.symbol,name:Ee.name,balance:"0",balanceFormatted:"0",usdValue:0,usdPrice:Ee.usd_price,decimals:Ee.decimals,logo:Ee.logo||Ee.thumbnail,contractAddress:Ve}}}}}catch(L){console.warn("Native token balance fetch failed:",L)}if(ae){try{const L=await Mi({address:R.contract_address,chain:b});if(L?.success&&L?.data){const O=L.data;O.contract_type&&(R={...R,token_standard:O.contract_type}),!R.nft_name&&O.name&&(R={...R,nft_name:O.name})}}catch(L){console.warn("NFT contract metadata fetch failed:",L)}if(c?.address)try{const L=await bn({address:c.address,chain:b,limit:100,exclude_spam:!1});if(L?.success&&L?.data?.result){const O=L.data.result.find(W=>W.token_address.toLowerCase()===R.contract_address.toLowerCase()&&W.token_id===R.token_id);if(O){R={...R,amount:"1",maxAmount:O.amount||"1"};const W=O.normalized_metadata?.image||O.media?.original_media_url||"";V={name:O.normalized_metadata?.name||O.name||R.nft_name||`#${O.token_id}`,image:W||void 0,tokenId:O.token_id,contractAddress:O.token_address,tokenStandard:O.contract_type||R.token_standard||void 0}}}}catch(L){console.warn("NFT ownership lookup failed:",L)}}if(R.amount&&$?.balanceFormatted&&(X.action==="send_token"||X.action==="send_native")&&(R.amount=fo(R.amount,$.balanceFormatted)),N){const L=X.message||"Please review and complete the form below.";d(L,"bot",_.id,void 0,{action:X.action,parameters:R,status:"pending",tokenInfo:$,nftInfo:V})}else d(X.message||re,"bot",_.id)}else if(X&&X.action==="chat"){const N=X.token_mentions||[],R=X.suggested_actions||[],$=[];N.length>0&&N.forEach(V=>{$.push({id:`buy-${V.symbol}`,text:`💰 Buy ${V.symbol}`,value:r("buttonBuySymbol",{symbol:V.symbol}),action:"click_buy_item_token_button",extraData:{tokenAddress:V.contract_address||"",symbol:V.symbol,decimals:V.decimals||18},fullWidth:!0})}),R.length>0&&R.forEach((V,te)=>{$.push({id:`suggested-${te}-${V.label}`,text:V.label,value:V.prompt,action:"suggested_action",fullWidth:!0})}),$.length>0?d(X.message||re,"bot",_.id,$):d(X.message||re,"bot",_.id)}else d(re,"bot",_.id)}else d(a("errorProcessingRequest"),"bot",_.id)}catch(J){console.error("Error getting AI response:",J),d(a("errorProcessingRequest"),"bot",_.id)}m(!1),await ot(50),Gt.isDesktop&&fe.current?.focus()},[H,E,i,d,ve,c?.address,g?.name,g?.nativeCurrency?.symbol,g?.tokenTrendingDefault,A,w,b,y,he,we,Se,Ye,z,v,a,r]);ne.useEffect(()=>{pe.current&&H===pe.current&&(pe.current=null,Pe())},[H,Pe]);const je=ne.useCallback(async(U,_,J)=>{try{if(T(J,"submitted"),U==="swap_token"){let ee=18;if(_.token_in&&_.token_in!==Ve)try{const q=await tt.getTokensDetails([_.token_in],w);q?.data?.[0]&&(ee=q.data[0].decimals||18)}catch(q){console.warn("getTokensDetails failed in ActionForm swap, using default 18:",q)}const Z=mt(_.amount||"0",ee).toString(),j=await ro({chainId:A,tokenIn:_.token_in||"",tokenInAmount:Z,tokenOut:_.token_out||"",tokenOutRecipient:c?.address||"",slippage:"auto",accesstoken:"d6c45897b8f6"});if(j.success&&j.data){const q=j.data,ie=q.tokenIn,ye=q.tokenOut,re=ce(Ue(BigInt(ie.amount||0),ie.decimals)).decimalPlaces(6).toFormat(),X=ce(Ue(BigInt(ye.amount||0),ye.decimals)).decimalPlaces(6).toFormat(),N=!_.token_in||_.token_in===Ve;let R=!1;if(!N&&c?.address&&q.tx?.to)try{const W=await lo({tokenAddress:_.token_in,ownerAddress:c.address,spenderAddress:q.tx.to,chainId:A,rpcUrl:v});R=ce(W.toString()).isLessThan(Z)}catch(W){console.warn("Allowance check failed in ActionForm swap:",W)}const $=q.estimatedTransactionFee?.total?ce(q.estimatedTransactionFee.total):ce(0);let V=ce(0);if(R&&c?.address)try{const W=An({tokenAddress:_.token_in,spenderAddress:q.tx?.to||"",fromAddress:c.address,chainId:A});V=await sn({from:c.address,to:W.to,data:W.data,chainId:A,rpcUrl:v})}catch(W){console.warn("Approve fee estimation failed:",W)}const te=$.plus(V),be=g?.nativeCurrency?.symbol||"native";let ae="",L=!1;if(c?.address&&te.isGreaterThan(0))try{const W=await vn({address:c.address,chainId:A,rpcUrl:v});if(W.isLessThan(te)){L=!0;const me=ce(Ue(BigInt(W.toFixed(0)),18)).decimalPlaces(6).toFormat(),Ee=ce(Ue(BigInt(te.toFixed(0)),18)).decimalPlaces(6).toFormat();ae=r("swapFeeWarning",{symbol:be,balance:me,needed:Ee})}}catch(W){console.warn("Fee balance check failed:",W)}const O=`From: ${re} ${ie.symbol}
|
|
436
436
|
⬇️
|
|
437
|
-
To: ${
|
|
437
|
+
To: ${X} ${ye.symbol}
|
|
438
438
|
|
|
439
439
|
`+ae+`
|
|
440
|
-
`;if(
|
|
441
|
-
[View on Explorer](${
|
|
442
|
-
Tx: ${
|
|
443
|
-
Error: ${
|
|
440
|
+
`;if(L)T(J,"fail"),d(O,"bot");else if(R){const W=[{id:"approve-swap-actionform",text:r("swapApproveButton",{symbol:ie.symbol}),value:r("swapApproveValue",{symbol:ie.symbol}),action:"approve_for_swap",extraData:{tokenAddress:_.token_in,spenderAddress:q.tx.to,tokenSymbol:ie.symbol,tx:q.tx},fullWidth:!0}];T(J,"success"),d(O+r("swapApprovalRequired",{symbol:ie.symbol}),"bot",void 0,W)}else{const W=[{id:"confirm-swap-actionform",text:"Yes",value:a("swapConfirmValue"),action:"confirm_swap",extraData:{tx:q.tx}}];T(J,"success"),d(O+a("swapReadyToProceed"),"bot",void 0,W)}}else T(J,"fail"),d(r("swapEstimationError",{error:j.errorMessage||j.error||"Unknown error"}),"bot")}else{const ee=Zi({action:U,parameters:_,fromAddress:c?.address||"",chainId:A||1}),Z={from:ee.from,to:ee.to,data:ee.data,value:ee.value,chainId:ee.chainId};if((U==="send_token"||U==="send_native"||U==="send_nft")&&c?.address)try{const j=g?.nativeCurrency?.symbol||"native",q=await sn({from:ee.from,to:ee.to,data:ee.data,value:ee.value&&ee.value!=="0"?`0x${BigInt(ee.value).toString(16)}`:void 0,chainId:A,rpcUrl:v});if(q.isGreaterThan(0)){const ie=await vn({address:c.address,chainId:A,rpcUrl:v});if(ie.isLessThan(q)){const ye=ce(Ue(BigInt(ie.toFixed(0)),18)).decimalPlaces(6).toFormat(),re=ce(Ue(BigInt(q.toFixed(0)),18)).decimalPlaces(6).toFormat();T(J,"fail"),d(r("txInsufficientGas",{symbol:j,balance:ye,fee:re}),"bot");return}}}catch(j){console.warn("Pre-execution fee check failed:",j)}if(n){m(!1);const j=await n(Z);if(j.status==="success"&&j.transactionHash){const q=g?.blockExplorers?.default?.url,ie=q?`
|
|
441
|
+
[View on Explorer](${q}/tx/${j.transactionHash})`:`
|
|
442
|
+
Tx: ${j.transactionHash}`,ye=d(a("txSubmitted")+ie,"bot");try{await ot(2e3),(await co({transactionHash:j.transactionHash,chainId:A||1,rpcUrl:v})).status==="success"?(T(J,"success"),B(ye.id,a("txConfirmed")+ie)):(T(J,"fail"),B(ye.id,a("txReverted")+ie))}catch(re){console.warn("Transaction tracking timeout:",re),T(J,"success"),d(a("txTimeout")+ie,"bot")}}else if(j.status==="success")T(J,"success"),d(a("txSuccessful"),"bot");else{T(J,"fail");const q=j.error?`
|
|
443
|
+
Error: ${j.error}`:"";d(a("txFailed")+q,"bot")}}else T(J,"fail"),d(a("txNoHandler"),"bot")}}catch(ee){console.error("Action form submit error:",ee),T(J,"fail"),d(r("txError",{message:ee instanceof Error?ee.message:"Unknown error"}),"bot")}},[T,A,c?.address,w,d,n,g?.blockExplorers?.default?.url,g?.nativeCurrency?.symbol,B,v,a,r]),Le=ne.useCallback(U=>{T(U,"fail")},[T]),[De,Te]=ne.useState({}),Ft=ne.useCallback(async(U,_,J)=>{Te(ee=>({...ee,[J]:!0}));try{await je(U,_,J)}finally{Te(ee=>({...ee,[J]:!1}))}},[je]),Yt=ne.useCallback(U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),Pe())},[Pe]),gt=ne.useCallback(()=>{const U=window.getSelection();U&&U.toString().length>0||t()},[t]);return e?F.jsx("div",{className:`chat-modal-overlay${o==="bottom-left"?" chat-modal-overlay--left":""}`,onClick:gt,role:"dialog","aria-modal":"true","aria-labelledby":"chat-modal-title",children:F.jsxs("div",{className:"chat-modal",style:s,onClick:U=>U.stopPropagation(),children:[F.jsxs("div",{className:"chat-modal-header",children:[F.jsxs("div",{className:"chat-modal-header-left",children:[F.jsx("div",{className:"keyring-logo",children:F.jsx("img",{src:Li,alt:"Keyring Logo",width:40,height:40})}),F.jsx("h3",{id:"chat-modal-title",children:a("chatTitle")})]}),F.jsx("button",{className:"close-button",onClick:t,"aria-label":a("closeChat"),type:"button",children:F.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:F.jsx("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]}),F.jsx(Ei,{address:c?.address,chainId:g?.chainId}),F.jsxs("div",{className:"chat-modal-messages-wrapper",children:[F.jsxs("div",{className:"chat-modal-messages",ref:K,role:"log","aria-live":"polite",children:[i.map((U,_)=>F.jsxs("div",{children:[Xe(_)&&F.jsx("div",{className:"date-separator",children:wi(U.timestamp)}),F.jsxs("div",{className:`message ${U.sender==="user"?"message-user":"message-bot"}`,role:"article",children:[F.jsx("button",{className:"message-reply-button",onClick:()=>se(U),"aria-label":a("replyToMessage"),type:"button",children:F.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:F.jsx("path",{d:"M3.5 8.5L1 6L3.5 3.5M1.5 6H10C12.2091 6 14 7.79086 14 10V13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),F.jsxs("div",{className:"message-bubble",children:[U.replyTo&&F.jsxs("div",{className:"message-reply-to",children:[F.jsxs("div",{className:"message-reply-to-label",children:[a("replyingTo")," ",U.replyTo.sender==="user"?a("replyingToYou"):a("replyingToAgent")]}),F.jsx("div",{className:"message-reply-to-text",children:U.replyTo.text})]}),F.jsx("div",{className:"message-text",children:F.jsx(Yi,{content:U.text})}),U.buttons&&U.buttons.length>0&&F.jsx("div",{className:"message-buttons",children:U.buttons.map(J=>F.jsx("button",{className:`message-button ${J.fullWidth?"full-width":""} ${J.action==="suggested_action"?"suggested-action":""}`,onClick:()=>Q(J.value,J.action,J?.extraData),type:"button",children:J.text},J.id))}),U.actionData&&U.actionData.status==="pending"&&F.jsx(ji,{action:U.actionData.action,initialValues:U.actionData.parameters,onSubmit:(J,ee)=>Ft(J,ee,U.id),onCancel:()=>Le(U.id),isSubmitting:De[U.id]||!1,tokenInfo:U.actionData.tokenInfo,nftInfo:U.actionData.nftInfo}),U.actionData&&U.actionData.status==="submitted"&&F.jsx("div",{className:"action-status action-status-submitted",children:a("actionProcessing")}),U.actionData&&U.actionData.status==="success"&&F.jsx("div",{className:"action-status action-status-success",children:a("actionSuccess")}),U.actionData&&U.actionData.status==="fail"&&F.jsx("div",{className:"action-status action-status-fail",children:a("actionFail")}),F.jsxs("div",{className:"message-timestamp",children:[U.timestamp.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),U.sender==="user"&&F.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"check-icon",children:F.jsx("path",{d:"M13.3333 4L6 11.3333L2.66667 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})]})]},U.id)),E&&F.jsx("div",{className:"message message-bot typing-indicator",role:"status","aria-label":a("botIsTyping"),children:F.jsxs("div",{className:"message-bubble",children:[F.jsx("span",{className:"typing-dot"}),F.jsx("span",{className:"typing-dot"}),F.jsx("span",{className:"typing-dot"})]})}),(C||i.length===1)&&F.jsxs(F.Fragment,{children:[F.jsx("div",{className:"message message-bot",role:"article",children:F.jsx("div",{className:"message-bubble",children:F.jsx("div",{className:"message-text",children:a("canIHelpYou")})})}),F.jsx("div",{className:"suggestions-container",children:at.map(U=>F.jsxs("button",{className:"suggestion-button",onClick:U.action,type:"button",children:[F.jsx("span",{className:"suggestion-icon",children:U.icon}),F.jsx("span",{className:"suggestion-text",children:U.text})]},U.id))})]}),F.jsx("div",{ref:Y})]}),F.jsx(qi,{scrollContainerRef:K})]}),F.jsxs("div",{className:"chat-modal-input",children:[ve&&F.jsxs("div",{className:"reply-preview",children:[F.jsxs("div",{className:"reply-preview-content",children:[F.jsxs("div",{className:"reply-preview-label",children:[a("replyingTo")," ",ve.sender==="user"?a("replyingToYou"):a("replyingToAgent")]}),F.jsx("div",{className:"reply-preview-text",children:ve.text})]}),F.jsx("button",{className:"reply-preview-close",onClick:()=>I(null),"aria-label":a("cancelReply"),type:"button",children:F.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:F.jsx("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),F.jsxs("div",{className:"chat-modal-input-row",children:[F.jsx("input",{ref:fe,type:"text",placeholder:a("messagePlaceholder"),value:H,onChange:U=>h(U.target.value),onKeyPress:Yt,disabled:E,"aria-label":"Message input"}),F.jsx("button",{className:"send-button",onClick:Pe,"aria-label":a("sendMessage"),disabled:E||H?.trim()==="",type:"button",children:F.jsx("img",{src:Hi,alt:"Send",width:44,height:44})})]})]})]})}):null},lc=({position:e,theme:t,defaultOpen:n,onOpen:o,onClose:s,onTransaction:a})=>{const[r,i]=ne.useState(n);ne.useEffect(()=>{n&&o&&o()},[]),ne.useEffect(()=>{if(typeof window>"u")return;const h=document.body,E=document.documentElement,m=h.style.overscrollBehavior,C=E.style.overscrollBehavior,M=h.style.overflow;return r&&(h.style.overscrollBehavior="none",E.style.overscrollBehavior="none",h.style.overflow="hidden"),()=>{h.style.overscrollBehavior=m,E.style.overscrollBehavior=C,h.style.overflow=M}},[r]);const d=ne.useCallback(()=>{i(!0),o?.()},[o]),T=ne.useCallback(()=>{i(!1),s?.()},[s]),B=ne.useCallback(()=>{r?T():d()},[r,d,T]),H={position:"fixed",[e==="bottom-right"?"right":"left"]:"20px",bottom:"20px",zIndex:t.zIndex??9999};return F.jsxs("div",{style:H,role:"complementary","aria-label":"Chat widget",children:[F.jsx(Js,{onClick:B}),F.jsx(cc,{isOpen:r,onClose:T,onTransaction:a,position:e,modalChatStyle:t.modalChatStyle})]})},dc=({position:e="bottom-right",theme:t={},defaultOpen:n=!1,onOpen:o,onClose:s,account:a,onTransaction:r,language:i="en",rpcUrls:d})=>{const T={position:e,theme:t,rpcUrls:d};return typeof window>"u"?null:F.jsx(Pi,{initialConfig:T,children:F.jsx(Ti,{initialAccount:a,children:F.jsx(Ys,{initialLanguage:i,children:F.jsx(lc,{position:e,theme:t,defaultOpen:n,onOpen:o,onClose:s,onTransaction:r})})})})};wt.ChatWidget=dc,Object.defineProperty(wt,Symbol.toStringTag,{value:"Module"})}));
|