keyring-chatbot-agent-sdk-test 0.0.5 → 0.0.7
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 +681 -645
- package/dist/chat-widget.umd.js +77 -73
- package/package.json +1 -2
package/dist/chat-widget.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".chat-button{position:fixed;bottom:24px;right:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;transition:all .3s ease;z-index:9998}.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}@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:24px;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-wallet{font-size:14px;font-weight:500;color:#1a1a1d}.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;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}.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:12px;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{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:16px;background:#fff;color:#1a1a2e;outline:none;transition:border-color .2s}.action-form-field input:focus{border-color:#6c5ce7;box-shadow:0 0 0 2px #6c5ce726}.action-form-field input.error{border-color:#ef4444}.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 label{margin-bottom:0}.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}.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}.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)}})();
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".chat-button{position:fixed;bottom:24px;right:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;transition:all .3s ease;z-index:9998}.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}@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:24px;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-wallet{font-size:14px;font-weight:500;color:#1a1a1d}.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;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}.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:12px;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 label{margin-bottom:0}.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}.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}.scroll-to-bottom-btn{position:absolute;bottom:16px;right:20px;background:#1a1a1dd6;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:50%;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000040;z-index:20;transition:background .15s,transform .15s,box-shadow .15s;animation:fadeInUp .18s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:640px){.scroll-to-bottom-btn:hover{background:#2d2d35;box-shadow:0 6px 16px #0000004d;transform:scale(1.08)}}.scroll-to-bottom-btn:active{transform:scale(.96)}")),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
2
|
import { jsx as R, jsxs as Ae, Fragment as Er } from "react/jsx-runtime";
|
|
3
3
|
import lo, { memo as uo, useState as Ve, useCallback as Pe, createContext as yn, useContext as An, useEffect as et, useRef as tn, useMemo as Tr } from "react";
|
|
4
4
|
const fo = "data:image/png;base64,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", po = uo(({ onClick: e }) => /* @__PURE__ */ R(
|
|
@@ -892,13 +892,13 @@ class oi extends Zo {
|
|
|
892
892
|
for (let F = 0; F < 16; F++, n += 4)
|
|
893
893
|
nt[F] = t.getUint32(n, !1);
|
|
894
894
|
for (let F = 16; F < 64; F++) {
|
|
895
|
-
const g = nt[F - 15], I = nt[F - 2], k = Ke(g, 7) ^ Ke(g, 18) ^ g >>> 3,
|
|
896
|
-
nt[F] =
|
|
895
|
+
const g = nt[F - 15], I = nt[F - 2], k = Ke(g, 7) ^ Ke(g, 18) ^ g >>> 3, m = Ke(I, 17) ^ Ke(I, 19) ^ I >>> 10;
|
|
896
|
+
nt[F] = m + nt[F - 7] + k + nt[F - 16] | 0;
|
|
897
897
|
}
|
|
898
898
|
let { A: s, B: r, C: o, D: a, E: c, F: S, G: B, H: D } = this;
|
|
899
899
|
for (let F = 0; F < 64; F++) {
|
|
900
|
-
const g = Ke(c, 6) ^ Ke(c, 11) ^ Ke(c, 25), I = D + g + Qo(c, S, B) + si[F] + nt[F] | 0,
|
|
901
|
-
D = B, B = S, S = c, c = a + I | 0, a = o, o = r, r = s, s = I +
|
|
900
|
+
const g = Ke(c, 6) ^ Ke(c, 11) ^ Ke(c, 25), I = D + g + Qo(c, S, B) + si[F] + nt[F] | 0, m = (Ke(s, 2) ^ Ke(s, 13) ^ Ke(s, 22)) + Ko(s, r, o) | 0;
|
|
901
|
+
D = B, B = S, S = c, c = a + I | 0, a = o, o = r, r = s, s = I + m | 0;
|
|
902
902
|
}
|
|
903
903
|
s = s + this.A | 0, r = r + this.B | 0, o = o + this.C | 0, a = a + this.D | 0, c = c + this.E | 0, S = S + this.F | 0, B = B + this.G | 0, D = D + this.H | 0, this.set(s, r, o, a, c, S, B, D);
|
|
904
904
|
}
|
|
@@ -1342,18 +1342,18 @@ function Fi(e, t) {
|
|
|
1342
1342
|
Pi(e);
|
|
1343
1343
|
let g = e.blobVersionedHashes, I = e.sidecars;
|
|
1344
1344
|
if (e.blobs && (typeof g > "u" || typeof I > "u")) {
|
|
1345
|
-
const
|
|
1346
|
-
blobs:
|
|
1345
|
+
const H = typeof e.blobs[0] == "string" ? e.blobs : e.blobs.map((oe) => lt(oe)), j = e.kzg, le = Fr({
|
|
1346
|
+
blobs: H,
|
|
1347
1347
|
kzg: j
|
|
1348
1348
|
});
|
|
1349
1349
|
if (typeof g > "u" && (g = di({
|
|
1350
1350
|
commitments: le
|
|
1351
1351
|
})), typeof I > "u") {
|
|
1352
|
-
const
|
|
1353
|
-
I = mi({ blobs:
|
|
1352
|
+
const oe = Lr({ blobs: H, commitments: le, kzg: j });
|
|
1353
|
+
I = mi({ blobs: H, commitments: le, proofs: oe });
|
|
1354
1354
|
}
|
|
1355
1355
|
}
|
|
1356
|
-
const k = Zt(D),
|
|
1356
|
+
const k = Zt(D), m = [
|
|
1357
1357
|
me(n),
|
|
1358
1358
|
r ? me(r) : "0x",
|
|
1359
1359
|
B ? me(B) : "0x",
|
|
@@ -1366,16 +1366,16 @@ function Fi(e, t) {
|
|
|
1366
1366
|
c ? me(c) : "0x",
|
|
1367
1367
|
g ?? [],
|
|
1368
1368
|
...Ot(e, t)
|
|
1369
|
-
], C = [],
|
|
1369
|
+
], C = [], re = [], T = [];
|
|
1370
1370
|
if (I)
|
|
1371
|
-
for (let
|
|
1372
|
-
const { blob: j, commitment: le, proof:
|
|
1373
|
-
C.push(j),
|
|
1371
|
+
for (let H = 0; H < I.length; H++) {
|
|
1372
|
+
const { blob: j, commitment: le, proof: oe } = I[H];
|
|
1373
|
+
C.push(j), re.push(le), T.push(oe);
|
|
1374
1374
|
}
|
|
1375
1375
|
return mt([
|
|
1376
1376
|
"0x03",
|
|
1377
1377
|
// If sidecars are enabled, envelope turns into a "wrapper":
|
|
1378
|
-
pt(I ? [
|
|
1378
|
+
pt(I ? [m, C, re, T] : m)
|
|
1379
1379
|
]);
|
|
1380
1380
|
}
|
|
1381
1381
|
function Li(e, t) {
|
|
@@ -2427,7 +2427,7 @@ function Ha() {
|
|
|
2427
2427
|
messages: r,
|
|
2428
2428
|
setMessages: o,
|
|
2429
2429
|
addMessage: (B, D, F, g, I) => {
|
|
2430
|
-
const k = F ? r.find((C) => C.id === F) : void 0,
|
|
2430
|
+
const k = F ? r.find((C) => C.id === F) : void 0, m = {
|
|
2431
2431
|
id: is(),
|
|
2432
2432
|
text: B,
|
|
2433
2433
|
sender: D,
|
|
@@ -2443,9 +2443,9 @@ function Ha() {
|
|
|
2443
2443
|
...I && { actionData: I }
|
|
2444
2444
|
};
|
|
2445
2445
|
return o((C) => {
|
|
2446
|
-
const
|
|
2447
|
-
return
|
|
2448
|
-
}),
|
|
2446
|
+
const re = [...C, m];
|
|
2447
|
+
return re.length > Ar ? re.slice(re.length - Ar) : re;
|
|
2448
|
+
}), m;
|
|
2449
2449
|
},
|
|
2450
2450
|
updateMessageAction: (B, D) => {
|
|
2451
2451
|
o(
|
|
@@ -2477,7 +2477,7 @@ const cs = yn(
|
|
|
2477
2477
|
};
|
|
2478
2478
|
var qa = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, ln = Math.ceil, Xe = Math.floor, Le = "[BigNumber Error] ", vr = Le + "Number primitive has more than 15 significant digits: ", je = 1e14, ue = 14, dn = 9007199254740991, un = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], rt = 1e7, Ue = 1e9;
|
|
2479
2479
|
function ls(e) {
|
|
2480
|
-
var t, n, s, r = T.prototype = { constructor: T, toString: null, valueOf: null }, o = new T(1), a = 20, c = 4, S = -7, B = 21, D = -1e7, F = 1e7, g = !1, I = 1, k = 0,
|
|
2480
|
+
var t, n, s, r = T.prototype = { constructor: T, toString: null, valueOf: null }, o = new T(1), a = 20, c = 4, S = -7, B = 21, D = -1e7, F = 1e7, g = !1, I = 1, k = 0, m = {
|
|
2481
2481
|
prefix: "",
|
|
2482
2482
|
groupSize: 3,
|
|
2483
2483
|
secondaryGroupSize: 0,
|
|
@@ -2487,9 +2487,9 @@ function ls(e) {
|
|
|
2487
2487
|
fractionGroupSeparator: " ",
|
|
2488
2488
|
// non-breaking space
|
|
2489
2489
|
suffix: ""
|
|
2490
|
-
}, C = "0123456789abcdefghijklmnopqrstuvwxyz",
|
|
2490
|
+
}, C = "0123456789abcdefghijklmnopqrstuvwxyz", re = !0;
|
|
2491
2491
|
function T(i, l) {
|
|
2492
|
-
var u, y, h, b, E, p,
|
|
2492
|
+
var u, y, h, b, E, p, w, x, v = this;
|
|
2493
2493
|
if (!(v instanceof T)) return new T(i, l);
|
|
2494
2494
|
if (l == null) {
|
|
2495
2495
|
if (i && i._isBigNumber === !0) {
|
|
@@ -2509,19 +2509,19 @@ function ls(e) {
|
|
|
2509
2509
|
}
|
|
2510
2510
|
(b = x.indexOf(".")) > -1 && (x = x.replace(".", "")), (E = x.search(/e/i)) > 0 ? (b < 0 && (b = E), b += +x.slice(E + 1), x = x.substring(0, E)) : b < 0 && (b = x.length);
|
|
2511
2511
|
} else {
|
|
2512
|
-
if (De(l, 2, C.length, "Base"), l == 10 &&
|
|
2513
|
-
return v = new T(i),
|
|
2512
|
+
if (De(l, 2, C.length, "Base"), l == 10 && re)
|
|
2513
|
+
return v = new T(i), oe(v, a + v.e + 1, c);
|
|
2514
2514
|
if (x = String(i), p = typeof i == "number") {
|
|
2515
2515
|
if (i * 0 != 0) return s(v, x, p, l);
|
|
2516
2516
|
if (v.s = 1 / i < 0 ? (x = x.slice(1), -1) : 1, T.DEBUG && x.replace(/^0\.0*|\./, "").length > 15)
|
|
2517
2517
|
throw Error(vr + i);
|
|
2518
2518
|
} else
|
|
2519
2519
|
v.s = x.charCodeAt(0) === 45 ? (x = x.slice(1), -1) : 1;
|
|
2520
|
-
for (u = C.slice(0, l), b = E = 0,
|
|
2520
|
+
for (u = C.slice(0, l), b = E = 0, w = x.length; E < w; E++)
|
|
2521
2521
|
if (u.indexOf(y = x.charAt(E)) < 0) {
|
|
2522
2522
|
if (y == ".") {
|
|
2523
2523
|
if (E > b) {
|
|
2524
|
-
b =
|
|
2524
|
+
b = w;
|
|
2525
2525
|
continue;
|
|
2526
2526
|
}
|
|
2527
2527
|
} else if (!h && (x == x.toUpperCase() && (x = x.toLowerCase()) || x == x.toLowerCase() && (x = x.toUpperCase()))) {
|
|
@@ -2533,21 +2533,21 @@ function ls(e) {
|
|
|
2533
2533
|
p = !1, x = n(x, l, 10, v.s), (b = x.indexOf(".")) > -1 ? x = x.replace(".", "") : b = x.length;
|
|
2534
2534
|
}
|
|
2535
2535
|
for (E = 0; x.charCodeAt(E) === 48; E++) ;
|
|
2536
|
-
for (
|
|
2537
|
-
if (x = x.slice(E, ++
|
|
2538
|
-
if (
|
|
2536
|
+
for (w = x.length; x.charCodeAt(--w) === 48; ) ;
|
|
2537
|
+
if (x = x.slice(E, ++w)) {
|
|
2538
|
+
if (w -= E, p && T.DEBUG && w > 15 && (i > dn || i !== Xe(i)))
|
|
2539
2539
|
throw Error(vr + v.s * i);
|
|
2540
2540
|
if ((b = b - E - 1) > F)
|
|
2541
2541
|
v.c = v.e = null;
|
|
2542
2542
|
else if (b < D)
|
|
2543
2543
|
v.c = [v.e = 0];
|
|
2544
2544
|
else {
|
|
2545
|
-
if (v.e = b, v.c = [], E = (b + 1) % ue, b < 0 && (E += ue), E <
|
|
2546
|
-
for (E && v.c.push(+x.slice(0, E)),
|
|
2545
|
+
if (v.e = b, v.c = [], E = (b + 1) % ue, b < 0 && (E += ue), E < w) {
|
|
2546
|
+
for (E && v.c.push(+x.slice(0, E)), w -= ue; E < w; )
|
|
2547
2547
|
v.c.push(+x.slice(E, E += ue));
|
|
2548
2548
|
E = ue - (x = x.slice(E)).length;
|
|
2549
2549
|
} else
|
|
2550
|
-
E -=
|
|
2550
|
+
E -= w;
|
|
2551
2551
|
for (; E--; x += "0") ;
|
|
2552
2552
|
v.c.push(+x);
|
|
2553
2553
|
}
|
|
@@ -2577,11 +2577,11 @@ function ls(e) {
|
|
|
2577
2577
|
else
|
|
2578
2578
|
throw Error(Le + l + " not true or false: " + u);
|
|
2579
2579
|
if (i.hasOwnProperty(l = "MODULO_MODE") && (u = i[l], De(u, 0, 9, l), I = u), i.hasOwnProperty(l = "POW_PRECISION") && (u = i[l], De(u, 0, Ue, l), k = u), i.hasOwnProperty(l = "FORMAT"))
|
|
2580
|
-
if (u = i[l], typeof u == "object")
|
|
2580
|
+
if (u = i[l], typeof u == "object") m = u;
|
|
2581
2581
|
else throw Error(Le + l + " not an object: " + u);
|
|
2582
2582
|
if (i.hasOwnProperty(l = "ALPHABET"))
|
|
2583
2583
|
if (u = i[l], typeof u == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(u))
|
|
2584
|
-
|
|
2584
|
+
re = u.slice(0, 10) == "0123456789", C = u;
|
|
2585
2585
|
else
|
|
2586
2586
|
throw Error(Le + l + " invalid: " + u);
|
|
2587
2587
|
} else
|
|
@@ -2594,7 +2594,7 @@ function ls(e) {
|
|
|
2594
2594
|
CRYPTO: g,
|
|
2595
2595
|
MODULO_MODE: I,
|
|
2596
2596
|
POW_PRECISION: k,
|
|
2597
|
-
FORMAT:
|
|
2597
|
+
FORMAT: m,
|
|
2598
2598
|
ALPHABET: C
|
|
2599
2599
|
};
|
|
2600
2600
|
}, T.isBigNumber = function(i) {
|
|
@@ -2627,28 +2627,28 @@ function ls(e) {
|
|
|
2627
2627
|
return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);
|
|
2628
2628
|
};
|
|
2629
2629
|
return function(u) {
|
|
2630
|
-
var y, h, b, E, p,
|
|
2630
|
+
var y, h, b, E, p, w = 0, x = [], v = new T(o);
|
|
2631
2631
|
if (u == null ? u = a : De(u, 0, Ue), E = ln(u / ue), g)
|
|
2632
2632
|
if (crypto.getRandomValues) {
|
|
2633
|
-
for (y = crypto.getRandomValues(new Uint32Array(E *= 2));
|
|
2634
|
-
p = y[
|
|
2635
|
-
|
|
2633
|
+
for (y = crypto.getRandomValues(new Uint32Array(E *= 2)); w < E; )
|
|
2634
|
+
p = y[w] * 131072 + (y[w + 1] >>> 11), p >= 9e15 ? (h = crypto.getRandomValues(new Uint32Array(2)), y[w] = h[0], y[w + 1] = h[1]) : (x.push(p % 1e14), w += 2);
|
|
2635
|
+
w = E / 2;
|
|
2636
2636
|
} else if (crypto.randomBytes) {
|
|
2637
|
-
for (y = crypto.randomBytes(E *= 7);
|
|
2638
|
-
p = (y[
|
|
2639
|
-
|
|
2637
|
+
for (y = crypto.randomBytes(E *= 7); w < E; )
|
|
2638
|
+
p = (y[w] & 31) * 281474976710656 + y[w + 1] * 1099511627776 + y[w + 2] * 4294967296 + y[w + 3] * 16777216 + (y[w + 4] << 16) + (y[w + 5] << 8) + y[w + 6], p >= 9e15 ? crypto.randomBytes(7).copy(y, w) : (x.push(p % 1e14), w += 7);
|
|
2639
|
+
w = E / 7;
|
|
2640
2640
|
} else
|
|
2641
2641
|
throw g = !1, Error(Le + "crypto unavailable");
|
|
2642
2642
|
if (!g)
|
|
2643
|
-
for (;
|
|
2644
|
-
p = l(), p < 9e15 && (x[
|
|
2645
|
-
for (E = x[--
|
|
2646
|
-
if (
|
|
2643
|
+
for (; w < E; )
|
|
2644
|
+
p = l(), p < 9e15 && (x[w++] = p % 1e14);
|
|
2645
|
+
for (E = x[--w], u %= ue, E && u && (p = un[ue - u], x[w] = Xe(E / p) * p); x[w] === 0; x.pop(), w--) ;
|
|
2646
|
+
if (w < 0)
|
|
2647
2647
|
x = [b = 0];
|
|
2648
2648
|
else {
|
|
2649
2649
|
for (b = -1; x[0] === 0; x.splice(0, 1), b -= ue) ;
|
|
2650
|
-
for (
|
|
2651
|
-
|
|
2650
|
+
for (w = 1, p = x[0]; p >= 10; p /= 10, w++) ;
|
|
2651
|
+
w < ue && (b -= ue - w);
|
|
2652
2652
|
}
|
|
2653
2653
|
return v.e = b, v.c = x, v;
|
|
2654
2654
|
};
|
|
@@ -2658,15 +2658,15 @@ function ls(e) {
|
|
|
2658
2658
|
}, n = /* @__PURE__ */ (function() {
|
|
2659
2659
|
var i = "0123456789";
|
|
2660
2660
|
function l(u, y, h, b) {
|
|
2661
|
-
for (var E, p = [0],
|
|
2662
|
-
for (
|
|
2661
|
+
for (var E, p = [0], w, x = 0, v = u.length; x < v; ) {
|
|
2662
|
+
for (w = p.length; w--; p[w] *= y) ;
|
|
2663
2663
|
for (p[0] += b.indexOf(u.charAt(x++)), E = 0; E < p.length; E++)
|
|
2664
2664
|
p[E] > h - 1 && (p[E + 1] == null && (p[E + 1] = 0), p[E + 1] += p[E] / h | 0, p[E] %= h);
|
|
2665
2665
|
}
|
|
2666
2666
|
return p.reverse();
|
|
2667
2667
|
}
|
|
2668
2668
|
return function(u, y, h, b, E) {
|
|
2669
|
-
var p,
|
|
2669
|
+
var p, w, x, v, P, X, K, pe, Ee = u.indexOf("."), Ie = a, V = c;
|
|
2670
2670
|
for (Ee >= 0 && (v = k, k = 0, u = u.replace(".", ""), pe = new T(y), X = pe.pow(u.length - Ee), k = v, pe.c = l(
|
|
2671
2671
|
$e(Ye(X.c), X.e, "0"),
|
|
2672
2672
|
10,
|
|
@@ -2674,12 +2674,12 @@ function ls(e) {
|
|
|
2674
2674
|
i
|
|
2675
2675
|
), pe.e = pe.c.length), K = l(u, y, h, E ? (p = C, i) : (p = i, C)), x = v = K.length; K[--v] == 0; K.pop()) ;
|
|
2676
2676
|
if (!K[0]) return p.charAt(0);
|
|
2677
|
-
if (Ee < 0 ? --x : (X.c = K, X.e = x, X.s = b, X = t(X, pe, Ie,
|
|
2677
|
+
if (Ee < 0 ? --x : (X.c = K, X.e = x, X.s = b, X = t(X, pe, Ie, V, h), K = X.c, P = X.r, x = X.e), w = x + Ie + 1, Ee = K[w], v = h / 2, P = P || w < 0 || K[w + 1] != null, P = V < 4 ? (Ee != null || P) && (V == 0 || V == (X.s < 0 ? 3 : 2)) : Ee > v || Ee == v && (V == 4 || P || V == 6 && K[w - 1] & 1 || V == (X.s < 0 ? 8 : 7)), w < 1 || !K[0])
|
|
2678
2678
|
u = P ? $e(p.charAt(1), -Ie, p.charAt(0)) : p.charAt(0);
|
|
2679
2679
|
else {
|
|
2680
|
-
if (K.length =
|
|
2681
|
-
for (--h; ++K[--
|
|
2682
|
-
K[
|
|
2680
|
+
if (K.length = w, P)
|
|
2681
|
+
for (--h; ++K[--w] > h; )
|
|
2682
|
+
K[w] = 0, w || (++x, K = [1].concat(K));
|
|
2683
2683
|
for (v = K.length; !K[--v]; ) ;
|
|
2684
2684
|
for (Ee = 0, u = ""; Ee <= v; u += p.charAt(K[Ee++])) ;
|
|
2685
2685
|
u = $e(u, x, p.charAt(0));
|
|
@@ -2688,22 +2688,22 @@ function ls(e) {
|
|
|
2688
2688
|
};
|
|
2689
2689
|
})(), t = /* @__PURE__ */ (function() {
|
|
2690
2690
|
function i(y, h, b) {
|
|
2691
|
-
var E, p,
|
|
2691
|
+
var E, p, w, x, v = 0, P = y.length, X = h % rt, K = h / rt | 0;
|
|
2692
2692
|
for (y = y.slice(); P--; )
|
|
2693
|
-
|
|
2693
|
+
w = y[P] % rt, x = y[P] / rt | 0, E = K * w + x * X, p = X * w + E % rt * rt + v, v = (p / b | 0) + (E / rt | 0) + K * x, y[P] = p % b;
|
|
2694
2694
|
return v && (y = [v].concat(y)), y;
|
|
2695
2695
|
}
|
|
2696
2696
|
function l(y, h, b, E) {
|
|
2697
|
-
var p,
|
|
2697
|
+
var p, w;
|
|
2698
2698
|
if (b != E)
|
|
2699
|
-
|
|
2699
|
+
w = b > E ? 1 : -1;
|
|
2700
2700
|
else
|
|
2701
|
-
for (p =
|
|
2701
|
+
for (p = w = 0; p < b; p++)
|
|
2702
2702
|
if (y[p] != h[p]) {
|
|
2703
|
-
|
|
2703
|
+
w = y[p] > h[p] ? 1 : -1;
|
|
2704
2704
|
break;
|
|
2705
2705
|
}
|
|
2706
|
-
return
|
|
2706
|
+
return w;
|
|
2707
2707
|
}
|
|
2708
2708
|
function u(y, h, b, E) {
|
|
2709
2709
|
for (var p = 0; b--; )
|
|
@@ -2711,57 +2711,57 @@ function ls(e) {
|
|
|
2711
2711
|
for (; !y[0] && y.length > 1; y.splice(0, 1)) ;
|
|
2712
2712
|
}
|
|
2713
2713
|
return function(y, h, b, E, p) {
|
|
2714
|
-
var
|
|
2715
|
-
if (!_ || !_[0] || !
|
|
2714
|
+
var w, x, v, P, X, K, pe, Ee, Ie, V, he, U, J, z, Z, Y, W, L = y.s == h.s ? 1 : -1, _ = y.c, G = h.c;
|
|
2715
|
+
if (!_ || !_[0] || !G || !G[0])
|
|
2716
2716
|
return new T(
|
|
2717
2717
|
// Return NaN if either NaN, or both Infinity or 0.
|
|
2718
|
-
!y.s || !h.s || (_ ?
|
|
2718
|
+
!y.s || !h.s || (_ ? G && _[0] == G[0] : !G) ? NaN : (
|
|
2719
2719
|
// Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.
|
|
2720
|
-
_ && _[0] == 0 || !
|
|
2720
|
+
_ && _[0] == 0 || !G ? L * 0 : L / 0
|
|
2721
2721
|
)
|
|
2722
2722
|
);
|
|
2723
|
-
for (Ee = new T(L), Ie = Ee.c = [], x = y.e - h.e, L = b + x + 1, p || (p = je, x = Je(y.e / ue) - Je(h.e / ue), L = L / ue | 0), v = 0;
|
|
2724
|
-
if (
|
|
2723
|
+
for (Ee = new T(L), Ie = Ee.c = [], x = y.e - h.e, L = b + x + 1, p || (p = je, x = Je(y.e / ue) - Je(h.e / ue), L = L / ue | 0), v = 0; G[v] == (_[v] || 0); v++) ;
|
|
2724
|
+
if (G[v] > (_[v] || 0) && x--, L < 0)
|
|
2725
2725
|
Ie.push(1), P = !0;
|
|
2726
2726
|
else {
|
|
2727
|
-
for (
|
|
2728
|
-
|
|
2727
|
+
for (z = _.length, Y = G.length, v = 0, L += 2, X = Xe(p / (G[0] + 1)), X > 1 && (G = i(G, X, p), _ = i(_, X, p), Y = G.length, z = _.length), J = Y, V = _.slice(0, Y), he = V.length; he < Y; V[he++] = 0) ;
|
|
2728
|
+
W = G.slice(), W = [0].concat(W), Z = G[0], G[1] >= p / 2 && Z++;
|
|
2729
2729
|
do {
|
|
2730
|
-
if (X = 0,
|
|
2731
|
-
if (U =
|
|
2732
|
-
for (X >= p && (X = p - 1), K = i(
|
|
2733
|
-
X--, u(K,
|
|
2730
|
+
if (X = 0, w = l(G, V, Y, he), w < 0) {
|
|
2731
|
+
if (U = V[0], Y != he && (U = U * p + (V[1] || 0)), X = Xe(U / Z), X > 1)
|
|
2732
|
+
for (X >= p && (X = p - 1), K = i(G, X, p), pe = K.length, he = V.length; l(K, V, pe, he) == 1; )
|
|
2733
|
+
X--, u(K, Y < pe ? W : G, pe, p), pe = K.length, w = 1;
|
|
2734
2734
|
else
|
|
2735
|
-
X == 0 && (
|
|
2736
|
-
if (pe < he && (K = [0].concat(K)), u(
|
|
2737
|
-
for (; l(
|
|
2738
|
-
X++, u(
|
|
2739
|
-
} else
|
|
2740
|
-
Ie[v++] = X,
|
|
2741
|
-
} while ((J++ <
|
|
2742
|
-
P =
|
|
2735
|
+
X == 0 && (w = X = 1), K = G.slice(), pe = K.length;
|
|
2736
|
+
if (pe < he && (K = [0].concat(K)), u(V, K, he, p), he = V.length, w == -1)
|
|
2737
|
+
for (; l(G, V, Y, he) < 1; )
|
|
2738
|
+
X++, u(V, Y < he ? W : G, he, p), he = V.length;
|
|
2739
|
+
} else w === 0 && (X++, V = [0]);
|
|
2740
|
+
Ie[v++] = X, V[0] ? V[he++] = _[J] || 0 : (V = [_[J]], he = 1);
|
|
2741
|
+
} while ((J++ < z || V[0] != null) && L--);
|
|
2742
|
+
P = V[0] != null, Ie[0] || Ie.splice(0, 1);
|
|
2743
2743
|
}
|
|
2744
2744
|
if (p == je) {
|
|
2745
2745
|
for (v = 1, L = Ie[0]; L >= 10; L /= 10, v++) ;
|
|
2746
|
-
|
|
2746
|
+
oe(Ee, b + (Ee.e = v + x * ue - 1) + 1, E, P);
|
|
2747
2747
|
} else
|
|
2748
2748
|
Ee.e = x, Ee.r = +P;
|
|
2749
2749
|
return Ee;
|
|
2750
2750
|
};
|
|
2751
2751
|
})();
|
|
2752
|
-
function
|
|
2753
|
-
var h, b, E, p,
|
|
2752
|
+
function H(i, l, u, y) {
|
|
2753
|
+
var h, b, E, p, w;
|
|
2754
2754
|
if (u == null ? u = c : De(u, 0, 8), !i.c) return i.toString();
|
|
2755
2755
|
if (h = i.c[0], E = i.e, l == null)
|
|
2756
|
-
|
|
2757
|
-
else if (i =
|
|
2758
|
-
for (; p < l;
|
|
2759
|
-
|
|
2760
|
-
} else if (l -= E + (y === 2 && b > E),
|
|
2761
|
-
if (--l > 0) for (
|
|
2756
|
+
w = Ye(i.c), w = y == 1 || y == 2 && (E <= S || E >= B) ? Vt(w, E) : $e(w, E, "0");
|
|
2757
|
+
else if (i = oe(new T(i), l, u), b = i.e, w = Ye(i.c), p = w.length, y == 1 || y == 2 && (l <= b || b <= S)) {
|
|
2758
|
+
for (; p < l; w += "0", p++) ;
|
|
2759
|
+
w = Vt(w, b);
|
|
2760
|
+
} else if (l -= E + (y === 2 && b > E), w = $e(w, b, "0"), b + 1 > p) {
|
|
2761
|
+
if (--l > 0) for (w += "."; l--; w += "0") ;
|
|
2762
2762
|
} else if (l += b - p, l > 0)
|
|
2763
|
-
for (b + 1 == p && (
|
|
2764
|
-
return i.s < 0 && h ? "-" +
|
|
2763
|
+
for (b + 1 == p && (w += "."); l--; w += "0") ;
|
|
2764
|
+
return i.s < 0 && h ? "-" + w : w;
|
|
2765
2765
|
}
|
|
2766
2766
|
function j(i, l) {
|
|
2767
2767
|
for (var u, y, h = 1, b = new T(i[0]); h < i.length; h++)
|
|
@@ -2775,46 +2775,46 @@ function ls(e) {
|
|
|
2775
2775
|
}
|
|
2776
2776
|
s = /* @__PURE__ */ (function() {
|
|
2777
2777
|
var i = /^(-?)0([xbo])(?=\w[\w.]*$)/i, l = /^([^.]+)\.$/, u = /^\.([^.]+)$/, y = /^-?(Infinity|NaN)$/, h = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
|
|
2778
|
-
return function(b, E, p,
|
|
2778
|
+
return function(b, E, p, w) {
|
|
2779
2779
|
var x, v = p ? E : E.replace(h, "");
|
|
2780
2780
|
if (y.test(v))
|
|
2781
2781
|
b.s = isNaN(v) ? null : v < 0 ? -1 : 1;
|
|
2782
2782
|
else {
|
|
2783
2783
|
if (!p && (v = v.replace(i, function(P, X, K) {
|
|
2784
|
-
return x = (K = K.toLowerCase()) == "x" ? 16 : K == "b" ? 2 : 8, !
|
|
2785
|
-
}),
|
|
2784
|
+
return x = (K = K.toLowerCase()) == "x" ? 16 : K == "b" ? 2 : 8, !w || w == x ? X : P;
|
|
2785
|
+
}), w && (x = w, v = v.replace(l, "$1").replace(u, "0.$1")), E != v))
|
|
2786
2786
|
return new T(v, x);
|
|
2787
2787
|
if (T.DEBUG)
|
|
2788
|
-
throw Error(Le + "Not a" + (
|
|
2788
|
+
throw Error(Le + "Not a" + (w ? " base " + w : "") + " number: " + E);
|
|
2789
2789
|
b.s = null;
|
|
2790
2790
|
}
|
|
2791
2791
|
b.c = b.e = null;
|
|
2792
2792
|
};
|
|
2793
2793
|
})();
|
|
2794
|
-
function
|
|
2795
|
-
var h, b, E, p,
|
|
2794
|
+
function oe(i, l, u, y) {
|
|
2795
|
+
var h, b, E, p, w, x, v, P = i.c, X = un;
|
|
2796
2796
|
if (P) {
|
|
2797
2797
|
e: {
|
|
2798
2798
|
for (h = 1, p = P[0]; p >= 10; p /= 10, h++) ;
|
|
2799
2799
|
if (b = l - h, b < 0)
|
|
2800
|
-
b += ue, E = l,
|
|
2800
|
+
b += ue, E = l, w = P[x = 0], v = Xe(w / X[h - E - 1] % 10);
|
|
2801
2801
|
else if (x = ln((b + 1) / ue), x >= P.length)
|
|
2802
2802
|
if (y) {
|
|
2803
2803
|
for (; P.length <= x; P.push(0)) ;
|
|
2804
|
-
|
|
2804
|
+
w = v = 0, h = 1, b %= ue, E = b - ue + 1;
|
|
2805
2805
|
} else
|
|
2806
2806
|
break e;
|
|
2807
2807
|
else {
|
|
2808
|
-
for (
|
|
2809
|
-
b %= ue, E = b - ue + h, v = E < 0 ? 0 : Xe(
|
|
2808
|
+
for (w = p = P[x], h = 1; p >= 10; p /= 10, h++) ;
|
|
2809
|
+
b %= ue, E = b - ue + h, v = E < 0 ? 0 : Xe(w / X[h - E - 1] % 10);
|
|
2810
2810
|
}
|
|
2811
2811
|
if (y = y || l < 0 || // Are there any non-zero digits after the rounding digit?
|
|
2812
2812
|
// The expression n % pows10[d - j - 1] returns all digits of n to the right
|
|
2813
2813
|
// of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.
|
|
2814
|
-
P[x + 1] != null || (E < 0 ?
|
|
2815
|
-
(b > 0 ? E > 0 ?
|
|
2814
|
+
P[x + 1] != null || (E < 0 ? w : w % X[h - E - 1]), y = u < 4 ? (v || y) && (u == 0 || u == (i.s < 0 ? 3 : 2)) : v > 5 || v == 5 && (u == 4 || y || u == 6 && // Check whether the digit to the left of the rounding digit is odd.
|
|
2815
|
+
(b > 0 ? E > 0 ? w / X[h - E] : 0 : P[x - 1]) % 10 & 1 || u == (i.s < 0 ? 8 : 7)), l < 1 || !P[0])
|
|
2816
2816
|
return P.length = 0, y ? (l -= i.e + 1, P[0] = X[(ue - l % ue) % ue], i.e = -l || 0) : P[0] = i.e = 0, i;
|
|
2817
|
-
if (b == 0 ? (P.length = x, p = 1, x--) : (P.length = x + 1, p = X[ue - b], P[x] = E > 0 ? Xe(
|
|
2817
|
+
if (b == 0 ? (P.length = x, p = 1, x--) : (P.length = x + 1, p = X[ue - b], P[x] = E > 0 ? Xe(w / X[h - E] % X[E]) * p : 0), y)
|
|
2818
2818
|
for (; ; )
|
|
2819
2819
|
if (x == 0) {
|
|
2820
2820
|
for (b = 1, E = P[0]; E >= 10; E /= 10, b++) ;
|
|
@@ -2843,7 +2843,7 @@ function ls(e) {
|
|
|
2843
2843
|
}, r.decimalPlaces = r.dp = function(i, l) {
|
|
2844
2844
|
var u, y, h, b = this;
|
|
2845
2845
|
if (i != null)
|
|
2846
|
-
return De(i, 0, Ue), l == null ? l = c : De(l, 0, 8),
|
|
2846
|
+
return De(i, 0, Ue), l == null ? l = c : De(l, 0, 8), oe(new T(b), i + b.e + 1, l);
|
|
2847
2847
|
if (!(u = b.c)) return null;
|
|
2848
2848
|
if (y = ((h = u.length - 1) - Je(this.e / ue)) * ue, h = u[h]) for (; h % 10 == 0; h /= 10, y--) ;
|
|
2849
2849
|
return y < 0 && (y = 0), y;
|
|
@@ -2852,20 +2852,20 @@ function ls(e) {
|
|
|
2852
2852
|
}, r.dividedToIntegerBy = r.idiv = function(i, l) {
|
|
2853
2853
|
return t(this, new T(i, l), 0, 1);
|
|
2854
2854
|
}, r.exponentiatedBy = r.pow = function(i, l) {
|
|
2855
|
-
var u, y, h, b, E, p,
|
|
2855
|
+
var u, y, h, b, E, p, w, x, v, P = this;
|
|
2856
2856
|
if (i = new T(i), i.c && !i.isInteger())
|
|
2857
2857
|
throw Error(Le + "Exponent not an integer: " + Se(i));
|
|
2858
2858
|
if (l != null && (l = new T(l)), p = i.e > 14, !P.c || !P.c[0] || P.c[0] == 1 && !P.e && P.c.length == 1 || !i.c || !i.c[0])
|
|
2859
2859
|
return v = new T(Math.pow(+Se(P), p ? i.s * (2 - zt(i)) : +Se(i))), l ? v.mod(l) : v;
|
|
2860
|
-
if (
|
|
2860
|
+
if (w = i.s < 0, l) {
|
|
2861
2861
|
if (l.c ? !l.c[0] : !l.s) return new T(NaN);
|
|
2862
|
-
y = !
|
|
2862
|
+
y = !w && P.isInteger() && l.isInteger(), y && (P = P.mod(l));
|
|
2863
2863
|
} else {
|
|
2864
2864
|
if (i.e > 9 && (P.e > 0 || P.e < -1 || (P.e == 0 ? P.c[0] > 1 || p && P.c[1] >= 24e7 : P.c[0] < 8e13 || p && P.c[0] <= 9999975e7)))
|
|
2865
|
-
return b = P.s < 0 && zt(i) ? -0 : 0, P.e > -1 && (b = 1 / b), new T(
|
|
2865
|
+
return b = P.s < 0 && zt(i) ? -0 : 0, P.e > -1 && (b = 1 / b), new T(w ? 1 / b : b);
|
|
2866
2866
|
k && (b = ln(k / ue + 2));
|
|
2867
2867
|
}
|
|
2868
|
-
for (p ? (u = new T(0.5),
|
|
2868
|
+
for (p ? (u = new T(0.5), w && (i.s = 1), x = zt(i)) : (h = Math.abs(+Se(i)), x = h % 2), v = new T(o); ; ) {
|
|
2869
2869
|
if (x) {
|
|
2870
2870
|
if (v = v.times(P), !v.c) break;
|
|
2871
2871
|
b ? v.c.length > b && (v.c.length = b) : y && (v = v.mod(l));
|
|
@@ -2873,7 +2873,7 @@ function ls(e) {
|
|
|
2873
2873
|
if (h) {
|
|
2874
2874
|
if (h = Xe(h / 2), h === 0) break;
|
|
2875
2875
|
x = h % 2;
|
|
2876
|
-
} else if (i = i.times(u),
|
|
2876
|
+
} else if (i = i.times(u), oe(i, i.e + 1, 1), i.e > 14)
|
|
2877
2877
|
x = zt(i);
|
|
2878
2878
|
else {
|
|
2879
2879
|
if (h = +Se(i), h === 0) break;
|
|
@@ -2881,10 +2881,10 @@ function ls(e) {
|
|
|
2881
2881
|
}
|
|
2882
2882
|
P = P.times(P), b ? P.c && P.c.length > b && (P.c.length = b) : y && (P = P.mod(l));
|
|
2883
2883
|
}
|
|
2884
|
-
return y ? v : (
|
|
2884
|
+
return y ? v : (w && (v = o.div(v)), l ? v.mod(l) : b ? oe(v, k, c, E) : v);
|
|
2885
2885
|
}, r.integerValue = function(i) {
|
|
2886
2886
|
var l = new T(this);
|
|
2887
|
-
return i == null ? i = c : De(i, 0, 8),
|
|
2887
|
+
return i == null ? i = c : De(i, 0, 8), oe(l, l.e + 1, i);
|
|
2888
2888
|
}, r.isEqualTo = r.eq = function(i, l) {
|
|
2889
2889
|
return dt(this, new T(i, l)) === 0;
|
|
2890
2890
|
}, r.isFinite = function() {
|
|
@@ -2912,8 +2912,8 @@ function ls(e) {
|
|
|
2912
2912
|
if (i = new T(i, l), l = i.s, !p || !l) return new T(NaN);
|
|
2913
2913
|
if (p != l)
|
|
2914
2914
|
return i.s = -l, E.plus(i);
|
|
2915
|
-
var
|
|
2916
|
-
if (!
|
|
2915
|
+
var w = E.e / ue, x = i.e / ue, v = E.c, P = i.c;
|
|
2916
|
+
if (!w || !x) {
|
|
2917
2917
|
if (!v || !P) return v ? (i.s = -l, i) : new T(P ? E : NaN);
|
|
2918
2918
|
if (!v[0] || !P[0])
|
|
2919
2919
|
return P[0] ? (i.s = -l, i) : new T(v[0] ? E : (
|
|
@@ -2921,8 +2921,8 @@ function ls(e) {
|
|
|
2921
2921
|
c == 3 ? -0 : 0
|
|
2922
2922
|
));
|
|
2923
2923
|
}
|
|
2924
|
-
if (
|
|
2925
|
-
for ((b = p < 0) ? (p = -p, h = v) : (x =
|
|
2924
|
+
if (w = Je(w), x = Je(x), v = v.slice(), p = w - x) {
|
|
2925
|
+
for ((b = p < 0) ? (p = -p, h = v) : (x = w, h = P), h.reverse(), l = p; l--; h.push(0)) ;
|
|
2926
2926
|
h.reverse();
|
|
2927
2927
|
} else
|
|
2928
2928
|
for (y = (b = (p = v.length) < (l = P.length)) ? p : l, p = l = 0; l < y; l++)
|
|
@@ -2944,12 +2944,12 @@ function ls(e) {
|
|
|
2944
2944
|
var u, y, h = this;
|
|
2945
2945
|
return i = new T(i, l), !h.c || !i.s || i.c && !i.c[0] ? new T(NaN) : !i.c || h.c && !h.c[0] ? new T(h) : (I == 9 ? (y = i.s, i.s = 1, u = t(h, i, 0, 3), i.s = y, u.s *= y) : u = t(h, i, 0, I), i = h.minus(u.times(i)), !i.c[0] && I == 1 && (i.s = h.s), i);
|
|
2946
2946
|
}, r.multipliedBy = r.times = function(i, l) {
|
|
2947
|
-
var u, y, h, b, E, p,
|
|
2947
|
+
var u, y, h, b, E, p, w, x, v, P, X, K, pe, Ee, Ie, V = this, he = V.c, U = (i = new T(i, l)).c;
|
|
2948
2948
|
if (!he || !U || !he[0] || !U[0])
|
|
2949
|
-
return !
|
|
2950
|
-
for (y = Je(
|
|
2949
|
+
return !V.s || !i.s || he && !he[0] && !U || U && !U[0] && !he ? i.c = i.e = i.s = null : (i.s *= V.s, !he || !U ? i.c = i.e = null : (i.c = [0], i.e = 0)), i;
|
|
2950
|
+
for (y = Je(V.e / ue) + Je(i.e / ue), i.s *= V.s, w = he.length, P = U.length, w < P && (pe = he, he = U, U = pe, h = w, w = P, P = h), h = w + P, pe = []; h--; pe.push(0)) ;
|
|
2951
2951
|
for (Ee = je, Ie = rt, h = P; --h >= 0; ) {
|
|
2952
|
-
for (u = 0, X = U[h] % Ie, K = U[h] / Ie | 0, E =
|
|
2952
|
+
for (u = 0, X = U[h] % Ie, K = U[h] / Ie | 0, E = w, b = h + E; b > h; )
|
|
2953
2953
|
x = he[--E] % Ie, v = he[E] / Ie | 0, p = K * x + v * X, x = X * x + p % Ie * Ie + pe[b] + u, u = (x / Ee | 0) + (p / Ie | 0) + K * v, pe[b--] = x % Ee;
|
|
2954
2954
|
pe[b] = u;
|
|
2955
2955
|
}
|
|
@@ -2962,22 +2962,22 @@ function ls(e) {
|
|
|
2962
2962
|
if (i = new T(i, l), l = i.s, !h || !l) return new T(NaN);
|
|
2963
2963
|
if (h != l)
|
|
2964
2964
|
return i.s = -l, y.minus(i);
|
|
2965
|
-
var b = y.e / ue, E = i.e / ue, p = y.c,
|
|
2965
|
+
var b = y.e / ue, E = i.e / ue, p = y.c, w = i.c;
|
|
2966
2966
|
if (!b || !E) {
|
|
2967
|
-
if (!p || !
|
|
2968
|
-
if (!p[0] || !
|
|
2967
|
+
if (!p || !w) return new T(h / 0);
|
|
2968
|
+
if (!p[0] || !w[0]) return w[0] ? i : new T(p[0] ? y : h * 0);
|
|
2969
2969
|
}
|
|
2970
2970
|
if (b = Je(b), E = Je(E), p = p.slice(), h = b - E) {
|
|
2971
|
-
for (h > 0 ? (E = b, u =
|
|
2971
|
+
for (h > 0 ? (E = b, u = w) : (h = -h, u = p), u.reverse(); h--; u.push(0)) ;
|
|
2972
2972
|
u.reverse();
|
|
2973
2973
|
}
|
|
2974
|
-
for (h = p.length, l =
|
|
2975
|
-
h = (p[--l] = p[l] +
|
|
2974
|
+
for (h = p.length, l = w.length, h - l < 0 && (u = w, w = p, p = u, l = h), h = 0; l; )
|
|
2975
|
+
h = (p[--l] = p[l] + w[l] + h) / je | 0, p[l] = je === p[l] ? 0 : p[l] % je;
|
|
2976
2976
|
return h && (p = [h].concat(p), ++E), le(i, p, E);
|
|
2977
2977
|
}, r.precision = r.sd = function(i, l) {
|
|
2978
2978
|
var u, y, h, b = this;
|
|
2979
2979
|
if (i != null && i !== !!i)
|
|
2980
|
-
return De(i, 1, Ue), l == null ? l = c : De(l, 0, 8),
|
|
2980
|
+
return De(i, 1, Ue), l == null ? l = c : De(l, 0, 8), oe(new T(b), i, l);
|
|
2981
2981
|
if (!(u = b.c)) return null;
|
|
2982
2982
|
if (h = u.length - 1, y = h * ue + 1, h = u[h]) {
|
|
2983
2983
|
for (; h % 10 == 0; h /= 10, y--) ;
|
|
@@ -2987,63 +2987,63 @@ function ls(e) {
|
|
|
2987
2987
|
}, r.shiftedBy = function(i) {
|
|
2988
2988
|
return De(i, -dn, dn), this.times("1e" + i);
|
|
2989
2989
|
}, r.squareRoot = r.sqrt = function() {
|
|
2990
|
-
var i, l, u, y, h, b = this, E = b.c, p = b.s,
|
|
2990
|
+
var i, l, u, y, h, b = this, E = b.c, p = b.s, w = b.e, x = a + 4, v = new T("0.5");
|
|
2991
2991
|
if (p !== 1 || !E || !E[0])
|
|
2992
2992
|
return new T(!p || p < 0 && (!E || E[0]) ? NaN : E ? b : 1 / 0);
|
|
2993
|
-
if (p = Math.sqrt(+Se(b)), p == 0 || p == 1 / 0 ? (l = Ye(E), (l.length +
|
|
2994
|
-
for (
|
|
2993
|
+
if (p = Math.sqrt(+Se(b)), p == 0 || p == 1 / 0 ? (l = Ye(E), (l.length + w) % 2 == 0 && (l += "0"), p = Math.sqrt(+l), w = Je((w + 1) / 2) - (w < 0 || w % 2), p == 1 / 0 ? l = "5e" + w : (l = p.toExponential(), l = l.slice(0, l.indexOf("e") + 1) + w), u = new T(l)) : u = new T(p + ""), u.c[0]) {
|
|
2994
|
+
for (w = u.e, p = w + x, p < 3 && (p = 0); ; )
|
|
2995
2995
|
if (h = u, u = v.times(h.plus(t(b, h, x, 1))), Ye(h.c).slice(0, p) === (l = Ye(u.c)).slice(0, p))
|
|
2996
|
-
if (u.e <
|
|
2997
|
-
if (!y && (
|
|
2996
|
+
if (u.e < w && --p, l = l.slice(p - 3, p + 1), l == "9999" || !y && l == "4999") {
|
|
2997
|
+
if (!y && (oe(h, h.e + a + 2, 0), h.times(h).eq(b))) {
|
|
2998
2998
|
u = h;
|
|
2999
2999
|
break;
|
|
3000
3000
|
}
|
|
3001
3001
|
x += 4, p += 4, y = 1;
|
|
3002
3002
|
} else {
|
|
3003
|
-
(!+l || !+l.slice(1) && l.charAt(0) == "5") && (
|
|
3003
|
+
(!+l || !+l.slice(1) && l.charAt(0) == "5") && (oe(u, u.e + a + 2, 1), i = !u.times(u).eq(b));
|
|
3004
3004
|
break;
|
|
3005
3005
|
}
|
|
3006
3006
|
}
|
|
3007
|
-
return
|
|
3007
|
+
return oe(u, u.e + a + 1, c, i);
|
|
3008
3008
|
}, r.toExponential = function(i, l) {
|
|
3009
|
-
return i != null && (De(i, 0, Ue), i++),
|
|
3009
|
+
return i != null && (De(i, 0, Ue), i++), H(this, i, l, 1);
|
|
3010
3010
|
}, r.toFixed = function(i, l) {
|
|
3011
|
-
return i != null && (De(i, 0, Ue), i = i + this.e + 1),
|
|
3011
|
+
return i != null && (De(i, 0, Ue), i = i + this.e + 1), H(this, i, l);
|
|
3012
3012
|
}, r.toFormat = function(i, l, u) {
|
|
3013
3013
|
var y, h = this;
|
|
3014
3014
|
if (u == null)
|
|
3015
|
-
i != null && l && typeof l == "object" ? (u = l, l = null) : i && typeof i == "object" ? (u = i, i = l = null) : u =
|
|
3015
|
+
i != null && l && typeof l == "object" ? (u = l, l = null) : i && typeof i == "object" ? (u = i, i = l = null) : u = m;
|
|
3016
3016
|
else if (typeof u != "object")
|
|
3017
3017
|
throw Error(Le + "Argument not an object: " + u);
|
|
3018
3018
|
if (y = h.toFixed(i, l), h.c) {
|
|
3019
|
-
var b, E = y.split("."), p = +u.groupSize,
|
|
3020
|
-
if (
|
|
3019
|
+
var b, E = y.split("."), p = +u.groupSize, w = +u.secondaryGroupSize, x = u.groupSeparator || "", v = E[0], P = E[1], X = h.s < 0, K = X ? v.slice(1) : v, pe = K.length;
|
|
3020
|
+
if (w && (b = p, p = w, w = b, pe -= b), p > 0 && pe > 0) {
|
|
3021
3021
|
for (b = pe % p || p, v = K.substr(0, b); b < pe; b += p) v += x + K.substr(b, p);
|
|
3022
|
-
|
|
3022
|
+
w > 0 && (v += x + K.slice(b)), X && (v = "-" + v);
|
|
3023
3023
|
}
|
|
3024
|
-
y = P ? v + (u.decimalSeparator || "") + ((
|
|
3025
|
-
new RegExp("\\d{" +
|
|
3024
|
+
y = P ? v + (u.decimalSeparator || "") + ((w = +u.fractionGroupSize) ? P.replace(
|
|
3025
|
+
new RegExp("\\d{" + w + "}\\B", "g"),
|
|
3026
3026
|
"$&" + (u.fractionGroupSeparator || "")
|
|
3027
3027
|
) : P) : v;
|
|
3028
3028
|
}
|
|
3029
3029
|
return (u.prefix || "") + y + (u.suffix || "");
|
|
3030
3030
|
}, r.toFraction = function(i) {
|
|
3031
|
-
var l, u, y, h, b, E, p,
|
|
3031
|
+
var l, u, y, h, b, E, p, w, x, v, P, X, K = this, pe = K.c;
|
|
3032
3032
|
if (i != null && (p = new T(i), !p.isInteger() && (p.c || p.s !== 1) || p.lt(o)))
|
|
3033
3033
|
throw Error(Le + "Argument " + (p.isInteger() ? "out of range: " : "not an integer: ") + Se(p));
|
|
3034
3034
|
if (!pe) return new T(K);
|
|
3035
|
-
for (l = new T(o), x = u = new T(o), y =
|
|
3036
|
-
u = y, y = h, x =
|
|
3037
|
-
return h = t(i.minus(u), y, 0, 1),
|
|
3038
|
-
t(
|
|
3039
|
-
) < 1 ? [x, y] : [
|
|
3035
|
+
for (l = new T(o), x = u = new T(o), y = w = new T(o), X = Ye(pe), b = l.e = X.length - K.e - 1, l.c[0] = un[(E = b % ue) < 0 ? ue + E : E], i = !i || p.comparedTo(l) > 0 ? b > 0 ? l : x : p, E = F, F = 1 / 0, p = new T(X), w.c[0] = 0; v = t(p, l, 0, 1), h = u.plus(v.times(y)), h.comparedTo(i) != 1; )
|
|
3036
|
+
u = y, y = h, x = w.plus(v.times(h = x)), w = h, l = p.minus(v.times(h = l)), p = h;
|
|
3037
|
+
return h = t(i.minus(u), y, 0, 1), w = w.plus(h.times(x)), u = u.plus(h.times(y)), w.s = x.s = K.s, b = b * 2, P = t(x, y, b, c).minus(K).abs().comparedTo(
|
|
3038
|
+
t(w, u, b, c).minus(K).abs()
|
|
3039
|
+
) < 1 ? [x, y] : [w, u], F = E, P;
|
|
3040
3040
|
}, r.toNumber = function() {
|
|
3041
3041
|
return +Se(this);
|
|
3042
3042
|
}, r.toPrecision = function(i, l) {
|
|
3043
|
-
return i != null && De(i, 1, Ue),
|
|
3043
|
+
return i != null && De(i, 1, Ue), H(this, i, l, 2);
|
|
3044
3044
|
}, r.toString = function(i) {
|
|
3045
3045
|
var l, u = this, y = u.s, h = u.e;
|
|
3046
|
-
return h === null ? y ? (l = "Infinity", y < 0 && (l = "-" + l)) : l = "NaN" : (i == null ? l = h <= S || h >= B ? Vt(Ye(u.c), h) : $e(Ye(u.c), h, "0") : i === 10 &&
|
|
3046
|
+
return h === null ? y ? (l = "Infinity", y < 0 && (l = "-" + l)) : l = "NaN" : (i == null ? l = h <= S || h >= B ? Vt(Ye(u.c), h) : $e(Ye(u.c), h, "0") : i === 10 && re ? (u = oe(new T(u), a + h + 1, c), l = $e(Ye(u.c), u.e, "0")) : (De(i, 2, C.length, "Base"), l = n($e(Ye(u.c), h, "0"), 10, i, y, !0)), y < 0 && u.c[0] && (l = "-" + l)), l;
|
|
3047
3047
|
}, r.valueOf = r.toJSON = function() {
|
|
3048
3048
|
return Se(this);
|
|
3049
3049
|
}, r._isBigNumber = !0, r[Symbol.toStringTag] = "BigNumber", r[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = r.valueOf, e != null && T.set(e), T;
|
|
@@ -3612,14 +3612,16 @@ const tc = ({ content: e }) => {
|
|
|
3612
3612
|
type: "address",
|
|
3613
3613
|
placeholder: "0x... token contract",
|
|
3614
3614
|
required: !0,
|
|
3615
|
-
validation: "address"
|
|
3615
|
+
validation: "address",
|
|
3616
|
+
editable: !1
|
|
3616
3617
|
},
|
|
3617
3618
|
{
|
|
3618
3619
|
key: "token_symbol",
|
|
3619
3620
|
label: "Token Symbol",
|
|
3620
3621
|
type: "text",
|
|
3621
3622
|
placeholder: "e.g. USDC",
|
|
3622
|
-
required: !1
|
|
3623
|
+
required: !1,
|
|
3624
|
+
editable: !1
|
|
3623
3625
|
},
|
|
3624
3626
|
{
|
|
3625
3627
|
key: "to_address",
|
|
@@ -3642,7 +3644,8 @@ const tc = ({ content: e }) => {
|
|
|
3642
3644
|
label: "Decimals",
|
|
3643
3645
|
type: "number",
|
|
3644
3646
|
placeholder: "18",
|
|
3645
|
-
required: !1
|
|
3647
|
+
required: !1,
|
|
3648
|
+
editable: !1
|
|
3646
3649
|
}
|
|
3647
3650
|
]
|
|
3648
3651
|
},
|
|
@@ -3655,42 +3658,48 @@ const tc = ({ content: e }) => {
|
|
|
3655
3658
|
label: "From Token",
|
|
3656
3659
|
type: "address",
|
|
3657
3660
|
placeholder: "0x... or native",
|
|
3658
|
-
required: !0
|
|
3661
|
+
required: !0,
|
|
3662
|
+
editable: !1
|
|
3659
3663
|
},
|
|
3660
3664
|
{
|
|
3661
3665
|
key: "token_in_symbol",
|
|
3662
3666
|
label: "From Symbol",
|
|
3663
3667
|
type: "text",
|
|
3664
3668
|
placeholder: "e.g. ETH",
|
|
3665
|
-
required: !1
|
|
3669
|
+
required: !1,
|
|
3670
|
+
editable: !1
|
|
3666
3671
|
},
|
|
3667
3672
|
{
|
|
3668
3673
|
key: "token_out",
|
|
3669
3674
|
label: "To Token",
|
|
3670
3675
|
type: "address",
|
|
3671
3676
|
placeholder: "0x...",
|
|
3672
|
-
required: !0
|
|
3677
|
+
required: !0,
|
|
3678
|
+
editable: !1
|
|
3673
3679
|
},
|
|
3674
3680
|
{
|
|
3675
3681
|
key: "token_out_symbol",
|
|
3676
3682
|
label: "To Symbol",
|
|
3677
3683
|
type: "text",
|
|
3678
3684
|
placeholder: "e.g. USDC",
|
|
3679
|
-
required: !1
|
|
3685
|
+
required: !1,
|
|
3686
|
+
editable: !1
|
|
3680
3687
|
},
|
|
3681
3688
|
{
|
|
3682
3689
|
key: "token_in_decimals",
|
|
3683
3690
|
label: "From Decimals",
|
|
3684
3691
|
type: "number",
|
|
3685
3692
|
placeholder: "18",
|
|
3686
|
-
required: !1
|
|
3693
|
+
required: !1,
|
|
3694
|
+
editable: !1
|
|
3687
3695
|
},
|
|
3688
3696
|
{
|
|
3689
3697
|
key: "token_out_decimals",
|
|
3690
3698
|
label: "To Decimals",
|
|
3691
3699
|
type: "number",
|
|
3692
3700
|
placeholder: "18",
|
|
3693
|
-
required: !1
|
|
3701
|
+
required: !1,
|
|
3702
|
+
editable: !1
|
|
3694
3703
|
},
|
|
3695
3704
|
{
|
|
3696
3705
|
key: "amount",
|
|
@@ -3712,14 +3721,16 @@ const tc = ({ content: e }) => {
|
|
|
3712
3721
|
type: "address",
|
|
3713
3722
|
placeholder: "0x... token contract",
|
|
3714
3723
|
required: !0,
|
|
3715
|
-
validation: "address"
|
|
3724
|
+
validation: "address",
|
|
3725
|
+
editable: !1
|
|
3716
3726
|
},
|
|
3717
3727
|
{
|
|
3718
3728
|
key: "token_symbol",
|
|
3719
3729
|
label: "Token Symbol",
|
|
3720
3730
|
type: "text",
|
|
3721
3731
|
placeholder: "e.g. USDC",
|
|
3722
|
-
required: !1
|
|
3732
|
+
required: !1,
|
|
3733
|
+
editable: !1
|
|
3723
3734
|
},
|
|
3724
3735
|
{
|
|
3725
3736
|
key: "spender_address",
|
|
@@ -3727,7 +3738,8 @@ const tc = ({ content: e }) => {
|
|
|
3727
3738
|
type: "address",
|
|
3728
3739
|
placeholder: "0x... spender contract",
|
|
3729
3740
|
required: !0,
|
|
3730
|
-
validation: "address"
|
|
3741
|
+
validation: "address",
|
|
3742
|
+
editable: !1
|
|
3731
3743
|
},
|
|
3732
3744
|
{
|
|
3733
3745
|
key: "amount",
|
|
@@ -3742,7 +3754,8 @@ const tc = ({ content: e }) => {
|
|
|
3742
3754
|
label: "Decimals",
|
|
3743
3755
|
type: "number",
|
|
3744
3756
|
placeholder: "18",
|
|
3745
|
-
required: !1
|
|
3757
|
+
required: !1,
|
|
3758
|
+
editable: !1
|
|
3746
3759
|
}
|
|
3747
3760
|
]
|
|
3748
3761
|
},
|
|
@@ -3784,14 +3797,16 @@ const tc = ({ content: e }) => {
|
|
|
3784
3797
|
type: "address",
|
|
3785
3798
|
placeholder: "0x... NFT contract",
|
|
3786
3799
|
required: !0,
|
|
3787
|
-
validation: "address"
|
|
3800
|
+
validation: "address",
|
|
3801
|
+
editable: !1
|
|
3788
3802
|
},
|
|
3789
3803
|
{
|
|
3790
3804
|
key: "token_id",
|
|
3791
3805
|
label: "Token ID",
|
|
3792
3806
|
type: "text",
|
|
3793
3807
|
placeholder: "e.g. 1234",
|
|
3794
|
-
required: !0
|
|
3808
|
+
required: !0,
|
|
3809
|
+
editable: !1
|
|
3795
3810
|
},
|
|
3796
3811
|
{
|
|
3797
3812
|
key: "to_address",
|
|
@@ -3806,7 +3821,8 @@ const tc = ({ content: e }) => {
|
|
|
3806
3821
|
label: "Token Standard",
|
|
3807
3822
|
type: "text",
|
|
3808
3823
|
placeholder: "ERC721 or ERC1155",
|
|
3809
|
-
required: !0
|
|
3824
|
+
required: !0,
|
|
3825
|
+
editable: !1
|
|
3810
3826
|
},
|
|
3811
3827
|
{
|
|
3812
3828
|
key: "amount",
|
|
@@ -3850,51 +3866,51 @@ const sc = {
|
|
|
3850
3866
|
}) => {
|
|
3851
3867
|
const a = nc[e], [c, S] = Ve(() => {
|
|
3852
3868
|
if (!a) return {};
|
|
3853
|
-
const
|
|
3869
|
+
const m = {};
|
|
3854
3870
|
return a.fields.forEach((C) => {
|
|
3855
|
-
|
|
3856
|
-
}),
|
|
3871
|
+
m[C.key] = t[C.key] || "";
|
|
3872
|
+
}), m;
|
|
3857
3873
|
}), [B] = Ve(() => ["send_native", "send_token", "swap_token"].includes(
|
|
3858
3874
|
e
|
|
3859
3875
|
) && !o && c.contract_address ? "Token not found in your wallet." : null), [D, F] = Ve(() => {
|
|
3860
|
-
const
|
|
3876
|
+
const m = {};
|
|
3861
3877
|
if (["send_native", "send_token", "swap_token"].includes(
|
|
3862
3878
|
e
|
|
3863
3879
|
) && o) {
|
|
3864
|
-
const
|
|
3865
|
-
if (
|
|
3866
|
-
|
|
3880
|
+
const re = parseFloat(o.balanceFormatted || "0");
|
|
3881
|
+
if (re <= 0)
|
|
3882
|
+
m.amount = `You have no ${o.symbol} balance in your wallet.`;
|
|
3867
3883
|
else {
|
|
3868
3884
|
const T = t.amount?.trim();
|
|
3869
|
-
T && pn(T) && parseFloat(T) >
|
|
3885
|
+
T && pn(T) && parseFloat(T) > re && (m.amount = `Insufficient balance. Available: ${o.balanceFormatted} ${o.symbol}`);
|
|
3870
3886
|
}
|
|
3871
3887
|
}
|
|
3872
|
-
return
|
|
3888
|
+
return m;
|
|
3873
3889
|
}), g = Pe(
|
|
3874
|
-
(
|
|
3875
|
-
S((
|
|
3876
|
-
const T = { ...
|
|
3877
|
-
return delete T[
|
|
3890
|
+
(m, C) => {
|
|
3891
|
+
S((re) => ({ ...re, [m]: C })), D[m] && F((re) => {
|
|
3892
|
+
const T = { ...re };
|
|
3893
|
+
return delete T[m], T;
|
|
3878
3894
|
});
|
|
3879
3895
|
},
|
|
3880
3896
|
[D]
|
|
3881
3897
|
), I = Pe(() => {
|
|
3882
3898
|
if (!a) return !1;
|
|
3883
|
-
const
|
|
3899
|
+
const m = {};
|
|
3884
3900
|
return a.fields.forEach((C) => {
|
|
3885
|
-
const
|
|
3886
|
-
if (C.required && !
|
|
3887
|
-
|
|
3901
|
+
const re = c[C.key]?.trim() || "";
|
|
3902
|
+
if (C.required && !re) {
|
|
3903
|
+
m[C.key] = `${C.label} is required`;
|
|
3888
3904
|
return;
|
|
3889
3905
|
}
|
|
3890
|
-
if (
|
|
3891
|
-
if (C.validation === "address" && !rc(
|
|
3892
|
-
const T = parseFloat(
|
|
3893
|
-
T >
|
|
3906
|
+
if (re) {
|
|
3907
|
+
if (C.validation === "address" && !rc(re) && (m[C.key] = "Invalid address (0x + 40 hex chars)"), C.validation === "amount" && !pn(re) && (m[C.key] = "Must be a positive number"), C.key === "amount" && re && pn(re) && o?.balanceFormatted) {
|
|
3908
|
+
const T = parseFloat(re), H = parseFloat(o.balanceFormatted);
|
|
3909
|
+
T > H && (m[C.key] = `Insufficient balance. Available: ${o.balanceFormatted} ${o.symbol}`);
|
|
3894
3910
|
}
|
|
3895
|
-
C.validation === "positive_number" && (isNaN(Number(
|
|
3911
|
+
C.validation === "positive_number" && (isNaN(Number(re)) || Number(re) < 0) && (m[C.key] = "Must be a valid number");
|
|
3896
3912
|
}
|
|
3897
|
-
}), F(
|
|
3913
|
+
}), F(m), Object.keys(m).length === 0;
|
|
3898
3914
|
}, [a, c, o]), k = Pe(() => {
|
|
3899
3915
|
I() && n(e, c);
|
|
3900
3916
|
}, [I, n, e, c]);
|
|
@@ -3939,13 +3955,13 @@ const sc = {
|
|
|
3939
3955
|
] })
|
|
3940
3956
|
] })
|
|
3941
3957
|
] }) }),
|
|
3942
|
-
/* @__PURE__ */ R("div", { className: "action-form-fields", children: a.fields.map((
|
|
3958
|
+
/* @__PURE__ */ R("div", { className: "action-form-fields", children: a.fields.map((m) => m.key === "amount" && e === "send_nft" && c.token_standard?.toUpperCase() !== "ERC1155" ? null : /* @__PURE__ */ Ae("div", { className: "action-form-field", children: [
|
|
3943
3959
|
/* @__PURE__ */ Ae("div", { className: "action-form-field-header", children: [
|
|
3944
3960
|
/* @__PURE__ */ Ae("label", { children: [
|
|
3945
|
-
|
|
3946
|
-
|
|
3961
|
+
m.label,
|
|
3962
|
+
m.required && " *"
|
|
3947
3963
|
] }),
|
|
3948
|
-
|
|
3964
|
+
m.key === "amount" && o && e !== "send_nft" && /* @__PURE__ */ Ae("div", { className: "action-form-pct-btns", children: [
|
|
3949
3965
|
[25, 50, 75].map((C) => /* @__PURE__ */ Ae(
|
|
3950
3966
|
"button",
|
|
3951
3967
|
{
|
|
@@ -3975,19 +3991,35 @@ const sc = {
|
|
|
3975
3991
|
)
|
|
3976
3992
|
] })
|
|
3977
3993
|
] }),
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3994
|
+
(() => {
|
|
3995
|
+
const C = m.editable === !1 && !!t[m.key], re = r || C, T = [
|
|
3996
|
+
D[m.key] ? "error" : "",
|
|
3997
|
+
C ? "readonly" : ""
|
|
3998
|
+
].filter(Boolean).join(" ");
|
|
3999
|
+
return m.type === "address" ? /* @__PURE__ */ R(
|
|
4000
|
+
"textarea",
|
|
4001
|
+
{
|
|
4002
|
+
rows: 2,
|
|
4003
|
+
placeholder: m.placeholder,
|
|
4004
|
+
value: c[m.key] || "",
|
|
4005
|
+
onChange: (H) => g(m.key, H.target.value),
|
|
4006
|
+
className: T,
|
|
4007
|
+
disabled: re
|
|
4008
|
+
}
|
|
4009
|
+
) : /* @__PURE__ */ R(
|
|
4010
|
+
"input",
|
|
4011
|
+
{
|
|
4012
|
+
type: m.type === "number" ? "number" : "text",
|
|
4013
|
+
placeholder: m.placeholder,
|
|
4014
|
+
value: c[m.key] || "",
|
|
4015
|
+
onChange: (H) => g(m.key, H.target.value),
|
|
4016
|
+
className: T,
|
|
4017
|
+
disabled: re
|
|
4018
|
+
}
|
|
4019
|
+
);
|
|
4020
|
+
})(),
|
|
4021
|
+
D[m.key] && /* @__PURE__ */ R("span", { className: "field-error", children: D[m.key] })
|
|
4022
|
+
] }, m.key)) }),
|
|
3991
4023
|
/* @__PURE__ */ Ae("div", { className: "action-form-actions", children: [
|
|
3992
4024
|
/* @__PURE__ */ R(
|
|
3993
4025
|
"button",
|
|
@@ -4013,7 +4045,7 @@ const sc = {
|
|
|
4013
4045
|
] }) : null;
|
|
4014
4046
|
}, ic = ({
|
|
4015
4047
|
scrollContainerRef: e,
|
|
4016
|
-
threshold: t =
|
|
4048
|
+
threshold: t = 200
|
|
4017
4049
|
}) => {
|
|
4018
4050
|
const [n, s] = Ve(!1);
|
|
4019
4051
|
et(() => {
|
|
@@ -4160,17 +4192,18 @@ You have comprehensive, precise knowledge of token contract addresses on ALL maj
|
|
|
4160
4192
|
4. For "chat" action, put your full response in the "message" field
|
|
4161
4193
|
5. **CRITICAL**: contract_address is a REQUIRED field — ALWAYS provide the ACTUAL contract address on chainId ${s}. NEVER leave it empty. You must know the correct addresses for common tokens (USDC, USDT, DAI, WETH, LINK, UNI, AAVE, etc.) on major chains. If a token does not exist on this chain, inform the user instead of proceeding. Be especially careful with tokens that are native to other chains (e.g., BNB is BSC native — if user asks to buy BNB on OP Mainnet, inform them it may not be available as an ERC20 on this chain).
|
|
4162
4194
|
6. **IMPORTANT**: ALWAYS provide accurate decimals for each token. This is CRITICAL for accurate transaction amounts.
|
|
4163
|
-
7.
|
|
4164
|
-
8. For
|
|
4165
|
-
9.
|
|
4166
|
-
10.
|
|
4167
|
-
11.
|
|
4168
|
-
12.
|
|
4169
|
-
13.
|
|
4170
|
-
14.
|
|
4171
|
-
15.
|
|
4172
|
-
16.
|
|
4173
|
-
17. **CRITICAL -
|
|
4195
|
+
7. **IMPORTANT**: ALWAYS provide accurate token_symbol for each token. Even if the user only provides a contract address without naming the token, you MUST identify the token from the address and fill in token_symbol and decimals. For example: if user provides "0x4200000000000000000000000000000000000006" on OP/Base, you know it is WETH with decimals 18 — fill in token_symbol:"WETH" and decimals:"18". You have comprehensive knowledge of well-known token contract addresses — use it to populate all fields.
|
|
4196
|
+
8. For amounts, use the exact number the user mentioned (don't convert units)
|
|
4197
|
+
9. For native token sends, use "send_native" not "send_token"
|
|
4198
|
+
10. Respond in the same language the user uses
|
|
4199
|
+
11. ALWAYS respond with raw JSON only, never wrap in \`\`\`json code blocks
|
|
4200
|
+
12. For swap_token: token_in for native tokens must be "native". ALWAYS provide token_in_symbol, token_out_symbol, token_in_decimals, and token_out_decimals.
|
|
4201
|
+
13. Use CONVERSATION HISTORY to maintain context. If user says "do it again" or "same but with X", refer to previous messages to understand what they mean.
|
|
4202
|
+
14. For general/non-crypto questions, respond naturally and helpfully using the "chat" action. You are NOT limited to crypto topics only.
|
|
4203
|
+
15. ONLY trigger wallet actions (send_native, send_token, swap_token, buy_token, approve_token, wrap_native, unwrap_native, send_nft) when the user EXPLICITLY requests a crypto/wallet operation. Do NOT misinterpret general conversation as wallet actions.
|
|
4204
|
+
16. When your "chat" response mentions, lists, or discusses specific tokens (e.g., trending tokens, token details, recommendations, price info), you MUST include "token_mentions" array so the app can show Buy buttons for each token. Always include token_mentions as an array (empty [] if no tokens mentioned).
|
|
4205
|
+
17. **CRITICAL - ONE RESPONSE RULE**: When user requests a wallet operation (swap, send, buy, approve, wrap, unwrap, send NFT), return ONLY ONE JSON response with that action type. DO NOT return multiple responses. DO NOT return a "chat" action first and then the wallet action. If you need to explain something, put it in the "message" field of the wallet action itself. Example: User says "swap 0.01 DAI to USDC" → Return ONLY {"action":"swap_token","message":"Swapping 0.01 DAI to USDC...","parameters":{...}}. Do NOT return {"action":"chat",...} first.
|
|
4206
|
+
18. **CRITICAL - TOKEN CONTRACT ADDRESSES**: You MUST provide the CORRECT and ACCURATE contract address for each token on the CURRENT chain (chainId: ${s}). You have deep knowledge of token contract addresses across all major chains (Ethereum, Optimism, Arbitrum, Base, Polygon, BSC, etc.). ALWAYS verify you are using the correct address for the current chainId. DO NOT use addresses from other chains. For common tokens like USDC, USDT, DAI, WETH, each chain has different contract addresses - you MUST use the correct one for chainId ${s}.
|
|
4174
4207
|
|
|
4175
4208
|
## EXAMPLES:
|
|
4176
4209
|
|
|
@@ -4180,6 +4213,9 @@ Response: {"action":"send_native","message":"<friendly explanation>","parameters
|
|
|
4180
4213
|
User: "transfer 100 USDC"
|
|
4181
4214
|
Response: {"action":"send_token","message":"<friendly explanation>","parameters":{"contract_address":"<actual USDC address on current chain>","token_symbol":"USDC","to_address":"","amount":"100","decimals":"6"}}
|
|
4182
4215
|
|
|
4216
|
+
User: "send 0x4200000000000000000000000000000000000006 to 0xABC..."
|
|
4217
|
+
Response: {"action":"send_token","message":"<friendly explanation>","parameters":{"contract_address":"0x4200000000000000000000000000000000000006","token_symbol":"WETH","to_address":"0xABC...","amount":"","decimals":"18"}}
|
|
4218
|
+
|
|
4183
4219
|
User: "swap 1 ETH to USDC"
|
|
4184
4220
|
Response: {"action":"swap_token","message":"<friendly explanation>","parameters":{"token_in":"native","token_in_symbol":"${r}","token_in_decimals":"18","token_out":"<actual USDC address on current chain>","token_out_symbol":"USDC","token_out_decimals":"6","amount":"1"}}
|
|
4185
4221
|
|
|
@@ -4518,61 +4554,61 @@ var Q = {}, Dt = { exports: {} }, yc = Dt.exports, kr;
|
|
|
4518
4554
|
function Ac() {
|
|
4519
4555
|
return kr || (kr = 1, (function(e, t) {
|
|
4520
4556
|
(function(n, s) {
|
|
4521
|
-
var r = "1.0.41", o = "", a = "?", c = "function", S = "undefined", B = "object", D = "string", F = "major", g = "model", I = "name", k = "type",
|
|
4522
|
-
var
|
|
4523
|
-
for (var be in
|
|
4524
|
-
fe[be] && fe[be].length % 2 === 0 ?
|
|
4525
|
-
return
|
|
4526
|
-
}, de = function(
|
|
4527
|
-
for (var fe = {},
|
|
4528
|
-
fe[
|
|
4557
|
+
var r = "1.0.41", o = "", a = "?", c = "function", S = "undefined", B = "object", D = "string", F = "major", g = "model", I = "name", k = "type", m = "vendor", C = "version", re = "architecture", T = "console", H = "mobile", j = "tablet", le = "smarttv", oe = "wearable", Se = "embedded", i = 500, l = "Amazon", u = "Apple", y = "ASUS", h = "BlackBerry", b = "Browser", E = "Chrome", p = "Edge", w = "Firefox", x = "Google", v = "Honor", P = "Huawei", X = "Lenovo", K = "LG", pe = "Microsoft", Ee = "Motorola", Ie = "Nvidia", V = "OnePlus", he = "Opera", U = "OPPO", J = "Samsung", z = "Sharp", Z = "Sony", Y = "Xiaomi", W = "Zebra", L = "Facebook", _ = "Chromium OS", G = "Mac OS", O = " Browser", te = function(se, fe) {
|
|
4558
|
+
var ie = {};
|
|
4559
|
+
for (var be in se)
|
|
4560
|
+
fe[be] && fe[be].length % 2 === 0 ? ie[be] = fe[be].concat(se[be]) : ie[be] = se[be];
|
|
4561
|
+
return ie;
|
|
4562
|
+
}, de = function(se) {
|
|
4563
|
+
for (var fe = {}, ie = 0; ie < se.length; ie++)
|
|
4564
|
+
fe[se[ie].toUpperCase()] = se[ie];
|
|
4529
4565
|
return fe;
|
|
4530
|
-
}, ge = function(
|
|
4531
|
-
return typeof
|
|
4532
|
-
}, ve = function(
|
|
4533
|
-
return
|
|
4534
|
-
},
|
|
4535
|
-
return typeof
|
|
4536
|
-
}, $ = function(
|
|
4537
|
-
if (typeof
|
|
4538
|
-
return
|
|
4539
|
-
}, ee = function(
|
|
4540
|
-
for (var
|
|
4541
|
-
var gt = fe[
|
|
4566
|
+
}, ge = function(se, fe) {
|
|
4567
|
+
return typeof se === D ? ve(fe).indexOf(ve(se)) !== -1 : !1;
|
|
4568
|
+
}, ve = function(se) {
|
|
4569
|
+
return se.toLowerCase();
|
|
4570
|
+
}, q = function(se) {
|
|
4571
|
+
return typeof se === D ? se.replace(/[^\d\.]/g, o).split(".")[0] : s;
|
|
4572
|
+
}, $ = function(se, fe) {
|
|
4573
|
+
if (typeof se === D)
|
|
4574
|
+
return se = se.replace(/^\s\s*/, o), typeof fe === S ? se : se.substring(0, i);
|
|
4575
|
+
}, ee = function(se, fe) {
|
|
4576
|
+
for (var ie = 0, be, We, Re, xe, ce, ze; ie < fe.length && !ce; ) {
|
|
4577
|
+
var gt = fe[ie], Tt = fe[ie + 1];
|
|
4542
4578
|
for (be = We = 0; be < gt.length && !ce && gt[be]; )
|
|
4543
|
-
if (ce = gt[be++].exec(
|
|
4579
|
+
if (ce = gt[be++].exec(se), ce)
|
|
4544
4580
|
for (Re = 0; Re < Tt.length; Re++)
|
|
4545
4581
|
ze = ce[++We], xe = Tt[Re], typeof xe === B && xe.length > 0 ? xe.length === 2 ? typeof xe[1] == c ? this[xe[0]] = xe[1].call(this, ze) : this[xe[0]] = xe[1] : xe.length === 3 ? typeof xe[1] === c && !(xe[1].exec && xe[1].test) ? this[xe[0]] = ze ? xe[1].call(this, ze, xe[2]) : s : this[xe[0]] = ze ? ze.replace(xe[1], xe[2]) : s : xe.length === 4 && (this[xe[0]] = ze ? xe[3].call(this, ze.replace(xe[1], xe[2])) : s) : this[xe] = ze || s;
|
|
4546
|
-
|
|
4582
|
+
ie += 2;
|
|
4547
4583
|
}
|
|
4548
|
-
}, ae = function(
|
|
4549
|
-
for (var
|
|
4550
|
-
if (typeof fe[
|
|
4551
|
-
for (var be = 0; be < fe[
|
|
4552
|
-
if (ge(fe[
|
|
4553
|
-
return
|
|
4554
|
-
} else if (ge(fe[
|
|
4555
|
-
return
|
|
4556
|
-
return fe.hasOwnProperty("*") ? fe["*"] :
|
|
4557
|
-
}, Te = { "1.0": "/8", 1.2: "/1", 1.3: "/3", "2.0": "/412", "2.0.2": "/416", "2.0.3": "/417", "2.0.4": "/419", "?": "/" }, Me = { 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" }, ne = { browser: [[/\b(?:crmo|crios)\/([\w\.]+)/i], [C, [I, "Chrome"]], [/edg(?:e|ios|a)?\/([\w\.]+)/i], [C, [I, "Edge"]], [/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i], [I, C], [/opios[\/ ]+([\w\.]+)/i], [C, [I, he + " Mini"]], [/\bop(?:rg)?x\/([\w\.]+)/i], [C, [I, he + " GX"]], [/\bopr\/([\w\.]+)/i], [C, [I, he]], [/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i], [C, [I, "Baidu"]], [/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i], [C, [I, "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], [I, C], [/quark(?:pc)?\/([-\w\.]+)/i], [C, [I, "Quark"]], [/\bddg\/([\w\.]+)/i], [C, [I, "DuckDuckGo"]], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], [C, [I, "UC" + b]], [/microm.+\bqbcore\/([\w\.]+)/i, /\bqbcore\/([\w\.]+).+microm/i, /micromessenger\/([\w\.]+)/i], [C, [I, "WeChat"]], [/konqueror\/([\w\.]+)/i], [C, [I, "Konqueror"]], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], [C, [I, "IE"]], [/ya(?:search)?browser\/([\w\.]+)/i], [C, [I, "Yandex"]], [/slbrowser\/([\w\.]+)/i], [C, [I, "Smart Lenovo " + b]], [/(avast|avg)\/([\w\.]+)/i], [[I, /(.+)/, "$1 Secure " + b], C], [/\bfocus\/([\w\.]+)/i], [C, [I, m + " Focus"]], [/\bopt\/([\w\.]+)/i], [C, [I, he + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [C, [I, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [C, [I, "Dolphin"]], [/coast\/([\w\.]+)/i], [C, [I, he + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [C, [I, "MIUI" + O]], [/fxios\/([\w\.-]+)/i], [C, [I, m]], [/\bqihoobrowser\/?([\w\.]*)/i], [C, [I, "360"]], [/\b(qq)\/([\w\.]+)/i], [[I, /(.+)/, "$1Browser"], C], [/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i], [[I, /(.+)/, "$1" + O], C], [/samsungbrowser\/([\w\.]+)/i], [C, [I, J + " Internet"]], [/metasr[\/ ]?([\d\.]+)/i], [C, [I, "Sogou Explorer"]], [/(sogou)mo\w+\/([\d\.]+)/i], [[I, "Sogou Mobile"], C], [/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i], [I, C], [/(lbbrowser|rekonq)/i, /\[(linkedin)app\]/i], [I], [/ome\/([\w\.]+) \w* ?(iron) saf/i, /ome\/([\w\.]+).+qihu (360)[es]e/i], [C, I], [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], [[I, L], C], [/(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], [I, C], [/\bgsa\/([\w\.]+) .*safari\//i], [C, [I, "GSA"]], [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i], [C, [I, "TikTok"]], [/headlesschrome(?:\/([\w\.]+)| )/i], [C, [I, E + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[I, E + " WebView"], C], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], [C, [I, "Android " + b]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], [I, C], [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i], [C, [I, "Mobile Safari"]], [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i], [C, I], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], [I, [C, ae, Te]], [/(webkit|khtml)\/([\w\.]+)/i], [I, C], [/(navigator|netscape\d?)\/([-\w\.]+)/i], [[I, "Netscape"], C], [/(wolvic|librewolf)\/([\w\.]+)/i], [I, C], [/mobile vr; rv:([\w\.]+)\).+firefox/i], [C, [I, m + " 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], [I, [C, /_/g, "."]], [/(cobalt)\/([\w\.]+)/i], [I, [C, /master.|lts./, ""]]], cpu: [[/\b((amd|x|x86[-_]?|wow|win)64)\b/i], [[ie, "amd64"]], [/(ia32(?=;))/i, /\b((i[346]|x)86)(pc)?\b/i], [[ie, "ia32"]], [/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i], [[ie, "arm64"]], [/\b(arm(v[67])?ht?n?[fl]p?)\b/i], [[ie, "armhf"]], [/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i], [[ie, "arm"]], [/((ppc|powerpc)(64)?)( mac|;|\))/i], [[ie, /ower/, o, ve]], [/ sun4\w[;\)]/i], [[ie, "sparc"]], [/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i], [[ie, 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], [g, [w, J], [k, j]], [/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, /samsung[- ]((?!sm-[lr])[-\w]+)/i, /sec-(sgh\w+)/i], [g, [w, J], [k, V]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [g, [w, u], [k, V]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [g, [w, u], [k, j]], [/(macintosh);/i], [g, [w, u]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [g, [w, H], [k, V]], [/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i], [g, [w, v], [k, j]], [/honor([-\w ]+)[;\)]/i], [g, [w, v], [k, 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], [g, [w, P], [k, j]], [/(?:huawei)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [g, [w, P], [k, V]], [/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i, /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i], [[g, /_/g, " "], [w, G], [k, j]], [/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i, / ([\w ]+) miui\/v?\d/i], [[g, /_/g, " "], [w, G], [k, V]], [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i], [g, [w, U], [k, V]], [/\b(opd2(\d{3}a?))(?: bui|\))/i], [g, [w, ae, { OnePlus: ["304", "403", "203"], "*": U }], [k, j]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [g, [w, "Vivo"], [k, V]], [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i], [g, [w, "Realme"], [k, 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], [g, [w, Ee], [k, V]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [g, [w, Ee], [k, j]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [g, [w, K], [k, j]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i, /\blg-?([\d\w]+) bui/i], [g, [w, K], [k, 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], [g, [w, X], [k, j]], [/(nokia) (t[12][01])/i], [w, g, [k, j]], [/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i, /nokia[-_ ]?(([-\w\. ]*))/i], [[g, /_/g, " "], [k, V], [w, "Nokia"]], [/(pixel (c|tablet))\b/i], [g, [w, x], [k, j]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [g, [w, x], [k, 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], [g, [w, Z], [k, V]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[g, "Xperia Tablet"], [w, Z], [k, j]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [g, [w, z], [k, V]], [/(alexa)webm/i, /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [g, [w, l], [k, j]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[g, /(.+)/g, "Fire Phone $1"], [w, l], [k, V]], [/(playbook);[-\w\),; ]+(rim)/i], [g, w, [k, j]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [g, [w, h], [k, V]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [g, [w, y], [k, j]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [g, [w, y], [k, V]], [/(nexus 9)/i], [g, [w, "HTC"], [k, j]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i], [w, [g, /_/g, " "], [k, 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], [g, [w, "TCL"], [k, j]], [/(itel) ((\w+))/i], [[w, ve], g, [k, ae, { tablet: ["p10001l", "w7001"], "*": "mobile" }]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [g, [w, "Acer"], [k, j]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [g, [w, "Meizu"], [k, V]], [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i], [g, [w, "Ulefone"], [k, V]], [/; (energy ?\w+)(?: bui|\))/i, /; energizer ([\w ]+)(?: bui|\))/i], [g, [w, "Energizer"], [k, V]], [/; cat (b35);/i, /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i], [g, [w, "Cat"], [k, V]], [/((?:new )?andromax[\w- ]+)(?: bui|\))/i], [g, [w, "Smartfren"], [k, V]], [/droid.+; (a(?:015|06[35]|142p?))/i], [g, [w, "Nothing"], [k, V]], [/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i, /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i], [g, [w, "Archos"], [k, j]], [/archos ([\w ]+)( b|\))/i, /; (ac[3-6]\d\w{2,8})( b|\))/i], [g, [w, "Archos"], [k, V]], [/(imo) (tab \w+)/i, /(infinix) (x1101b?)/i], [w, g, [k, j]], [/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i, /; (hmd|imo) ([\w ]+?)(?: bui|\))/i, /(hp) ([\w ]+\w)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i, /(oppo) ?([\w ]+) bui/i], [w, g, [k, 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], [w, g, [k, j]], [/(surface duo)/i], [g, [w, pe], [k, j]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [g, [w, "Fairphone"], [k, V]], [/(u304aa)/i], [g, [w, "AT&T"], [k, V]], [/\bsie-(\w*)/i], [g, [w, "Siemens"], [k, V]], [/\b(rct\w+) b/i], [g, [w, "RCA"], [k, j]], [/\b(venue[\d ]{2,7}) b/i], [g, [w, "Dell"], [k, j]], [/\b(q(?:mv|ta)\w+) b/i], [g, [w, "Verizon"], [k, j]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [g, [w, "Barnes & Noble"], [k, j]], [/\b(tm\d{3}\w+) b/i], [g, [w, "NuVision"], [k, j]], [/\b(k88) b/i], [g, [w, "ZTE"], [k, j]], [/\b(nx\d{3}j) b/i], [g, [w, "ZTE"], [k, V]], [/\b(gen\d{3}) b.+49h/i], [g, [w, "Swiss"], [k, V]], [/\b(zur\d{3}) b/i], [g, [w, "Swiss"], [k, j]], [/\b((zeki)?tb.*\b) b/i], [g, [w, "Zeki"], [k, j]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[w, "Dragon Touch"], g, [k, j]], [/\b(ns-?\w{0,9}) b/i], [g, [w, "Insignia"], [k, j]], [/\b((nxa|next)-?\w{0,9}) b/i], [g, [w, "NextBook"], [k, j]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[w, "Voice"], g, [k, V]], [/\b(lvtel\-)?(v1[12]) b/i], [[w, "LvTel"], g, [k, V]], [/\b(ph-1) /i], [g, [w, "Essential"], [k, V]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [g, [w, "Envizen"], [k, j]], [/\b(trio[-\w\. ]+) b/i], [g, [w, "MachSpeed"], [k, j]], [/\btu_(1491) b/i], [g, [w, "Rotor"], [k, j]], [/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i], [g, [w, Ie], [k, j]], [/(sprint) (\w+)/i], [w, g, [k, V]], [/(kin\.[onetw]{3})/i], [[g, /\./g, " "], [w, pe], [k, V]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [g, [w, Y], [k, j]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [g, [w, Y], [k, V]], [/smart-tv.+(samsung)/i], [w, [k, le]], [/hbbtv.+maple;(\d+)/i], [[g, /^/, "SmartTV"], [w, J], [k, le]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[w, K], [k, le]], [/(apple) ?tv/i], [w, [g, u + " TV"], [k, le]], [/crkey/i], [[g, E + "cast"], [w, x], [k, le]], [/droid.+aft(\w+)( bui|\))/i], [g, [w, l], [k, le]], [/(shield \w+ tv)/i], [g, [w, Ie], [k, le]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [g, [w, H], [k, le]], [/(bravia[\w ]+)( bui|\))/i], [g, [w, Z], [k, le]], [/(mi(tv|box)-?\w+) bui/i], [g, [w, G], [k, le]], [/Hbbtv.*(technisat) (.*);/i], [w, g, [k, le]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[w, $], [g, $], [k, le]], [/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i], [g, [k, le]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[k, le]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [w, g, [k, T]], [/droid.+; (shield)( bui|\))/i], [g, [w, Ie], [k, T]], [/(playstation \w+)/i], [g, [w, Z], [k, T]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [g, [w, pe], [k, T]], [/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i], [g, [w, J], [k, se]], [/((pebble))app/i, /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i], [w, g, [k, se]], [/(ow(?:19|20)?we?[1-3]{1,3})/i], [g, [w, U], [k, se]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [g, [w, u], [k, se]], [/(opwwe\d{3})/i], [g, [w, z], [k, se]], [/(moto 360)/i], [g, [w, Ee], [k, se]], [/(smartwatch 3)/i], [g, [w, Z], [k, se]], [/(g watch r)/i], [g, [w, K], [k, se]], [/droid.+; (wt63?0{2,3})\)/i], [g, [w, Y], [k, se]], [/droid.+; (glass) \d/i], [g, [w, x], [k, se]], [/(pico) (4|neo3(?: link|pro)?)/i], [w, g, [k, se]], [/; (quest( \d| pro)?)/i], [g, [w, L], [k, se]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [w, [k, Se]], [/(aeobc)\b/i], [g, [w, l], [k, Se]], [/(homepod).+mac os/i], [g, [w, u], [k, Se]], [/windows iot/i], [[k, Se]], [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i], [g, [k, V]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [g, [k, j]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[k, j]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], [[k, V]], [/droid .+?; ([\w\. -]+)( bui|\))/i], [g, [w, "Generic"]]], engine: [[/windows.+ edge\/([\w\.]+)/i], [C, [I, p + "HTML"]], [/(arkweb)\/([\w\.]+)/i], [I, C], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [C, [I, "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], [I, C], [/ladybird\//i], [[I, "LibWeb"]], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [C, I]], os: [[/microsoft (windows) (vista|xp)/i], [I, C], [/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i], [I, [C, ae, Me]], [/windows nt 6\.2; (arm)/i, /windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i, /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i], [[C, ae, Me], [I, "Windows"]], [/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i, /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i, /cfnetwork\/.+darwin/i], [[C, /_/g, "."], [I, "iOS"]], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], [[I, q], [C, /_/g, "."]], [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i], [C, I], [/(ubuntu) ([\w\.]+) like android/i], [[I, /(.+)/, "$1 Touch"], C], [/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i], [I, C], [/\(bb(10);/i], [C, [I, h]], [/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i], [C, [I, "Symbian"]], [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], [C, [I, m + " OS"]], [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], [C, [I, "webOS"]], [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i], [C, [I, "watchOS"]], [/crkey\/([\d\.]+)/i], [C, [I, E + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[I, _], C], [/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], [I, C], [/(sunos) ?([\w\.\d]*)/i], [[I, "Solaris"], C], [/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, /(unix) ?([\w\.]*)/i], [I, C]] }, we = function(re, fe) {
|
|
4558
|
-
if (typeof
|
|
4559
|
-
return new we(
|
|
4560
|
-
var
|
|
4584
|
+
}, ae = function(se, fe) {
|
|
4585
|
+
for (var ie in fe)
|
|
4586
|
+
if (typeof fe[ie] === B && fe[ie].length > 0) {
|
|
4587
|
+
for (var be = 0; be < fe[ie].length; be++)
|
|
4588
|
+
if (ge(fe[ie][be], se))
|
|
4589
|
+
return ie === a ? s : ie;
|
|
4590
|
+
} else if (ge(fe[ie], se))
|
|
4591
|
+
return ie === a ? s : ie;
|
|
4592
|
+
return fe.hasOwnProperty("*") ? fe["*"] : se;
|
|
4593
|
+
}, Te = { "1.0": "/8", 1.2: "/1", 1.3: "/3", "2.0": "/412", "2.0.2": "/416", "2.0.3": "/417", "2.0.4": "/419", "?": "/" }, Me = { 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" }, ne = { browser: [[/\b(?:crmo|crios)\/([\w\.]+)/i], [C, [I, "Chrome"]], [/edg(?:e|ios|a)?\/([\w\.]+)/i], [C, [I, "Edge"]], [/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i], [I, C], [/opios[\/ ]+([\w\.]+)/i], [C, [I, he + " Mini"]], [/\bop(?:rg)?x\/([\w\.]+)/i], [C, [I, he + " GX"]], [/\bopr\/([\w\.]+)/i], [C, [I, he]], [/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i], [C, [I, "Baidu"]], [/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i], [C, [I, "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], [I, C], [/quark(?:pc)?\/([-\w\.]+)/i], [C, [I, "Quark"]], [/\bddg\/([\w\.]+)/i], [C, [I, "DuckDuckGo"]], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], [C, [I, "UC" + b]], [/microm.+\bqbcore\/([\w\.]+)/i, /\bqbcore\/([\w\.]+).+microm/i, /micromessenger\/([\w\.]+)/i], [C, [I, "WeChat"]], [/konqueror\/([\w\.]+)/i], [C, [I, "Konqueror"]], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], [C, [I, "IE"]], [/ya(?:search)?browser\/([\w\.]+)/i], [C, [I, "Yandex"]], [/slbrowser\/([\w\.]+)/i], [C, [I, "Smart Lenovo " + b]], [/(avast|avg)\/([\w\.]+)/i], [[I, /(.+)/, "$1 Secure " + b], C], [/\bfocus\/([\w\.]+)/i], [C, [I, w + " Focus"]], [/\bopt\/([\w\.]+)/i], [C, [I, he + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [C, [I, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [C, [I, "Dolphin"]], [/coast\/([\w\.]+)/i], [C, [I, he + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [C, [I, "MIUI" + O]], [/fxios\/([\w\.-]+)/i], [C, [I, w]], [/\bqihoobrowser\/?([\w\.]*)/i], [C, [I, "360"]], [/\b(qq)\/([\w\.]+)/i], [[I, /(.+)/, "$1Browser"], C], [/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i], [[I, /(.+)/, "$1" + O], C], [/samsungbrowser\/([\w\.]+)/i], [C, [I, J + " Internet"]], [/metasr[\/ ]?([\d\.]+)/i], [C, [I, "Sogou Explorer"]], [/(sogou)mo\w+\/([\d\.]+)/i], [[I, "Sogou Mobile"], C], [/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i], [I, C], [/(lbbrowser|rekonq)/i, /\[(linkedin)app\]/i], [I], [/ome\/([\w\.]+) \w* ?(iron) saf/i, /ome\/([\w\.]+).+qihu (360)[es]e/i], [C, I], [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], [[I, L], C], [/(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], [I, C], [/\bgsa\/([\w\.]+) .*safari\//i], [C, [I, "GSA"]], [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i], [C, [I, "TikTok"]], [/headlesschrome(?:\/([\w\.]+)| )/i], [C, [I, E + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[I, E + " WebView"], C], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], [C, [I, "Android " + b]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], [I, C], [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i], [C, [I, "Mobile Safari"]], [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i], [C, I], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], [I, [C, ae, Te]], [/(webkit|khtml)\/([\w\.]+)/i], [I, C], [/(navigator|netscape\d?)\/([-\w\.]+)/i], [[I, "Netscape"], C], [/(wolvic|librewolf)\/([\w\.]+)/i], [I, C], [/mobile vr; rv:([\w\.]+)\).+firefox/i], [C, [I, w + " 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], [I, [C, /_/g, "."]], [/(cobalt)\/([\w\.]+)/i], [I, [C, /master.|lts./, ""]]], cpu: [[/\b((amd|x|x86[-_]?|wow|win)64)\b/i], [[re, "amd64"]], [/(ia32(?=;))/i, /\b((i[346]|x)86)(pc)?\b/i], [[re, "ia32"]], [/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i], [[re, "arm64"]], [/\b(arm(v[67])?ht?n?[fl]p?)\b/i], [[re, "armhf"]], [/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i], [[re, "arm"]], [/((ppc|powerpc)(64)?)( mac|;|\))/i], [[re, /ower/, o, ve]], [/ sun4\w[;\)]/i], [[re, "sparc"]], [/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i], [[re, 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], [g, [m, J], [k, j]], [/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, /samsung[- ]((?!sm-[lr])[-\w]+)/i, /sec-(sgh\w+)/i], [g, [m, J], [k, H]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [g, [m, u], [k, H]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [g, [m, u], [k, j]], [/(macintosh);/i], [g, [m, u]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [g, [m, z], [k, H]], [/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i], [g, [m, v], [k, j]], [/honor([-\w ]+)[;\)]/i], [g, [m, v], [k, H]], [/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i], [g, [m, P], [k, j]], [/(?:huawei)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [g, [m, P], [k, H]], [/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i, /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i], [[g, /_/g, " "], [m, Y], [k, j]], [/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i, / ([\w ]+) miui\/v?\d/i], [[g, /_/g, " "], [m, Y], [k, H]], [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i], [g, [m, U], [k, H]], [/\b(opd2(\d{3}a?))(?: bui|\))/i], [g, [m, ae, { OnePlus: ["304", "403", "203"], "*": U }], [k, j]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [g, [m, "Vivo"], [k, H]], [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i], [g, [m, "Realme"], [k, H]], [/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i], [g, [m, Ee], [k, H]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [g, [m, Ee], [k, j]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [g, [m, K], [k, j]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i, /\blg-?([\d\w]+) bui/i], [g, [m, K], [k, H]], [/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i, /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i], [g, [m, X], [k, j]], [/(nokia) (t[12][01])/i], [m, g, [k, j]], [/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i, /nokia[-_ ]?(([-\w\. ]*))/i], [[g, /_/g, " "], [k, H], [m, "Nokia"]], [/(pixel (c|tablet))\b/i], [g, [m, x], [k, j]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [g, [m, x], [k, H]], [/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [g, [m, Z], [k, H]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[g, "Xperia Tablet"], [m, Z], [k, j]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [g, [m, V], [k, H]], [/(alexa)webm/i, /(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [g, [m, l], [k, j]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[g, /(.+)/g, "Fire Phone $1"], [m, l], [k, H]], [/(playbook);[-\w\),; ]+(rim)/i], [g, m, [k, j]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [g, [m, h], [k, H]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [g, [m, y], [k, j]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [g, [m, y], [k, H]], [/(nexus 9)/i], [g, [m, "HTC"], [k, j]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i], [m, [g, /_/g, " "], [k, H]], [/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i], [g, [m, "TCL"], [k, j]], [/(itel) ((\w+))/i], [[m, ve], g, [k, ae, { tablet: ["p10001l", "w7001"], "*": "mobile" }]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [g, [m, "Acer"], [k, j]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [g, [m, "Meizu"], [k, H]], [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i], [g, [m, "Ulefone"], [k, H]], [/; (energy ?\w+)(?: bui|\))/i, /; energizer ([\w ]+)(?: bui|\))/i], [g, [m, "Energizer"], [k, H]], [/; cat (b35);/i, /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i], [g, [m, "Cat"], [k, H]], [/((?:new )?andromax[\w- ]+)(?: bui|\))/i], [g, [m, "Smartfren"], [k, H]], [/droid.+; (a(?:015|06[35]|142p?))/i], [g, [m, "Nothing"], [k, H]], [/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i, /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i], [g, [m, "Archos"], [k, j]], [/archos ([\w ]+)( b|\))/i, /; (ac[3-6]\d\w{2,8})( b|\))/i], [g, [m, "Archos"], [k, H]], [/(imo) (tab \w+)/i, /(infinix) (x1101b?)/i], [m, g, [k, j]], [/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i, /; (hmd|imo) ([\w ]+?)(?: bui|\))/i, /(hp) ([\w ]+\w)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i, /(oppo) ?([\w ]+) bui/i], [m, g, [k, H]], [/(kobo)\s(ereader|touch)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i], [m, g, [k, j]], [/(surface duo)/i], [g, [m, pe], [k, j]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [g, [m, "Fairphone"], [k, H]], [/(u304aa)/i], [g, [m, "AT&T"], [k, H]], [/\bsie-(\w*)/i], [g, [m, "Siemens"], [k, H]], [/\b(rct\w+) b/i], [g, [m, "RCA"], [k, j]], [/\b(venue[\d ]{2,7}) b/i], [g, [m, "Dell"], [k, j]], [/\b(q(?:mv|ta)\w+) b/i], [g, [m, "Verizon"], [k, j]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [g, [m, "Barnes & Noble"], [k, j]], [/\b(tm\d{3}\w+) b/i], [g, [m, "NuVision"], [k, j]], [/\b(k88) b/i], [g, [m, "ZTE"], [k, j]], [/\b(nx\d{3}j) b/i], [g, [m, "ZTE"], [k, H]], [/\b(gen\d{3}) b.+49h/i], [g, [m, "Swiss"], [k, H]], [/\b(zur\d{3}) b/i], [g, [m, "Swiss"], [k, j]], [/\b((zeki)?tb.*\b) b/i], [g, [m, "Zeki"], [k, j]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[m, "Dragon Touch"], g, [k, j]], [/\b(ns-?\w{0,9}) b/i], [g, [m, "Insignia"], [k, j]], [/\b((nxa|next)-?\w{0,9}) b/i], [g, [m, "NextBook"], [k, j]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[m, "Voice"], g, [k, H]], [/\b(lvtel\-)?(v1[12]) b/i], [[m, "LvTel"], g, [k, H]], [/\b(ph-1) /i], [g, [m, "Essential"], [k, H]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [g, [m, "Envizen"], [k, j]], [/\b(trio[-\w\. ]+) b/i], [g, [m, "MachSpeed"], [k, j]], [/\btu_(1491) b/i], [g, [m, "Rotor"], [k, j]], [/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i], [g, [m, Ie], [k, j]], [/(sprint) (\w+)/i], [m, g, [k, H]], [/(kin\.[onetw]{3})/i], [[g, /\./g, " "], [m, pe], [k, H]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [g, [m, W], [k, j]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [g, [m, W], [k, H]], [/smart-tv.+(samsung)/i], [m, [k, le]], [/hbbtv.+maple;(\d+)/i], [[g, /^/, "SmartTV"], [m, J], [k, le]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[m, K], [k, le]], [/(apple) ?tv/i], [m, [g, u + " TV"], [k, le]], [/crkey/i], [[g, E + "cast"], [m, x], [k, le]], [/droid.+aft(\w+)( bui|\))/i], [g, [m, l], [k, le]], [/(shield \w+ tv)/i], [g, [m, Ie], [k, le]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [g, [m, z], [k, le]], [/(bravia[\w ]+)( bui|\))/i], [g, [m, Z], [k, le]], [/(mi(tv|box)-?\w+) bui/i], [g, [m, Y], [k, le]], [/Hbbtv.*(technisat) (.*);/i], [m, g, [k, le]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[m, $], [g, $], [k, le]], [/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i], [g, [k, le]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[k, le]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [m, g, [k, T]], [/droid.+; (shield)( bui|\))/i], [g, [m, Ie], [k, T]], [/(playstation \w+)/i], [g, [m, Z], [k, T]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [g, [m, pe], [k, T]], [/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i], [g, [m, J], [k, oe]], [/((pebble))app/i, /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i], [m, g, [k, oe]], [/(ow(?:19|20)?we?[1-3]{1,3})/i], [g, [m, U], [k, oe]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [g, [m, u], [k, oe]], [/(opwwe\d{3})/i], [g, [m, V], [k, oe]], [/(moto 360)/i], [g, [m, Ee], [k, oe]], [/(smartwatch 3)/i], [g, [m, Z], [k, oe]], [/(g watch r)/i], [g, [m, K], [k, oe]], [/droid.+; (wt63?0{2,3})\)/i], [g, [m, W], [k, oe]], [/droid.+; (glass) \d/i], [g, [m, x], [k, oe]], [/(pico) (4|neo3(?: link|pro)?)/i], [m, g, [k, oe]], [/; (quest( \d| pro)?)/i], [g, [m, L], [k, oe]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [m, [k, Se]], [/(aeobc)\b/i], [g, [m, l], [k, Se]], [/(homepod).+mac os/i], [g, [m, u], [k, Se]], [/windows iot/i], [[k, Se]], [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i], [g, [k, H]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [g, [k, j]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[k, j]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], [[k, H]], [/droid .+?; ([\w\. -]+)( bui|\))/i], [g, [m, "Generic"]]], engine: [[/windows.+ edge\/([\w\.]+)/i], [C, [I, p + "HTML"]], [/(arkweb)\/([\w\.]+)/i], [I, C], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [C, [I, "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], [I, C], [/ladybird\//i], [[I, "LibWeb"]], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [C, I]], os: [[/microsoft (windows) (vista|xp)/i], [I, C], [/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i], [I, [C, ae, Me]], [/windows nt 6\.2; (arm)/i, /windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i, /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i], [[C, ae, Me], [I, "Windows"]], [/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i, /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i, /cfnetwork\/.+darwin/i], [[C, /_/g, "."], [I, "iOS"]], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], [[I, G], [C, /_/g, "."]], [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i], [C, I], [/(ubuntu) ([\w\.]+) like android/i], [[I, /(.+)/, "$1 Touch"], C], [/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i], [I, C], [/\(bb(10);/i], [C, [I, h]], [/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i], [C, [I, "Symbian"]], [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], [C, [I, w + " OS"]], [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], [C, [I, "webOS"]], [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i], [C, [I, "watchOS"]], [/crkey\/([\d\.]+)/i], [C, [I, E + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[I, _], C], [/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], [I, C], [/(sunos) ?([\w\.\d]*)/i], [[I, "Solaris"], C], [/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, /(unix) ?([\w\.]*)/i], [I, C]] }, we = function(se, fe) {
|
|
4594
|
+
if (typeof se === B && (fe = se, se = s), !(this instanceof we))
|
|
4595
|
+
return new we(se, fe).getResult();
|
|
4596
|
+
var ie = typeof n !== S && n.navigator ? n.navigator : s, be = se || (ie && ie.userAgent ? ie.userAgent : o), We = ie && ie.userAgentData ? ie.userAgentData : s, Re = fe ? te(ne, fe) : ne, xe = ie && ie.userAgent == be;
|
|
4561
4597
|
return this.getBrowser = function() {
|
|
4562
4598
|
var ce = {};
|
|
4563
|
-
return ce[I] = s, ce[C] = s, ee.call(ce, be, Re.browser), ce[F] =
|
|
4599
|
+
return ce[I] = s, ce[C] = s, ee.call(ce, be, Re.browser), ce[F] = q(ce[C]), xe && ie && ie.brave && typeof ie.brave.isBrave == c && (ce[I] = "Brave"), ce;
|
|
4564
4600
|
}, this.getCPU = function() {
|
|
4565
4601
|
var ce = {};
|
|
4566
|
-
return ce[
|
|
4602
|
+
return ce[re] = s, ee.call(ce, be, Re.cpu), ce;
|
|
4567
4603
|
}, this.getDevice = function() {
|
|
4568
4604
|
var ce = {};
|
|
4569
|
-
return ce[
|
|
4605
|
+
return ce[m] = s, ce[g] = s, ce[k] = s, ee.call(ce, be, Re.device), xe && !ce[k] && We && We.mobile && (ce[k] = H), xe && ce[g] == "Macintosh" && ie && typeof ie.standalone !== S && ie.maxTouchPoints && ie.maxTouchPoints > 2 && (ce[g] = "iPad", ce[k] = j), ce;
|
|
4570
4606
|
}, this.getEngine = function() {
|
|
4571
4607
|
var ce = {};
|
|
4572
4608
|
return ce[I] = s, ce[C] = s, ee.call(ce, be, Re.engine), ce;
|
|
4573
4609
|
}, this.getOS = function() {
|
|
4574
4610
|
var ce = {};
|
|
4575
|
-
return ce[I] = s, ce[C] = s, ee.call(ce, be, Re.os), xe && !ce[I] && We && We.platform && We.platform != "Unknown" && (ce[I] = We.platform.replace(/chrome os/i, _).replace(/macos/i,
|
|
4611
|
+
return ce[I] = s, ce[C] = s, ee.call(ce, be, Re.os), xe && !ce[I] && We && We.platform && We.platform != "Unknown" && (ce[I] = We.platform.replace(/chrome os/i, _).replace(/macos/i, G)), ce;
|
|
4576
4612
|
}, this.getResult = function() {
|
|
4577
4613
|
return { ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU() };
|
|
4578
4614
|
}, this.getUA = function() {
|
|
@@ -4581,17 +4617,17 @@ function Ac() {
|
|
|
4581
4617
|
return be = typeof ce === D && ce.length > i ? $(ce, i) : ce, this;
|
|
4582
4618
|
}, this.setUA(be), this;
|
|
4583
4619
|
};
|
|
4584
|
-
we.VERSION = r, we.BROWSER = de([I, C, F]), we.CPU = de([
|
|
4620
|
+
we.VERSION = r, we.BROWSER = de([I, C, F]), we.CPU = de([re]), we.DEVICE = de([g, m, k, T, H, le, j, oe, Se]), we.ENGINE = we.OS = de([I, C]), e.exports && (t = e.exports = we), t.UAParser = we;
|
|
4585
4621
|
var Be = typeof n !== S && (n.jQuery || n.Zepto);
|
|
4586
4622
|
if (Be && !Be.ua) {
|
|
4587
4623
|
var Ce = new we();
|
|
4588
4624
|
Be.ua = Ce.getResult(), Be.ua.get = function() {
|
|
4589
4625
|
return Ce.getUA();
|
|
4590
|
-
}, Be.ua.set = function(
|
|
4591
|
-
Ce.setUA(
|
|
4626
|
+
}, Be.ua.set = function(se) {
|
|
4627
|
+
Ce.setUA(se);
|
|
4592
4628
|
var fe = Ce.getResult();
|
|
4593
|
-
for (var
|
|
4594
|
-
Be.ua[
|
|
4629
|
+
for (var ie in fe)
|
|
4630
|
+
Be.ua[ie] = fe[ie];
|
|
4595
4631
|
};
|
|
4596
4632
|
}
|
|
4597
4633
|
})(typeof window == "object" ? window : yc);
|
|
@@ -4645,7 +4681,7 @@ function vc() {
|
|
|
4645
4681
|
}
|
|
4646
4682
|
return f;
|
|
4647
4683
|
}
|
|
4648
|
-
function
|
|
4684
|
+
function m(A) {
|
|
4649
4685
|
for (var d = 1; d < arguments.length; d++) {
|
|
4650
4686
|
var f = arguments[d] != null ? arguments[d] : {};
|
|
4651
4687
|
d % 2 ? k(Object(f), !0).forEach(function(N) {
|
|
@@ -4664,7 +4700,7 @@ function vc() {
|
|
|
4664
4700
|
return d && typeof Symbol == "function" && d.constructor === Symbol && d !== Symbol.prototype ? "symbol" : typeof d;
|
|
4665
4701
|
}, C(A);
|
|
4666
4702
|
}
|
|
4667
|
-
function
|
|
4703
|
+
function re(A, d) {
|
|
4668
4704
|
if (!(A instanceof d))
|
|
4669
4705
|
throw new TypeError("Cannot call a class as a function");
|
|
4670
4706
|
}
|
|
@@ -4674,7 +4710,7 @@ function vc() {
|
|
|
4674
4710
|
N.enumerable = N.enumerable || !1, N.configurable = !0, "value" in N && (N.writable = !0), Object.defineProperty(A, N.key, N);
|
|
4675
4711
|
}
|
|
4676
4712
|
}
|
|
4677
|
-
function
|
|
4713
|
+
function H(A, d, f) {
|
|
4678
4714
|
return d && T(A.prototype, d), A;
|
|
4679
4715
|
}
|
|
4680
4716
|
function j(A, d, f) {
|
|
@@ -4695,7 +4731,7 @@ function vc() {
|
|
|
4695
4731
|
return A;
|
|
4696
4732
|
}, le.apply(this, arguments);
|
|
4697
4733
|
}
|
|
4698
|
-
function
|
|
4734
|
+
function oe(A, d) {
|
|
4699
4735
|
if (typeof d != "function" && d !== null)
|
|
4700
4736
|
throw new TypeError("Super expression must either be null or a function");
|
|
4701
4737
|
A.prototype = Object.create(d && d.prototype, {
|
|
@@ -4746,7 +4782,7 @@ function vc() {
|
|
|
4746
4782
|
return y(A);
|
|
4747
4783
|
}
|
|
4748
4784
|
function b(A, d) {
|
|
4749
|
-
return E(A) || p(A, d) ||
|
|
4785
|
+
return E(A) || p(A, d) || w(A, d) || v();
|
|
4750
4786
|
}
|
|
4751
4787
|
function E(A) {
|
|
4752
4788
|
if (Array.isArray(A)) return A;
|
|
@@ -4770,7 +4806,7 @@ function vc() {
|
|
|
4770
4806
|
return N;
|
|
4771
4807
|
}
|
|
4772
4808
|
}
|
|
4773
|
-
function
|
|
4809
|
+
function w(A, d) {
|
|
4774
4810
|
if (A) {
|
|
4775
4811
|
if (typeof A == "string") return x(A, d);
|
|
4776
4812
|
var f = Object.prototype.toString.call(A).slice(8, -1);
|
|
@@ -4857,7 +4893,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
4857
4893
|
}
|
|
4858
4894
|
}, Ie = function(d) {
|
|
4859
4895
|
return F(d);
|
|
4860
|
-
},
|
|
4896
|
+
}, V = function(d) {
|
|
4861
4897
|
var f = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "none";
|
|
4862
4898
|
return d || f;
|
|
4863
4899
|
}, he = function() {
|
|
@@ -4868,60 +4904,60 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
4868
4904
|
}, J = function(d, f, N, M, ye) {
|
|
4869
4905
|
return {
|
|
4870
4906
|
isBrowser: d,
|
|
4871
|
-
browserMajorVersion:
|
|
4872
|
-
browserFullVersion:
|
|
4873
|
-
browserName:
|
|
4874
|
-
engineName:
|
|
4875
|
-
engineVersion:
|
|
4876
|
-
osName:
|
|
4877
|
-
osVersion:
|
|
4878
|
-
userAgent:
|
|
4907
|
+
browserMajorVersion: V(f.major),
|
|
4908
|
+
browserFullVersion: V(f.version),
|
|
4909
|
+
browserName: V(f.name),
|
|
4910
|
+
engineName: V(N.name),
|
|
4911
|
+
engineVersion: V(N.version),
|
|
4912
|
+
osName: V(M.name),
|
|
4913
|
+
osVersion: V(M.version),
|
|
4914
|
+
userAgent: V(ye)
|
|
4879
4915
|
};
|
|
4880
|
-
},
|
|
4881
|
-
return
|
|
4882
|
-
vendor:
|
|
4883
|
-
model:
|
|
4884
|
-
os:
|
|
4885
|
-
osVersion:
|
|
4886
|
-
ua:
|
|
4916
|
+
}, z = function(d, f, N, M) {
|
|
4917
|
+
return m({}, d, {
|
|
4918
|
+
vendor: V(f.vendor),
|
|
4919
|
+
model: V(f.model),
|
|
4920
|
+
os: V(N.name),
|
|
4921
|
+
osVersion: V(N.version),
|
|
4922
|
+
ua: V(M)
|
|
4887
4923
|
});
|
|
4888
4924
|
}, Z = function(d, f, N, M) {
|
|
4889
4925
|
return {
|
|
4890
4926
|
isSmartTV: d,
|
|
4891
|
-
engineName:
|
|
4892
|
-
engineVersion:
|
|
4893
|
-
osName:
|
|
4894
|
-
osVersion:
|
|
4895
|
-
userAgent:
|
|
4927
|
+
engineName: V(f.name),
|
|
4928
|
+
engineVersion: V(f.version),
|
|
4929
|
+
osName: V(N.name),
|
|
4930
|
+
osVersion: V(N.version),
|
|
4931
|
+
userAgent: V(M)
|
|
4896
4932
|
};
|
|
4897
|
-
},
|
|
4933
|
+
}, Y = function(d, f, N, M) {
|
|
4898
4934
|
return {
|
|
4899
4935
|
isConsole: d,
|
|
4900
|
-
engineName:
|
|
4901
|
-
engineVersion:
|
|
4902
|
-
osName:
|
|
4903
|
-
osVersion:
|
|
4904
|
-
userAgent:
|
|
4936
|
+
engineName: V(f.name),
|
|
4937
|
+
engineVersion: V(f.version),
|
|
4938
|
+
osName: V(N.name),
|
|
4939
|
+
osVersion: V(N.version),
|
|
4940
|
+
userAgent: V(M)
|
|
4905
4941
|
};
|
|
4906
|
-
},
|
|
4942
|
+
}, W = function(d, f, N, M) {
|
|
4907
4943
|
return {
|
|
4908
4944
|
isWearable: d,
|
|
4909
|
-
engineName:
|
|
4910
|
-
engineVersion:
|
|
4911
|
-
osName:
|
|
4912
|
-
osVersion:
|
|
4913
|
-
userAgent:
|
|
4945
|
+
engineName: V(f.name),
|
|
4946
|
+
engineVersion: V(f.version),
|
|
4947
|
+
osName: V(N.name),
|
|
4948
|
+
osVersion: V(N.version),
|
|
4949
|
+
userAgent: V(M)
|
|
4914
4950
|
};
|
|
4915
4951
|
}, L = function(d, f, N, M, ye) {
|
|
4916
4952
|
return {
|
|
4917
4953
|
isEmbedded: d,
|
|
4918
|
-
vendor:
|
|
4919
|
-
model:
|
|
4920
|
-
engineName:
|
|
4921
|
-
engineVersion:
|
|
4922
|
-
osName:
|
|
4923
|
-
osVersion:
|
|
4924
|
-
userAgent:
|
|
4954
|
+
vendor: V(f.vendor),
|
|
4955
|
+
model: V(f.model),
|
|
4956
|
+
engineName: V(N.name),
|
|
4957
|
+
engineVersion: V(N.version),
|
|
4958
|
+
osName: V(M.name),
|
|
4959
|
+
osVersion: V(M.version),
|
|
4960
|
+
userAgent: V(ye)
|
|
4925
4961
|
};
|
|
4926
4962
|
};
|
|
4927
4963
|
function _(A) {
|
|
@@ -4931,15 +4967,15 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
4931
4967
|
if (rr)
|
|
4932
4968
|
return Z(rr, M, ye, Ne);
|
|
4933
4969
|
if (sr)
|
|
4934
|
-
return
|
|
4970
|
+
return Y(sr, M, ye, Ne);
|
|
4935
4971
|
if (ao || co)
|
|
4936
|
-
return
|
|
4972
|
+
return z(Fe, f, ye, Ne);
|
|
4937
4973
|
if (or)
|
|
4938
|
-
return
|
|
4974
|
+
return W(or, M, ye, Ne);
|
|
4939
4975
|
if (ir)
|
|
4940
4976
|
return L(ir, f, M, ye, Ne);
|
|
4941
4977
|
}
|
|
4942
|
-
var
|
|
4978
|
+
var G = function(d) {
|
|
4943
4979
|
var f = d.type;
|
|
4944
4980
|
return f === P.Mobile;
|
|
4945
4981
|
}, O = function(d) {
|
|
@@ -4957,7 +4993,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
4957
4993
|
}, ve = function(d) {
|
|
4958
4994
|
var f = d.type;
|
|
4959
4995
|
return f === P.Wearable;
|
|
4960
|
-
},
|
|
4996
|
+
}, q = function(d) {
|
|
4961
4997
|
var f = d.type;
|
|
4962
4998
|
return f === P.Console;
|
|
4963
4999
|
}, $ = function(d) {
|
|
@@ -4965,13 +5001,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
4965
5001
|
return f === P.Embedded;
|
|
4966
5002
|
}, ee = function(d) {
|
|
4967
5003
|
var f = d.vendor;
|
|
4968
|
-
return
|
|
5004
|
+
return V(f);
|
|
4969
5005
|
}, ae = function(d) {
|
|
4970
5006
|
var f = d.model;
|
|
4971
|
-
return
|
|
5007
|
+
return V(f);
|
|
4972
5008
|
}, Te = function(d) {
|
|
4973
5009
|
var f = d.type;
|
|
4974
|
-
return
|
|
5010
|
+
return V(f, "browser");
|
|
4975
5011
|
}, Me = function(d) {
|
|
4976
5012
|
var f = d.name;
|
|
4977
5013
|
return f === K.Android;
|
|
@@ -4987,13 +5023,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
4987
5023
|
}, Ce = function(d) {
|
|
4988
5024
|
var f = d.name;
|
|
4989
5025
|
return f === K.IOS;
|
|
4990
|
-
},
|
|
5026
|
+
}, se = function(d) {
|
|
4991
5027
|
var f = d.version;
|
|
4992
|
-
return
|
|
5028
|
+
return V(f);
|
|
4993
5029
|
}, fe = function(d) {
|
|
4994
5030
|
var f = d.name;
|
|
4995
|
-
return
|
|
4996
|
-
},
|
|
5031
|
+
return V(f);
|
|
5032
|
+
}, ie = function(d) {
|
|
4997
5033
|
var f = d.name;
|
|
4998
5034
|
return f === X.Chrome;
|
|
4999
5035
|
}, be = function(d) {
|
|
@@ -5028,19 +5064,19 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
5028
5064
|
return f === X.SamsungBrowser;
|
|
5029
5065
|
}, Mn = function(d) {
|
|
5030
5066
|
var f = d.version;
|
|
5031
|
-
return
|
|
5067
|
+
return V(f);
|
|
5032
5068
|
}, Rn = function(d) {
|
|
5033
5069
|
var f = d.major;
|
|
5034
|
-
return
|
|
5070
|
+
return V(f);
|
|
5035
5071
|
}, Fn = function(d) {
|
|
5036
5072
|
var f = d.name;
|
|
5037
|
-
return
|
|
5073
|
+
return V(f);
|
|
5038
5074
|
}, Ln = function(d) {
|
|
5039
5075
|
var f = d.name;
|
|
5040
|
-
return
|
|
5076
|
+
return V(f);
|
|
5041
5077
|
}, Hn = function(d) {
|
|
5042
5078
|
var f = d.version;
|
|
5043
|
-
return
|
|
5079
|
+
return V(f);
|
|
5044
5080
|
}, zn = function() {
|
|
5045
5081
|
var d = he(), f = d && d.userAgent && d.userAgent.toLowerCase();
|
|
5046
5082
|
return typeof f == "string" ? /electron/.test(f) : !1;
|
|
@@ -5056,31 +5092,31 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
5056
5092
|
}, Wn = function() {
|
|
5057
5093
|
return U("iPod");
|
|
5058
5094
|
}, Yn = function(d) {
|
|
5059
|
-
return
|
|
5095
|
+
return V(d);
|
|
5060
5096
|
};
|
|
5061
5097
|
function Gn(A) {
|
|
5062
5098
|
var d = A || I, f = d.device, N = d.browser, M = d.os, ye = d.engine, Ne = d.ua;
|
|
5063
5099
|
return {
|
|
5064
5100
|
isSmartTV: de(f),
|
|
5065
|
-
isConsole:
|
|
5101
|
+
isConsole: q(f),
|
|
5066
5102
|
isWearable: ve(f),
|
|
5067
5103
|
isEmbedded: $(f),
|
|
5068
5104
|
isMobileSafari: ze(N) || Qe(),
|
|
5069
5105
|
isChromium: We(N),
|
|
5070
5106
|
isMobile: te(f) || Qe(),
|
|
5071
|
-
isMobileOnly:
|
|
5107
|
+
isMobileOnly: G(f),
|
|
5072
5108
|
isTablet: O(f) || Qe(),
|
|
5073
5109
|
isBrowser: ge(f),
|
|
5074
5110
|
isDesktop: ge(f),
|
|
5075
5111
|
isAndroid: Me(M),
|
|
5076
5112
|
isWinPhone: Be(M),
|
|
5077
5113
|
isIOS: Ce(M) || Qe(),
|
|
5078
|
-
isChrome:
|
|
5114
|
+
isChrome: ie(N),
|
|
5079
5115
|
isFirefox: be(N),
|
|
5080
5116
|
isSafari: ce(N),
|
|
5081
5117
|
isOpera: gt(N),
|
|
5082
5118
|
isIE: Tt(N),
|
|
5083
|
-
osVersion:
|
|
5119
|
+
osVersion: se(M),
|
|
5084
5120
|
osName: fe(M),
|
|
5085
5121
|
fullBrowserVersion: Mn(N),
|
|
5086
5122
|
browserVersion: Rn(N),
|
|
@@ -5106,7 +5142,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
5106
5142
|
isSamsungBrowser: On(N)
|
|
5107
5143
|
};
|
|
5108
5144
|
}
|
|
5109
|
-
var Xn = de(c), Jn =
|
|
5145
|
+
var Xn = de(c), Jn = q(c), jn = ve(c), ps = $(c), hs = ze(o) || Qe(), ms = We(o), Rt = te(c) || Qe(), Qn = G(c), Kn = O(c) || Qe(), Zn = ge(c), gs = ge(c), _n = Me(B), $n = Be(B), er = Ce(B) || Qe(), ws = ie(o), bs = be(o), ys = ce(o), As = gt(o), tr = Tt(o), vs = se(B), ks = fe(B), xs = Mn(o), Es = Rn(o), Ts = Fn(o), Is = ee(c), Ss = ae(c), Cs = Ln(S), Bs = Hn(S), Ds = Yn(D), Ps = Re(o) || wt(D), Ns = xe(o), Us = Te(c), Os = Vn(), Ms = Qe(), Rs = qn(), Fs = Wn(), Ls = zn(), Hs = wt(D), zs = Re(o) && !wt(D), Vs = ne(B), qs = we(B), Ws = Un(o), Ys = On(o), Gs = function(d) {
|
|
5110
5146
|
if (!d || typeof d != "string") {
|
|
5111
5147
|
console.error("No valid user agent string was provided");
|
|
5112
5148
|
return;
|
|
@@ -5162,15 +5198,15 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
5162
5198
|
};
|
|
5163
5199
|
function so(A) {
|
|
5164
5200
|
return /* @__PURE__ */ (function(d) {
|
|
5165
|
-
|
|
5201
|
+
oe(f, d);
|
|
5166
5202
|
function f(N) {
|
|
5167
5203
|
var M;
|
|
5168
|
-
return
|
|
5204
|
+
return re(this, f), M = h(this, Se(f).call(this, N)), M.isEventListenerAdded = !1, M.handleOrientationChange = M.handleOrientationChange.bind(y(M)), M.onOrientationChange = M.onOrientationChange.bind(y(M)), M.onPageLoad = M.onPageLoad.bind(y(M)), M.state = {
|
|
5169
5205
|
isLandscape: !1,
|
|
5170
5206
|
isPortrait: !1
|
|
5171
5207
|
}, M;
|
|
5172
5208
|
}
|
|
5173
|
-
return
|
|
5209
|
+
return H(f, [{
|
|
5174
5210
|
key: "handleOrientationChange",
|
|
5175
5211
|
value: function() {
|
|
5176
5212
|
this.isEventListenerAdded || (this.isEventListenerAdded = !0);
|
|
@@ -5251,7 +5287,7 @@ const kc = ({
|
|
|
5251
5287
|
}) => {
|
|
5252
5288
|
const { language: s } = Va();
|
|
5253
5289
|
console.log("🚀 ~ ChatModal ~ language:", s);
|
|
5254
|
-
const { messages: r, addMessage: o, updateMessageAction: a } = Ha(), [c, S] = Ve(""), [B, D] = Ve(!1), [F, g] = Ve(!0), [I, k] = Ve(null),
|
|
5290
|
+
const { messages: r, addMessage: o, updateMessageAction: a } = Ha(), [c, S] = Ve(""), [B, D] = Ve(!1), [F, g] = Ve(!0), [I, k] = Ve(null), m = tn(null), C = tn(null), re = tn(null), { account: T, chainData: H, chainType: j, chainTypeMoralis: le, chainId: oe } = Nn(), Se = Pe(() => {
|
|
5255
5291
|
const U = localStorage.getItem("dataBuyToken");
|
|
5256
5292
|
if (U)
|
|
5257
5293
|
try {
|
|
@@ -5279,12 +5315,12 @@ const kc = ({
|
|
|
5279
5315
|
[]
|
|
5280
5316
|
), l = Pe(
|
|
5281
5317
|
(U) => {
|
|
5282
|
-
const
|
|
5283
|
-
i(
|
|
5318
|
+
const z = { ...Se(), ...U };
|
|
5319
|
+
i(z);
|
|
5284
5320
|
},
|
|
5285
5321
|
[Se, i]
|
|
5286
5322
|
), u = Pe((U) => {
|
|
5287
|
-
k(U), qt.isDesktop &&
|
|
5323
|
+
k(U), qt.isDesktop && re.current?.focus();
|
|
5288
5324
|
}, []), y = Pe(
|
|
5289
5325
|
async (U, J) => {
|
|
5290
5326
|
l({
|
|
@@ -5293,38 +5329,38 @@ const kc = ({
|
|
|
5293
5329
|
});
|
|
5294
5330
|
try {
|
|
5295
5331
|
D(!0);
|
|
5296
|
-
const
|
|
5332
|
+
const z = await Ze({
|
|
5297
5333
|
address: T?.address || "",
|
|
5298
5334
|
chain: le
|
|
5299
5335
|
});
|
|
5300
|
-
if (
|
|
5301
|
-
const
|
|
5302
|
-
id:
|
|
5303
|
-
text: `${
|
|
5304
|
-
value: `Buy with ${
|
|
5336
|
+
if (z?.success && z?.data?.result) {
|
|
5337
|
+
const Y = z.data.result.map((W) => ({
|
|
5338
|
+
id: W.token_address,
|
|
5339
|
+
text: `${W.name}: ${W.balance_formatted} ${W.symbol} ($${W.usd_value?.toFixed(4) || "0"})`,
|
|
5340
|
+
value: `Buy with ${W.symbol}`,
|
|
5305
5341
|
action: "click_balance_item_user_to_buy_button",
|
|
5306
5342
|
fullWidth: !0,
|
|
5307
5343
|
extraData: {
|
|
5308
|
-
tokenAddress:
|
|
5309
|
-
symbol:
|
|
5310
|
-
balance:
|
|
5311
|
-
usdValue:
|
|
5312
|
-
decimals:
|
|
5344
|
+
tokenAddress: W.token_address,
|
|
5345
|
+
symbol: W.symbol,
|
|
5346
|
+
balance: W.balance_formatted,
|
|
5347
|
+
usdValue: W.usd_value,
|
|
5348
|
+
decimals: W.decimals
|
|
5313
5349
|
}
|
|
5314
5350
|
}));
|
|
5315
5351
|
o(
|
|
5316
5352
|
"This is the spendable balance of your wallet on OPTIMISM chain. Please choose the coins you want to use for this trade.",
|
|
5317
5353
|
"bot",
|
|
5318
5354
|
void 0,
|
|
5319
|
-
|
|
5355
|
+
Y
|
|
5320
5356
|
);
|
|
5321
5357
|
} else
|
|
5322
5358
|
o(
|
|
5323
5359
|
"Sorry, I could not fetch your wallet balance. Please try again.",
|
|
5324
5360
|
"bot"
|
|
5325
5361
|
);
|
|
5326
|
-
} catch (
|
|
5327
|
-
console.error("Error fetching wallet balance:",
|
|
5362
|
+
} catch (z) {
|
|
5363
|
+
console.error("Error fetching wallet balance:", z), o(
|
|
5328
5364
|
"Sorry, I encountered an error fetching your wallet balance.",
|
|
5329
5365
|
"bot"
|
|
5330
5366
|
);
|
|
@@ -5334,13 +5370,13 @@ const kc = ({
|
|
|
5334
5370
|
},
|
|
5335
5371
|
[T?.address, le, o, l]
|
|
5336
5372
|
), h = Pe(
|
|
5337
|
-
async (U, J,
|
|
5338
|
-
const
|
|
5373
|
+
async (U, J, z, Z) => {
|
|
5374
|
+
const Y = [25, 50, 75, 100];
|
|
5339
5375
|
l({
|
|
5340
5376
|
srcTokenAddress: U,
|
|
5341
5377
|
srcTokenDecimals: Z || 18
|
|
5342
5378
|
});
|
|
5343
|
-
const
|
|
5379
|
+
const W = Y.map(
|
|
5344
5380
|
(L) => ({
|
|
5345
5381
|
id: `percent-${L}`,
|
|
5346
5382
|
text: `${L}%`,
|
|
@@ -5350,17 +5386,17 @@ const kc = ({
|
|
|
5350
5386
|
percent: L,
|
|
5351
5387
|
tokenAddress: U,
|
|
5352
5388
|
tokenSymbol: J,
|
|
5353
|
-
tokenBalance:
|
|
5389
|
+
tokenBalance: z
|
|
5354
5390
|
}
|
|
5355
5391
|
})
|
|
5356
5392
|
);
|
|
5357
5393
|
o(
|
|
5358
5394
|
`📊 Select the amount of ${J} to use:
|
|
5359
5395
|
|
|
5360
|
-
Available: ${
|
|
5396
|
+
Available: ${z} ${J}`,
|
|
5361
5397
|
"bot",
|
|
5362
5398
|
void 0,
|
|
5363
|
-
|
|
5399
|
+
W
|
|
5364
5400
|
);
|
|
5365
5401
|
},
|
|
5366
5402
|
[o, l]
|
|
@@ -5369,38 +5405,38 @@ Available: ${H} ${J}`,
|
|
|
5369
5405
|
l({
|
|
5370
5406
|
amount: (parseFloat(J) * (U / 100)).toFixed(6)
|
|
5371
5407
|
});
|
|
5372
|
-
const
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
).toString(),
|
|
5376
|
-
chainId:
|
|
5377
|
-
tokenIn:
|
|
5408
|
+
const z = Se(), Z = it(
|
|
5409
|
+
z.amount,
|
|
5410
|
+
z.srcTokenDecimals || 18
|
|
5411
|
+
).toString(), Y = await fn({
|
|
5412
|
+
chainId: oe,
|
|
5413
|
+
tokenIn: z.srcTokenAddress,
|
|
5378
5414
|
tokenInAmount: Z,
|
|
5379
|
-
tokenOut:
|
|
5415
|
+
tokenOut: z.descTokenAddress,
|
|
5380
5416
|
tokenOutRecipient: T?.address || "",
|
|
5381
5417
|
slippage: "auto",
|
|
5382
5418
|
accesstoken: "d6c45897b8f6"
|
|
5383
5419
|
});
|
|
5384
|
-
if (
|
|
5385
|
-
const
|
|
5420
|
+
if (Y.success && Y.data) {
|
|
5421
|
+
const W = Y.data, L = W.tokenIn, _ = W.tokenOut, G = (parseFloat(L.amount) / Math.pow(10, L.decimals)).toFixed(6), O = (parseFloat(_.amount) / Math.pow(10, _.decimals)).toFixed(6), te = `📋 Swap Preview
|
|
5386
5422
|
|
|
5387
|
-
From: ${
|
|
5423
|
+
From: ${G} ${L.symbol}
|
|
5388
5424
|
To: ${O} ${_.symbol}
|
|
5389
5425
|
|
|
5390
5426
|
💰 Value: ~$${L.approximateUsdValue?.toFixed(4) || "0"}
|
|
5391
|
-
📊 Slippage: ${
|
|
5392
|
-
⛽ Gas Fee: ~$${
|
|
5393
|
-
💵 Protocol Fee: ~$${
|
|
5427
|
+
📊 Slippage: ${W.slippage}%
|
|
5428
|
+
⛽ Gas Fee: ~$${W.estimatedTransactionFee?.approximateUsdValue?.toFixed(6) || "0"}
|
|
5429
|
+
💵 Protocol Fee: ~$${W.protocolFeeApproximateUsdValue?.toFixed(6) || "0"}
|
|
5394
5430
|
|
|
5395
|
-
`, de =
|
|
5431
|
+
`, de = z.srcTokenAddress === "0x0000000000000000000000000000000000000000" || z.srcTokenAddress === "";
|
|
5396
5432
|
let ge = !1;
|
|
5397
|
-
if (!de && T?.address &&
|
|
5433
|
+
if (!de && T?.address && W.tx?.to)
|
|
5398
5434
|
try {
|
|
5399
5435
|
const ve = await hn({
|
|
5400
|
-
tokenAddress:
|
|
5436
|
+
tokenAddress: z.srcTokenAddress,
|
|
5401
5437
|
ownerAddress: T.address,
|
|
5402
|
-
spenderAddress:
|
|
5403
|
-
chainId:
|
|
5438
|
+
spenderAddress: W.tx.to,
|
|
5439
|
+
chainId: oe
|
|
5404
5440
|
});
|
|
5405
5441
|
ge = new ut(
|
|
5406
5442
|
ve.toString()
|
|
@@ -5409,7 +5445,7 @@ To: ${O} ${_.symbol}
|
|
|
5409
5445
|
console.warn("Allowance check failed:", ve), ge = !0;
|
|
5410
5446
|
}
|
|
5411
5447
|
if (ge) {
|
|
5412
|
-
const ve = te + `⚠️ Step 1/2: You need to approve ${L.symbol} first before swapping.`,
|
|
5448
|
+
const ve = te + `⚠️ Step 1/2: You need to approve ${L.symbol} first before swapping.`, q = [
|
|
5413
5449
|
{
|
|
5414
5450
|
id: "approve-for-swap",
|
|
5415
5451
|
text: `🔓 Step 1: Approve ${L.symbol}`,
|
|
@@ -5417,10 +5453,10 @@ To: ${O} ${_.symbol}
|
|
|
5417
5453
|
action: "approve_for_swap",
|
|
5418
5454
|
fullWidth: !0,
|
|
5419
5455
|
extraData: {
|
|
5420
|
-
tokenAddress:
|
|
5421
|
-
spenderAddress:
|
|
5456
|
+
tokenAddress: z.srcTokenAddress,
|
|
5457
|
+
spenderAddress: W.tx.to,
|
|
5422
5458
|
tokenSymbol: L.symbol,
|
|
5423
|
-
tx:
|
|
5459
|
+
tx: W.tx
|
|
5424
5460
|
}
|
|
5425
5461
|
},
|
|
5426
5462
|
{
|
|
@@ -5430,7 +5466,7 @@ To: ${O} ${_.symbol}
|
|
|
5430
5466
|
action: "cancel_swap"
|
|
5431
5467
|
}
|
|
5432
5468
|
];
|
|
5433
|
-
o(ve, "bot", void 0,
|
|
5469
|
+
o(ve, "bot", void 0, q);
|
|
5434
5470
|
} else {
|
|
5435
5471
|
const ve = [
|
|
5436
5472
|
{
|
|
@@ -5439,7 +5475,7 @@ To: ${O} ${_.symbol}
|
|
|
5439
5475
|
value: "Confirm swap",
|
|
5440
5476
|
action: "confirm_swap",
|
|
5441
5477
|
extraData: {
|
|
5442
|
-
tx:
|
|
5478
|
+
tx: W.tx
|
|
5443
5479
|
}
|
|
5444
5480
|
},
|
|
5445
5481
|
{
|
|
@@ -5458,83 +5494,83 @@ To: ${O} ${_.symbol}
|
|
|
5458
5494
|
}
|
|
5459
5495
|
} else
|
|
5460
5496
|
o(
|
|
5461
|
-
`⚠️ Unable to get swap estimation. Error: ${
|
|
5497
|
+
`⚠️ Unable to get swap estimation. Error: ${Y.errorMessage || Y.error || "Unknown error"}`,
|
|
5462
5498
|
"bot"
|
|
5463
5499
|
);
|
|
5464
5500
|
},
|
|
5465
|
-
[Se, l, o,
|
|
5501
|
+
[Se, l, o, oe, T?.address]
|
|
5466
5502
|
), E = Pe(
|
|
5467
|
-
async (U, J,
|
|
5503
|
+
async (U, J, z) => {
|
|
5468
5504
|
try {
|
|
5469
5505
|
if (o(U, "user"), g(!1), D(!0), J)
|
|
5470
5506
|
switch (await bt(500), J) {
|
|
5471
5507
|
case "click_buy_item_token_button":
|
|
5472
5508
|
await y(
|
|
5473
|
-
|
|
5474
|
-
|
|
5509
|
+
z?.tokenAddress || "",
|
|
5510
|
+
z?.decimals || 18
|
|
5475
5511
|
);
|
|
5476
5512
|
break;
|
|
5477
5513
|
case "click_balance_item_user_to_buy_button":
|
|
5478
5514
|
await h(
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5515
|
+
z?.tokenAddress || "",
|
|
5516
|
+
z?.symbol || "",
|
|
5517
|
+
z?.balance || "",
|
|
5518
|
+
z?.decimals || 18
|
|
5483
5519
|
);
|
|
5484
5520
|
break;
|
|
5485
5521
|
case "select_percent":
|
|
5486
5522
|
await b(
|
|
5487
|
-
|
|
5488
|
-
|
|
5523
|
+
z?.percent || 0,
|
|
5524
|
+
z?.tokenBalance || ""
|
|
5489
5525
|
);
|
|
5490
5526
|
break;
|
|
5491
5527
|
case "confirm_swap":
|
|
5492
|
-
if (
|
|
5493
|
-
const Z =
|
|
5528
|
+
if (z?.tx && n) {
|
|
5529
|
+
const Z = z.tx, Y = {
|
|
5494
5530
|
from: T?.address || "",
|
|
5495
5531
|
to: Z.to,
|
|
5496
5532
|
data: Z.data,
|
|
5497
5533
|
value: Z.value,
|
|
5498
|
-
chainId:
|
|
5534
|
+
chainId: oe
|
|
5499
5535
|
};
|
|
5500
5536
|
o("⚙️ Transaction processing... Please wait.", "bot");
|
|
5501
5537
|
try {
|
|
5502
|
-
const
|
|
5503
|
-
if (
|
|
5504
|
-
const L =
|
|
5505
|
-
[View on Explorer](${L}/tx/${
|
|
5506
|
-
Tx: ${
|
|
5538
|
+
const W = await n(Y);
|
|
5539
|
+
if (W.status === "success") {
|
|
5540
|
+
const L = H?.blockExplorers?.default?.url, _ = W.transactionHash ? L ? `
|
|
5541
|
+
[View on Explorer](${L}/tx/${W.transactionHash})` : `
|
|
5542
|
+
Tx: ${W.transactionHash}` : "";
|
|
5507
5543
|
o(
|
|
5508
5544
|
`✅ Transaction successful! Your swap has been completed.${_}`,
|
|
5509
5545
|
"bot"
|
|
5510
5546
|
);
|
|
5511
5547
|
} else {
|
|
5512
|
-
const L =
|
|
5513
|
-
Error: ${
|
|
5548
|
+
const L = W.error ? `
|
|
5549
|
+
Error: ${W.error}` : "";
|
|
5514
5550
|
o(
|
|
5515
5551
|
`❌ Transaction failed. Please try again.${L}`,
|
|
5516
5552
|
"bot"
|
|
5517
5553
|
);
|
|
5518
5554
|
}
|
|
5519
|
-
} catch (
|
|
5520
|
-
console.error("Transaction error:",
|
|
5555
|
+
} catch (W) {
|
|
5556
|
+
console.error("Transaction error:", W), o("❌ Transaction failed. Please try again.", "bot");
|
|
5521
5557
|
}
|
|
5522
5558
|
} else
|
|
5523
5559
|
o("⚠️ Transaction data not available.", "bot");
|
|
5524
5560
|
break;
|
|
5525
5561
|
case "approve_for_swap": {
|
|
5526
|
-
const Z =
|
|
5527
|
-
if (!Z || !
|
|
5562
|
+
const Z = z?.tokenAddress || "", Y = z?.spenderAddress || "", W = z?.tokenSymbol || "token", L = z?.tx;
|
|
5563
|
+
if (!Z || !Y || !n) {
|
|
5528
5564
|
o("⚠️ Approval data not available.", "bot");
|
|
5529
5565
|
break;
|
|
5530
5566
|
}
|
|
5531
5567
|
const _ = wc({
|
|
5532
5568
|
tokenAddress: Z,
|
|
5533
|
-
spenderAddress:
|
|
5569
|
+
spenderAddress: Y,
|
|
5534
5570
|
fromAddress: T?.address || "",
|
|
5535
|
-
chainId:
|
|
5536
|
-
tokenSymbol:
|
|
5537
|
-
}),
|
|
5571
|
+
chainId: oe,
|
|
5572
|
+
tokenSymbol: W
|
|
5573
|
+
}), G = {
|
|
5538
5574
|
from: _.from,
|
|
5539
5575
|
to: _.to,
|
|
5540
5576
|
data: _.data,
|
|
@@ -5542,14 +5578,14 @@ Error: ${Y.error}` : "";
|
|
|
5542
5578
|
chainId: _.chainId
|
|
5543
5579
|
};
|
|
5544
5580
|
o(
|
|
5545
|
-
`🔓 Step 1/2: Approving ${
|
|
5581
|
+
`🔓 Step 1/2: Approving ${W}... Please confirm in your wallet.`,
|
|
5546
5582
|
"bot"
|
|
5547
5583
|
);
|
|
5548
5584
|
try {
|
|
5549
|
-
const O = await n(
|
|
5585
|
+
const O = await n(G);
|
|
5550
5586
|
if (O.status === "success")
|
|
5551
5587
|
o(
|
|
5552
|
-
`✅ ${
|
|
5588
|
+
`✅ ${W} approved successfully!`,
|
|
5553
5589
|
"bot"
|
|
5554
5590
|
), o(
|
|
5555
5591
|
"📋 Step 2/2: Now you can execute the swap.",
|
|
@@ -5589,12 +5625,12 @@ Error: ${O.error}` : "";
|
|
|
5589
5625
|
o("❌ Swap cancelled.", "bot");
|
|
5590
5626
|
break;
|
|
5591
5627
|
case "click_swap_dest_token": {
|
|
5592
|
-
const Z =
|
|
5628
|
+
const Z = z?.tokenAddress || "", Y = z?.symbol || "", W = z?.decimals || 18;
|
|
5593
5629
|
l({
|
|
5594
5630
|
descTokenAddress: Z,
|
|
5595
|
-
descTokenDecimals:
|
|
5631
|
+
descTokenDecimals: W
|
|
5596
5632
|
});
|
|
5597
|
-
const _ = Se().srcTokenAddress || "",
|
|
5633
|
+
const _ = Se().srcTokenAddress || "", G = _ === "0x0000000000000000000000000000000000000000";
|
|
5598
5634
|
try {
|
|
5599
5635
|
const O = await Ze({
|
|
5600
5636
|
address: T?.address || "",
|
|
@@ -5603,19 +5639,19 @@ Error: ${O.error}` : "";
|
|
|
5603
5639
|
if (O?.success && O?.data?.result) {
|
|
5604
5640
|
const te = O.data.result;
|
|
5605
5641
|
let de = "", ge = "0";
|
|
5606
|
-
if (
|
|
5642
|
+
if (G) {
|
|
5607
5643
|
const ve = te.find(
|
|
5608
|
-
(
|
|
5644
|
+
(q) => q.native_token
|
|
5609
5645
|
);
|
|
5610
|
-
de =
|
|
5646
|
+
de = H?.nativeCurrency?.symbol || "ETH", ge = ve?.balance_formatted || "0";
|
|
5611
5647
|
} else {
|
|
5612
5648
|
const ve = te.find(
|
|
5613
|
-
(
|
|
5649
|
+
(q) => q.token_address.toLowerCase() === _.toLowerCase()
|
|
5614
5650
|
);
|
|
5615
5651
|
ve && (de = ve.symbol, ge = ve.balance_formatted);
|
|
5616
5652
|
}
|
|
5617
5653
|
if (de && parseFloat(ge) > 0) {
|
|
5618
|
-
const
|
|
5654
|
+
const q = [25, 50, 75, 100].map(($) => ({
|
|
5619
5655
|
id: `percent-${$}`,
|
|
5620
5656
|
text: `${$}%`,
|
|
5621
5657
|
value: `Use ${$}% of ${de}`,
|
|
@@ -5628,14 +5664,14 @@ Error: ${O.error}` : "";
|
|
|
5628
5664
|
}
|
|
5629
5665
|
}));
|
|
5630
5666
|
o(
|
|
5631
|
-
`✅ Swap ${de} → ${
|
|
5667
|
+
`✅ Swap ${de} → ${Y}
|
|
5632
5668
|
|
|
5633
5669
|
📊 Select the amount of ${de} to swap:
|
|
5634
5670
|
|
|
5635
5671
|
Available: ${ge} ${de}`,
|
|
5636
5672
|
"bot",
|
|
5637
5673
|
void 0,
|
|
5638
|
-
|
|
5674
|
+
q
|
|
5639
5675
|
);
|
|
5640
5676
|
} else
|
|
5641
5677
|
o(
|
|
@@ -5653,16 +5689,16 @@ Available: ${ge} ${de}`,
|
|
|
5653
5689
|
break;
|
|
5654
5690
|
}
|
|
5655
5691
|
case "select_nft_to_send": {
|
|
5656
|
-
const Z =
|
|
5657
|
-
contract_address:
|
|
5658
|
-
token_id:
|
|
5692
|
+
const Z = z?.name || "NFT", Y = z?.contractAddress || "", W = z?.tokenId || "", L = z?.tokenStandard || "ERC721", _ = z?.amount || "1", G = {
|
|
5693
|
+
contract_address: Y,
|
|
5694
|
+
token_id: W,
|
|
5659
5695
|
to_address: "",
|
|
5660
5696
|
token_standard: L,
|
|
5661
5697
|
amount: L === "ERC1155" ? _ : "1",
|
|
5662
5698
|
nft_name: Z
|
|
5663
5699
|
};
|
|
5664
5700
|
o(
|
|
5665
|
-
`📤 Send **${Z}** (${L} #${
|
|
5701
|
+
`📤 Send **${Z}** (${L} #${W})
|
|
5666
5702
|
|
|
5667
5703
|
Please review and fill in the recipient address below:`,
|
|
5668
5704
|
"bot",
|
|
@@ -5670,7 +5706,7 @@ Please review and fill in the recipient address below:`,
|
|
|
5670
5706
|
void 0,
|
|
5671
5707
|
{
|
|
5672
5708
|
action: "send_nft",
|
|
5673
|
-
parameters:
|
|
5709
|
+
parameters: G,
|
|
5674
5710
|
status: "pending"
|
|
5675
5711
|
}
|
|
5676
5712
|
);
|
|
@@ -5684,7 +5720,7 @@ Please review and fill in the recipient address below:`,
|
|
|
5684
5720
|
}
|
|
5685
5721
|
else
|
|
5686
5722
|
await bt(500), o(`Received: ${U}`, "bot");
|
|
5687
|
-
D(!1), qt.isDesktop &&
|
|
5723
|
+
D(!1), qt.isDesktop && re.current?.focus();
|
|
5688
5724
|
} catch (Z) {
|
|
5689
5725
|
o(
|
|
5690
5726
|
"Sorry, I encountered an error processing your request.",
|
|
@@ -5695,9 +5731,9 @@ Please review and fill in the recipient address below:`,
|
|
|
5695
5731
|
[
|
|
5696
5732
|
T?.address,
|
|
5697
5733
|
o,
|
|
5698
|
-
|
|
5699
|
-
|
|
5700
|
-
|
|
5734
|
+
H?.blockExplorers?.default?.url,
|
|
5735
|
+
H?.nativeCurrency?.symbol,
|
|
5736
|
+
oe,
|
|
5701
5737
|
le,
|
|
5702
5738
|
Se,
|
|
5703
5739
|
y,
|
|
@@ -5709,17 +5745,17 @@ Please review and fill in the recipient address below:`,
|
|
|
5709
5745
|
), p = Pe(async () => {
|
|
5710
5746
|
try {
|
|
5711
5747
|
D(!0);
|
|
5712
|
-
const U =
|
|
5748
|
+
const U = H.tokenTrendingDefault || [], [J, z] = await Promise.allSettled([
|
|
5713
5749
|
Ge.getTopGainers(j, "24h", 5),
|
|
5714
5750
|
Ge.getTokensDetails(U, j)
|
|
5715
5751
|
]);
|
|
5716
5752
|
let Z = [];
|
|
5717
|
-
J.status === "fulfilled" && J.value?.data ? Z = [...J.value.data] : console.warn("⚠️ Top gainers failed:"),
|
|
5718
|
-
(L, _,
|
|
5753
|
+
J.status === "fulfilled" && J.value?.data ? Z = [...J.value.data] : console.warn("⚠️ Top gainers failed:"), z.status === "fulfilled" && z.value?.data ? Z = [...z.value.data, ...Z] : console.warn("⚠️ Default tokens failed:"), Z = Z.filter(
|
|
5754
|
+
(L, _, G) => _ === G.findIndex(
|
|
5719
5755
|
(O) => O.address.toLowerCase() === L.address.toLowerCase()
|
|
5720
5756
|
)
|
|
5721
5757
|
);
|
|
5722
|
-
const
|
|
5758
|
+
const Y = Z.map((L) => ({
|
|
5723
5759
|
id: L?.symbol,
|
|
5724
5760
|
text: L?.symbol,
|
|
5725
5761
|
value: `Buy ${L.name} (${L?.symbol})`,
|
|
@@ -5731,10 +5767,10 @@ Please review and fill in the recipient address below:`,
|
|
|
5731
5767
|
}
|
|
5732
5768
|
}));
|
|
5733
5769
|
await bt(1e3), D(!1), o(
|
|
5734
|
-
`📈 Here is the list of tokens that are currently trending upwards on ${
|
|
5770
|
+
`📈 Here is the list of tokens that are currently trending upwards on ${H?.name || "Unknown"} chain`,
|
|
5735
5771
|
"bot"
|
|
5736
5772
|
);
|
|
5737
|
-
const
|
|
5773
|
+
const W = Z.map(
|
|
5738
5774
|
(L, _) => `${_ + 1}. ${L.name} (${L?.auditGoplus?.token_symbol || L.symbol || "Unknown"})
|
|
5739
5775
|
$${ut(
|
|
5740
5776
|
L?.price || 0
|
|
@@ -5745,11 +5781,11 @@ $${ut(
|
|
|
5745
5781
|
).join(`
|
|
5746
5782
|
`);
|
|
5747
5783
|
o(
|
|
5748
|
-
`${
|
|
5784
|
+
`${W}
|
|
5749
5785
|
Is there any token you want to buy?`,
|
|
5750
5786
|
"bot",
|
|
5751
5787
|
void 0,
|
|
5752
|
-
|
|
5788
|
+
Y
|
|
5753
5789
|
);
|
|
5754
5790
|
} catch (U) {
|
|
5755
5791
|
console.error("Error fetching trending tokens:", U), o(
|
|
@@ -5759,7 +5795,7 @@ Is there any token you want to buy?`,
|
|
|
5759
5795
|
} finally {
|
|
5760
5796
|
D(!1);
|
|
5761
5797
|
}
|
|
5762
|
-
}, [o,
|
|
5798
|
+
}, [o, H?.name, H.tokenTrendingDefault, j]), w = Pe(async () => {
|
|
5763
5799
|
try {
|
|
5764
5800
|
D(!0);
|
|
5765
5801
|
const U = await Qa({
|
|
@@ -5769,29 +5805,29 @@ Is there any token you want to buy?`,
|
|
|
5769
5805
|
exclude_spam: !0
|
|
5770
5806
|
});
|
|
5771
5807
|
if (U?.success && U?.data?.result && U.data.result.length > 0) {
|
|
5772
|
-
const J = U.data.result,
|
|
5773
|
-
const
|
|
5808
|
+
const J = U.data.result, z = J.map((Y) => {
|
|
5809
|
+
const W = Y.normalized_metadata?.name || Y.name || `#${Y.token_id}`, L = Y.normalized_metadata?.image || Y.media?.original_media_url || "";
|
|
5774
5810
|
return {
|
|
5775
|
-
id: `${
|
|
5776
|
-
text: `${
|
|
5777
|
-
value: `Send ${
|
|
5811
|
+
id: `${Y.token_address}-${Y.token_id}`,
|
|
5812
|
+
text: `${W} (${Y.symbol || Y.contract_type}) - ${Y.token_id}`,
|
|
5813
|
+
value: `Send ${W}`,
|
|
5778
5814
|
action: "select_nft_to_send",
|
|
5779
5815
|
fullWidth: !0,
|
|
5780
5816
|
extraData: {
|
|
5781
|
-
contractAddress:
|
|
5782
|
-
tokenId:
|
|
5783
|
-
tokenStandard:
|
|
5784
|
-
name:
|
|
5785
|
-
symbol:
|
|
5786
|
-
amount:
|
|
5817
|
+
contractAddress: Y.token_address,
|
|
5818
|
+
tokenId: Y.token_id,
|
|
5819
|
+
tokenStandard: Y.contract_type,
|
|
5820
|
+
name: W,
|
|
5821
|
+
symbol: Y.symbol,
|
|
5822
|
+
amount: Y.amount,
|
|
5787
5823
|
image: L
|
|
5788
5824
|
}
|
|
5789
5825
|
};
|
|
5790
|
-
}), Z = J.map((
|
|
5791
|
-
const L =
|
|
5826
|
+
}), Z = J.map((Y, W) => {
|
|
5827
|
+
const L = Y.normalized_metadata?.name || Y.name || `#${Y.token_id}`, _ = Y.contract_type === "ERC1155" ? ` (x${Y.amount})` : "", G = Y.normalized_metadata?.image || Y.media?.original_media_url || "", O = G ? `
|
|
5792
5828
|
` : "🖼️ ";
|
|
5793
|
-
return `${
|
|
5794
|
-
${
|
|
5829
|
+
return `${W + 1}. ${O}**${L}**${_}
|
|
5830
|
+
${Y.symbol || Y.contract_type} | Token ID: ${Y.token_id}`;
|
|
5795
5831
|
}).join(`
|
|
5796
5832
|
|
|
5797
5833
|
`);
|
|
@@ -5803,7 +5839,7 @@ ${Z}
|
|
|
5803
5839
|
Select an NFT to send:`,
|
|
5804
5840
|
"bot",
|
|
5805
5841
|
void 0,
|
|
5806
|
-
|
|
5842
|
+
z
|
|
5807
5843
|
);
|
|
5808
5844
|
} else
|
|
5809
5845
|
D(!1), o(
|
|
@@ -5835,14 +5871,14 @@ Select an NFT to send:`,
|
|
|
5835
5871
|
[o, p]
|
|
5836
5872
|
), v = (U) => {
|
|
5837
5873
|
if (U === 0) return !0;
|
|
5838
|
-
const J = r[U],
|
|
5839
|
-
return Z.setHours(0, 0, 0, 0),
|
|
5874
|
+
const J = r[U], z = r[U - 1], Z = new Date(J.timestamp), Y = new Date(z.timestamp);
|
|
5875
|
+
return Z.setHours(0, 0, 0, 0), Y.setHours(0, 0, 0, 0), Z.getTime() !== Y.getTime();
|
|
5840
5876
|
};
|
|
5841
5877
|
et(() => {
|
|
5842
|
-
|
|
5878
|
+
m.current?.scrollIntoView({ behavior: "smooth" });
|
|
5843
5879
|
}, [r]), et(() => {
|
|
5844
|
-
e && (
|
|
5845
|
-
|
|
5880
|
+
e && (re.current && qt.isDesktop && re.current.focus(), m.current?.scrollIntoView({ behavior: "instant" }), g(!0), setTimeout(() => {
|
|
5881
|
+
m.current?.scrollIntoView({ behavior: "smooth" });
|
|
5846
5882
|
}, 50));
|
|
5847
5883
|
}, [e]), et(() => {
|
|
5848
5884
|
const U = (J) => {
|
|
@@ -5855,54 +5891,54 @@ Select an NFT to send:`,
|
|
|
5855
5891
|
const U = I, J = o(c.trim(), "user", I?.id);
|
|
5856
5892
|
S(""), k(null), D(!0), g(!1), D(!0);
|
|
5857
5893
|
try {
|
|
5858
|
-
const
|
|
5894
|
+
const z = ac({
|
|
5859
5895
|
walletAddress: T?.address || "Not connected",
|
|
5860
|
-
chainName:
|
|
5861
|
-
chainId:
|
|
5862
|
-
nativeSymbol:
|
|
5896
|
+
chainName: H?.name || "Unknown",
|
|
5897
|
+
chainId: oe || 1,
|
|
5898
|
+
nativeSymbol: H?.nativeCurrency?.symbol || "ETH"
|
|
5863
5899
|
}), Z = r.slice(-20);
|
|
5864
|
-
let
|
|
5900
|
+
let Y = "";
|
|
5865
5901
|
if (Z.length > 0) {
|
|
5866
|
-
|
|
5902
|
+
Y = `
|
|
5867
5903
|
|
|
5868
5904
|
## CONVERSATION HISTORY:
|
|
5869
5905
|
`;
|
|
5870
5906
|
for (const _ of Z)
|
|
5871
5907
|
if (_.sender === "user")
|
|
5872
|
-
|
|
5908
|
+
Y += `User: ${_.text}
|
|
5873
5909
|
`;
|
|
5874
5910
|
else {
|
|
5875
|
-
const
|
|
5876
|
-
|
|
5911
|
+
const G = _.text.length > 200 ? _.text.substring(0, 200) + "..." : _.text;
|
|
5912
|
+
Y += `Assistant: ${G}
|
|
5877
5913
|
`;
|
|
5878
5914
|
}
|
|
5879
|
-
|
|
5915
|
+
Y += `
|
|
5880
5916
|
---
|
|
5881
5917
|
`;
|
|
5882
5918
|
}
|
|
5883
|
-
let
|
|
5884
|
-
U && (
|
|
5919
|
+
let W = c.trim();
|
|
5920
|
+
U && (W = `[Replying to ${U.sender === "user" ? "my previous" : "your"} message: "${U.text}"]
|
|
5885
5921
|
|
|
5886
|
-
${
|
|
5922
|
+
${W}`);
|
|
5887
5923
|
const L = await ja({
|
|
5888
|
-
prompt:
|
|
5924
|
+
prompt: W,
|
|
5889
5925
|
model: "gpt-4.1-mini",
|
|
5890
5926
|
stream: !1,
|
|
5891
|
-
systemPrompt:
|
|
5927
|
+
systemPrompt: z + Y
|
|
5892
5928
|
});
|
|
5893
5929
|
if (L.success && L.data) {
|
|
5894
5930
|
const _ = L.data.text || "";
|
|
5895
|
-
let
|
|
5931
|
+
let G = null;
|
|
5896
5932
|
try {
|
|
5897
5933
|
let O = _.trim();
|
|
5898
|
-
O.startsWith("```json") ? O = O.replace(/^```json\s*/, "").replace(/\s*```$/, "") : O.startsWith("```") && (O = O.replace(/^```\s*/, "").replace(/\s*```$/, "")),
|
|
5934
|
+
O.startsWith("```json") ? O = O.replace(/^```json\s*/, "").replace(/\s*```$/, "") : O.startsWith("```") && (O = O.replace(/^```\s*/, "").replace(/\s*```$/, "")), G = JSON.parse(O);
|
|
5899
5935
|
} catch {
|
|
5900
|
-
|
|
5936
|
+
G = null;
|
|
5901
5937
|
}
|
|
5902
|
-
if (
|
|
5903
|
-
if (
|
|
5904
|
-
const O =
|
|
5905
|
-
let te =
|
|
5938
|
+
if (G && G.action && G.action !== "chat")
|
|
5939
|
+
if (G.action === "buy_token") {
|
|
5940
|
+
const O = G.parameters?.token_symbol || "";
|
|
5941
|
+
let te = G.parameters?.contract_address || "", de = 18;
|
|
5906
5942
|
if (te)
|
|
5907
5943
|
try {
|
|
5908
5944
|
const ge = await Ge.getTokensDetails(
|
|
@@ -5920,22 +5956,22 @@ ${Y}`);
|
|
|
5920
5956
|
chain: le
|
|
5921
5957
|
});
|
|
5922
5958
|
if (ge?.success && ge?.data?.result) {
|
|
5923
|
-
const ve = ge.data.result,
|
|
5959
|
+
const ve = ge.data.result, q = ve.find(
|
|
5924
5960
|
($) => $.token_address.toLowerCase() === te.toLowerCase()
|
|
5925
5961
|
) || ve.find(
|
|
5926
5962
|
($) => $.symbol.toUpperCase() === O.toUpperCase()
|
|
5927
5963
|
);
|
|
5928
|
-
|
|
5964
|
+
q && (te = q.token_address, de = q.decimals);
|
|
5929
5965
|
}
|
|
5930
5966
|
if (!te) {
|
|
5931
|
-
const ve =
|
|
5967
|
+
const ve = H.tokenTrendingDefault || [], [q, $] = await Promise.allSettled([
|
|
5932
5968
|
Ge.getTopGainers(j, "24h", 10),
|
|
5933
5969
|
Ge.getTokensDetails(
|
|
5934
5970
|
ve,
|
|
5935
5971
|
j
|
|
5936
5972
|
)
|
|
5937
5973
|
]), ee = [];
|
|
5938
|
-
|
|
5974
|
+
q.status === "fulfilled" && q.value?.data && ee.push(...q.value.data), $.status === "fulfilled" && $.value?.data && ee.push(...$.value.data);
|
|
5939
5975
|
const ae = ee.find(
|
|
5940
5976
|
(Te) => Te.address?.toLowerCase() === te.toLowerCase()
|
|
5941
5977
|
) || ee.find(
|
|
@@ -5947,65 +5983,65 @@ ${Y}`);
|
|
|
5947
5983
|
console.warn("Token lookup for buy failed:", ge);
|
|
5948
5984
|
}
|
|
5949
5985
|
te ? (o(
|
|
5950
|
-
|
|
5986
|
+
G.message || `🛒 I'll help you buy ${O}. Let me show your available tokens to trade with.`,
|
|
5951
5987
|
"bot",
|
|
5952
5988
|
J.id
|
|
5953
5989
|
), await y(te, de)) : (o(
|
|
5954
|
-
|
|
5990
|
+
G.message || `I couldn't find the token "${O}" on this chain. Here are the trending tokens you can buy:`,
|
|
5955
5991
|
"bot",
|
|
5956
5992
|
J.id
|
|
5957
5993
|
), await p());
|
|
5958
|
-
} else if (
|
|
5959
|
-
const O = { ...
|
|
5994
|
+
} else if (G.action === "swap_token") {
|
|
5995
|
+
const O = { ...G.parameters || {} }, te = O.token_in === "native" || O.token_in_symbol?.toUpperCase() === H?.nativeCurrency?.symbol?.toUpperCase();
|
|
5960
5996
|
if (!te && (O.token_in || O.token_in_symbol) && T?.address)
|
|
5961
5997
|
try {
|
|
5962
|
-
const
|
|
5998
|
+
const q = await Ze({
|
|
5963
5999
|
address: T.address,
|
|
5964
6000
|
chain: le
|
|
5965
6001
|
});
|
|
5966
|
-
if (
|
|
5967
|
-
const $ =
|
|
6002
|
+
if (q?.success && q?.data?.result) {
|
|
6003
|
+
const $ = q.data.result, ee = O.token_in ? $.find(
|
|
5968
6004
|
(ae) => ae.token_address.toLowerCase() === O.token_in.toLowerCase()
|
|
5969
6005
|
) : $.find(
|
|
5970
6006
|
(ae) => ae.symbol.toUpperCase() === O.token_in_symbol.toUpperCase()
|
|
5971
6007
|
);
|
|
5972
6008
|
ee && (O.token_in = ee.token_address, O.token_in_decimals = String(ee.decimals));
|
|
5973
6009
|
}
|
|
5974
|
-
} catch (
|
|
5975
|
-
console.warn("Resolve token_in failed:",
|
|
6010
|
+
} catch (q) {
|
|
6011
|
+
console.warn("Resolve token_in failed:", q);
|
|
5976
6012
|
}
|
|
5977
6013
|
if ((O.token_out || O.token_out_symbol) && T?.address)
|
|
5978
6014
|
try {
|
|
5979
|
-
const
|
|
6015
|
+
const q = await Ze({
|
|
5980
6016
|
address: T.address,
|
|
5981
6017
|
chain: le
|
|
5982
6018
|
});
|
|
5983
|
-
if (
|
|
5984
|
-
const $ =
|
|
6019
|
+
if (q?.success && q?.data?.result) {
|
|
6020
|
+
const $ = q.data.result, ee = O.token_out ? $.find(
|
|
5985
6021
|
(ae) => ae.token_address.toLowerCase() === O.token_out.toLowerCase()
|
|
5986
6022
|
) : $.find(
|
|
5987
6023
|
(ae) => ae.symbol.toUpperCase() === O.token_out_symbol.toUpperCase()
|
|
5988
6024
|
);
|
|
5989
6025
|
ee && (O.token_out = ee.token_address, O.token_out_decimals = String(ee.decimals));
|
|
5990
6026
|
}
|
|
5991
|
-
} catch (
|
|
5992
|
-
console.warn("Resolve token_out failed:",
|
|
6027
|
+
} catch (q) {
|
|
6028
|
+
console.warn("Resolve token_out failed:", q);
|
|
5993
6029
|
}
|
|
5994
6030
|
const de = !!(O.token_in || te), ge = !!O.token_out, ve = !!O.amount;
|
|
5995
6031
|
if (de && ge && ve) {
|
|
5996
6032
|
o(
|
|
5997
|
-
|
|
6033
|
+
G.message || "🔄 Preparing your swap...",
|
|
5998
6034
|
"bot",
|
|
5999
6035
|
J.id
|
|
6000
6036
|
);
|
|
6001
6037
|
try {
|
|
6002
|
-
const
|
|
6003
|
-
O.token_out &&
|
|
6038
|
+
const q = [];
|
|
6039
|
+
O.token_out && q.push(O.token_out), O.token_in && !te && q.push(O.token_in);
|
|
6004
6040
|
let $ = 18, ee = 18;
|
|
6005
|
-
if (
|
|
6041
|
+
if (q.length > 0)
|
|
6006
6042
|
try {
|
|
6007
6043
|
const ne = await Ge.getTokensDetails(
|
|
6008
|
-
|
|
6044
|
+
q,
|
|
6009
6045
|
j
|
|
6010
6046
|
);
|
|
6011
6047
|
if (ne?.data)
|
|
@@ -6030,12 +6066,12 @@ ${Y}`);
|
|
|
6030
6066
|
(fe) => fe.native_token
|
|
6031
6067
|
), Ce = parseFloat(
|
|
6032
6068
|
Be?.balance_formatted || "0"
|
|
6033
|
-
),
|
|
6069
|
+
), se = parseFloat(
|
|
6034
6070
|
O.amount
|
|
6035
6071
|
);
|
|
6036
|
-
if (Ce <
|
|
6072
|
+
if (Ce < se) {
|
|
6037
6073
|
o(
|
|
6038
|
-
`⚠️ Insufficient balance! You have ${Ce.toFixed(6)} ${
|
|
6074
|
+
`⚠️ Insufficient balance! You have ${Ce.toFixed(6)} ${H?.nativeCurrency?.symbol || "native"} but need ${O.amount}. Please top up your wallet or reduce the amount.`,
|
|
6039
6075
|
"bot"
|
|
6040
6076
|
), D(!1);
|
|
6041
6077
|
return;
|
|
@@ -6053,10 +6089,10 @@ ${Y}`);
|
|
|
6053
6089
|
}
|
|
6054
6090
|
const Ce = parseFloat(
|
|
6055
6091
|
Be.balance_formatted || "0"
|
|
6056
|
-
),
|
|
6092
|
+
), se = parseFloat(
|
|
6057
6093
|
O.amount
|
|
6058
6094
|
);
|
|
6059
|
-
if (Ce <
|
|
6095
|
+
if (Ce < se) {
|
|
6060
6096
|
o(
|
|
6061
6097
|
`⚠️ Insufficient balance! You have ${Ce.toFixed(6)} ${Be.symbol} (~$${Be.usd_value?.toFixed(2) || "0"}) but need ${O.amount}. Please reduce the amount or add more tokens.`,
|
|
6062
6098
|
"bot"
|
|
@@ -6080,7 +6116,7 @@ ${Y}`);
|
|
|
6080
6116
|
O.amount,
|
|
6081
6117
|
$
|
|
6082
6118
|
).toString(), Me = await fn({
|
|
6083
|
-
chainId:
|
|
6119
|
+
chainId: oe,
|
|
6084
6120
|
tokenIn: ae,
|
|
6085
6121
|
tokenInAmount: Te,
|
|
6086
6122
|
tokenOut: O.token_out,
|
|
@@ -6089,10 +6125,10 @@ ${Y}`);
|
|
|
6089
6125
|
accesstoken: "d6c45897b8f6"
|
|
6090
6126
|
});
|
|
6091
6127
|
if (Me.success && Me.data) {
|
|
6092
|
-
const ne = Me.data, we = ne.tokenIn, Be = ne.tokenOut, Ce = (parseFloat(we.amount) / Math.pow(10, we.decimals)).toFixed(6),
|
|
6128
|
+
const ne = Me.data, we = ne.tokenIn, Be = ne.tokenOut, Ce = (parseFloat(we.amount) / Math.pow(10, we.decimals)).toFixed(6), se = (parseFloat(Be.amount) / Math.pow(10, Be.decimals)).toFixed(6), fe = `📋 Swap Preview
|
|
6093
6129
|
|
|
6094
6130
|
From: ${Ce} ${we.symbol}
|
|
6095
|
-
To: ${
|
|
6131
|
+
To: ${se} ${Be.symbol}
|
|
6096
6132
|
|
|
6097
6133
|
💰 Value: ~$${we.approximateUsdValue?.toFixed(4) || "0"}
|
|
6098
6134
|
📊 Slippage: ${ne.slippage}%
|
|
@@ -6100,22 +6136,22 @@ To: ${re} ${Be.symbol}
|
|
|
6100
6136
|
💵 Protocol Fee: ~$${ne.protocolFeeApproximateUsdValue?.toFixed(6) || "0"}
|
|
6101
6137
|
|
|
6102
6138
|
`;
|
|
6103
|
-
let
|
|
6139
|
+
let ie = !1;
|
|
6104
6140
|
if (!te && T?.address && ne.tx?.to)
|
|
6105
6141
|
try {
|
|
6106
6142
|
const be = await hn({
|
|
6107
6143
|
tokenAddress: ae,
|
|
6108
6144
|
ownerAddress: T.address,
|
|
6109
6145
|
spenderAddress: ne.tx.to,
|
|
6110
|
-
chainId:
|
|
6146
|
+
chainId: oe
|
|
6111
6147
|
});
|
|
6112
|
-
|
|
6148
|
+
ie = new ut(
|
|
6113
6149
|
be.toString()
|
|
6114
6150
|
).isLessThan(Te);
|
|
6115
6151
|
} catch (be) {
|
|
6116
|
-
console.warn("Allowance check failed (CASE 1):", be),
|
|
6152
|
+
console.warn("Allowance check failed (CASE 1):", be), ie = !0;
|
|
6117
6153
|
}
|
|
6118
|
-
if (
|
|
6154
|
+
if (ie) {
|
|
6119
6155
|
const be = [
|
|
6120
6156
|
{
|
|
6121
6157
|
id: "approve-for-swap",
|
|
@@ -6171,14 +6207,14 @@ To: ${re} ${Be.symbol}
|
|
|
6171
6207
|
`⚠️ Unable to get swap estimation. Error: ${Me.errorMessage || Me.error || "Unknown error"}`,
|
|
6172
6208
|
"bot"
|
|
6173
6209
|
);
|
|
6174
|
-
} catch (
|
|
6175
|
-
console.error("Swap estimation error:",
|
|
6210
|
+
} catch (q) {
|
|
6211
|
+
console.error("Swap estimation error:", q), o(
|
|
6176
6212
|
"⚠️ Failed to get swap estimation. Please try again.",
|
|
6177
6213
|
"bot"
|
|
6178
6214
|
);
|
|
6179
6215
|
}
|
|
6180
6216
|
} else if (de && ge && !ve) {
|
|
6181
|
-
let
|
|
6217
|
+
let q = te ? 18 : parseInt(O.token_in_decimals || "18", 10), $ = parseInt(
|
|
6182
6218
|
O.token_out_decimals || "18",
|
|
6183
6219
|
10
|
|
6184
6220
|
);
|
|
@@ -6191,7 +6227,7 @@ To: ${re} ${Be.symbol}
|
|
|
6191
6227
|
);
|
|
6192
6228
|
if (ae?.data)
|
|
6193
6229
|
for (const Te of ae.data)
|
|
6194
|
-
!te && Te.address.toLowerCase() === O.token_in?.toLowerCase() && (
|
|
6230
|
+
!te && Te.address.toLowerCase() === O.token_in?.toLowerCase() && (q = Te.decimals || q), Te.address.toLowerCase() === O.token_out?.toLowerCase() && ($ = Te.decimals || $);
|
|
6195
6231
|
} catch (ae) {
|
|
6196
6232
|
console.warn(
|
|
6197
6233
|
"getTokensDetails failed in CASE 2, using fallback decimals:",
|
|
@@ -6209,26 +6245,26 @@ To: ${re} ${Be.symbol}
|
|
|
6209
6245
|
});
|
|
6210
6246
|
if (ae?.success && ae?.data?.result) {
|
|
6211
6247
|
const Me = ae.data.result.find(
|
|
6212
|
-
(
|
|
6213
|
-
), ne =
|
|
6248
|
+
(se) => se.native_token
|
|
6249
|
+
), ne = H?.nativeCurrency?.symbol || "ETH", we = Me?.balance_formatted || "0";
|
|
6214
6250
|
l({
|
|
6215
6251
|
srcTokenAddress: "0x0000000000000000000000000000000000000000",
|
|
6216
|
-
srcTokenDecimals:
|
|
6252
|
+
srcTokenDecimals: q
|
|
6217
6253
|
});
|
|
6218
|
-
const Ce = [25, 50, 75, 100].map((
|
|
6219
|
-
id: `percent-${
|
|
6220
|
-
text: `${
|
|
6221
|
-
value: `Use ${
|
|
6254
|
+
const Ce = [25, 50, 75, 100].map((se) => ({
|
|
6255
|
+
id: `percent-${se}`,
|
|
6256
|
+
text: `${se}%`,
|
|
6257
|
+
value: `Use ${se}% of ${ne}`,
|
|
6222
6258
|
action: "select_percent",
|
|
6223
6259
|
extraData: {
|
|
6224
|
-
percent:
|
|
6260
|
+
percent: se,
|
|
6225
6261
|
tokenAddress: "0x0000000000000000000000000000000000000000",
|
|
6226
6262
|
tokenSymbol: ne,
|
|
6227
6263
|
tokenBalance: we
|
|
6228
6264
|
}
|
|
6229
6265
|
}));
|
|
6230
6266
|
o(
|
|
6231
|
-
|
|
6267
|
+
`📊 Select the amount of ${ne} to swap:
|
|
6232
6268
|
|
|
6233
6269
|
Available: ${we} ${ne}`,
|
|
6234
6270
|
"bot",
|
|
@@ -6250,7 +6286,7 @@ Available: ${we} ${ne}`,
|
|
|
6250
6286
|
const ae = O.token_in_symbol || "Token";
|
|
6251
6287
|
l({
|
|
6252
6288
|
srcTokenAddress: O.token_in,
|
|
6253
|
-
srcTokenDecimals:
|
|
6289
|
+
srcTokenDecimals: q
|
|
6254
6290
|
});
|
|
6255
6291
|
try {
|
|
6256
6292
|
const Te = await Ze({
|
|
@@ -6281,7 +6317,7 @@ Available: ${we} ${ne}`,
|
|
|
6281
6317
|
}
|
|
6282
6318
|
}));
|
|
6283
6319
|
o(
|
|
6284
|
-
|
|
6320
|
+
`📊 Select the amount of ${ne.symbol} to swap:
|
|
6285
6321
|
|
|
6286
6322
|
Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) || "0"})`,
|
|
6287
6323
|
"bot",
|
|
@@ -6302,11 +6338,11 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6302
6338
|
}
|
|
6303
6339
|
} else if (!de && ge) {
|
|
6304
6340
|
o(
|
|
6305
|
-
|
|
6341
|
+
G.message || "🔄 Please choose which token you want to swap from:",
|
|
6306
6342
|
"bot",
|
|
6307
6343
|
J.id
|
|
6308
6344
|
);
|
|
6309
|
-
let
|
|
6345
|
+
let q = parseInt(
|
|
6310
6346
|
O.token_out_decimals || "18",
|
|
6311
6347
|
10
|
|
6312
6348
|
);
|
|
@@ -6316,7 +6352,7 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6316
6352
|
[O.token_out],
|
|
6317
6353
|
j
|
|
6318
6354
|
);
|
|
6319
|
-
$?.data?.[0] && (
|
|
6355
|
+
$?.data?.[0] && (q = $.data[0].decimals || q);
|
|
6320
6356
|
} catch ($) {
|
|
6321
6357
|
console.warn(
|
|
6322
6358
|
"getTokensDetails failed in CASE 3, using fallback:",
|
|
@@ -6325,17 +6361,17 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6325
6361
|
}
|
|
6326
6362
|
await y(
|
|
6327
6363
|
O.token_out,
|
|
6328
|
-
|
|
6364
|
+
q
|
|
6329
6365
|
);
|
|
6330
6366
|
} else if (de && !ge) {
|
|
6331
|
-
let
|
|
6367
|
+
let q = te ? 18 : parseInt(O.token_in_decimals || "18", 10);
|
|
6332
6368
|
if (O.token_in && !te)
|
|
6333
6369
|
try {
|
|
6334
6370
|
const $ = await Ge.getTokensDetails(
|
|
6335
6371
|
[O.token_in],
|
|
6336
6372
|
j
|
|
6337
6373
|
);
|
|
6338
|
-
$?.data?.[0] && (
|
|
6374
|
+
$?.data?.[0] && (q = $.data[0].decimals || q);
|
|
6339
6375
|
} catch ($) {
|
|
6340
6376
|
console.warn(
|
|
6341
6377
|
"getTokensDetails failed in CASE 4, using fallback:",
|
|
@@ -6347,15 +6383,15 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6347
6383
|
srcTokenDecimals: 18
|
|
6348
6384
|
} : {
|
|
6349
6385
|
srcTokenAddress: O.token_in,
|
|
6350
|
-
srcTokenDecimals:
|
|
6386
|
+
srcTokenDecimals: q
|
|
6351
6387
|
}), o(
|
|
6352
|
-
|
|
6388
|
+
G.message || `🔄 You want to swap ${O.token_in_symbol || "your token"}. Please choose which token you want to receive:`,
|
|
6353
6389
|
"bot",
|
|
6354
6390
|
J.id
|
|
6355
6391
|
);
|
|
6356
6392
|
try {
|
|
6357
6393
|
D(!0);
|
|
6358
|
-
const $ =
|
|
6394
|
+
const $ = H?.tokenTrendingDefault || [], [ee, ae] = await Promise.allSettled([
|
|
6359
6395
|
Ge.getTopGainers(j, "24h", 5),
|
|
6360
6396
|
Ge.getTokensDetails($, j)
|
|
6361
6397
|
]);
|
|
@@ -6377,7 +6413,7 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6377
6413
|
}
|
|
6378
6414
|
}));
|
|
6379
6415
|
o(
|
|
6380
|
-
`📈 Trending tokens on ${
|
|
6416
|
+
`📈 Trending tokens on ${H?.name || "Unknown"} chain. Pick the token you want to receive:`,
|
|
6381
6417
|
"bot",
|
|
6382
6418
|
void 0,
|
|
6383
6419
|
Me
|
|
@@ -6392,30 +6428,30 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6392
6428
|
}
|
|
6393
6429
|
} else
|
|
6394
6430
|
o(
|
|
6395
|
-
|
|
6431
|
+
G.message || '🔄 I need more details for your swap. Please specify which tokens you want to swap (e.g. "Swap 1 ETH to USDC").',
|
|
6396
6432
|
"bot",
|
|
6397
6433
|
J.id
|
|
6398
6434
|
);
|
|
6399
|
-
} else if (
|
|
6435
|
+
} else if (G.action === "view_nfts")
|
|
6400
6436
|
o(
|
|
6401
|
-
|
|
6437
|
+
G.message || "🖼️ Let me show you your NFT collection!",
|
|
6402
6438
|
"bot",
|
|
6403
6439
|
J.id
|
|
6404
|
-
), await
|
|
6440
|
+
), await w();
|
|
6405
6441
|
else {
|
|
6406
6442
|
const O = gc(
|
|
6407
|
-
|
|
6443
|
+
G.action
|
|
6408
6444
|
);
|
|
6409
|
-
let te = { ...
|
|
6410
|
-
const ge = ["send_token", "approve_token"].includes(
|
|
6445
|
+
let te = { ...G.parameters || {} }, de;
|
|
6446
|
+
const ge = ["send_token", "approve_token"].includes(G.action) && (te.contract_address || te.token_symbol), ve = G.action === "send_native";
|
|
6411
6447
|
if (ge && T?.address)
|
|
6412
6448
|
try {
|
|
6413
|
-
const
|
|
6449
|
+
const q = await Ze({
|
|
6414
6450
|
address: T.address,
|
|
6415
6451
|
chain: le
|
|
6416
6452
|
});
|
|
6417
|
-
if (
|
|
6418
|
-
const $ =
|
|
6453
|
+
if (q?.success && q?.data?.result) {
|
|
6454
|
+
const $ = q.data.result;
|
|
6419
6455
|
console.log("🚀 ~ ChatModal ~ walletTokens:", $), console.log(
|
|
6420
6456
|
"🚀 ~ ChatModal ~ resolvedParams.contract_address:",
|
|
6421
6457
|
te.contract_address
|
|
@@ -6441,17 +6477,17 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6441
6477
|
contractAddress: ee.token_address
|
|
6442
6478
|
});
|
|
6443
6479
|
}
|
|
6444
|
-
} catch (
|
|
6445
|
-
console.warn("Token enrichment failed:",
|
|
6480
|
+
} catch (q) {
|
|
6481
|
+
console.warn("Token enrichment failed:", q);
|
|
6446
6482
|
}
|
|
6447
6483
|
if (ge && !de && te.contract_address)
|
|
6448
6484
|
try {
|
|
6449
|
-
const
|
|
6485
|
+
const q = await Ja({
|
|
6450
6486
|
address: te.contract_address,
|
|
6451
6487
|
chain: le
|
|
6452
6488
|
});
|
|
6453
|
-
if (
|
|
6454
|
-
const $ =
|
|
6489
|
+
if (q?.success && q?.data) {
|
|
6490
|
+
const $ = q.data;
|
|
6455
6491
|
de = {
|
|
6456
6492
|
symbol: $.symbol,
|
|
6457
6493
|
name: $.name,
|
|
@@ -6466,17 +6502,17 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6466
6502
|
decimals: String($.decimals)
|
|
6467
6503
|
};
|
|
6468
6504
|
}
|
|
6469
|
-
} catch (
|
|
6470
|
-
console.warn("Token metadata fallback failed:",
|
|
6505
|
+
} catch (q) {
|
|
6506
|
+
console.warn("Token metadata fallback failed:", q);
|
|
6471
6507
|
}
|
|
6472
6508
|
if (ve && T?.address)
|
|
6473
6509
|
try {
|
|
6474
|
-
const
|
|
6510
|
+
const q = await Ze({
|
|
6475
6511
|
address: T.address,
|
|
6476
6512
|
chain: le
|
|
6477
6513
|
});
|
|
6478
|
-
if (
|
|
6479
|
-
const ee =
|
|
6514
|
+
if (q?.success && q?.data?.result) {
|
|
6515
|
+
const ee = q.data.result.find((ae) => ae.native_token);
|
|
6480
6516
|
ee && (de = {
|
|
6481
6517
|
symbol: ee.symbol,
|
|
6482
6518
|
name: ee.name,
|
|
@@ -6489,22 +6525,22 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6489
6525
|
contractAddress: "0x0000000000000000000000000000000000000000"
|
|
6490
6526
|
});
|
|
6491
6527
|
}
|
|
6492
|
-
} catch (
|
|
6493
|
-
console.warn("Native token balance fetch failed:",
|
|
6528
|
+
} catch (q) {
|
|
6529
|
+
console.warn("Native token balance fetch failed:", q);
|
|
6494
6530
|
}
|
|
6495
6531
|
if (O) {
|
|
6496
|
-
const
|
|
6497
|
-
o(
|
|
6498
|
-
action:
|
|
6532
|
+
const q = G.message || "Please review and complete the form below.";
|
|
6533
|
+
o(q, "bot", J.id, void 0, {
|
|
6534
|
+
action: G.action,
|
|
6499
6535
|
parameters: te,
|
|
6500
6536
|
status: "pending",
|
|
6501
6537
|
tokenInfo: de
|
|
6502
6538
|
});
|
|
6503
6539
|
} else
|
|
6504
|
-
o(
|
|
6540
|
+
o(G.message || _, "bot", J.id);
|
|
6505
6541
|
}
|
|
6506
|
-
else if (
|
|
6507
|
-
const O =
|
|
6542
|
+
else if (G && G.action === "chat") {
|
|
6543
|
+
const O = G.token_mentions || [];
|
|
6508
6544
|
if (O.length > 0) {
|
|
6509
6545
|
const te = O.map((de) => ({
|
|
6510
6546
|
id: `buy-${de.symbol}`,
|
|
@@ -6518,13 +6554,13 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6518
6554
|
}
|
|
6519
6555
|
}));
|
|
6520
6556
|
o(
|
|
6521
|
-
|
|
6557
|
+
G.message || _,
|
|
6522
6558
|
"bot",
|
|
6523
6559
|
J.id,
|
|
6524
6560
|
te
|
|
6525
6561
|
);
|
|
6526
6562
|
} else
|
|
6527
|
-
o(
|
|
6563
|
+
o(G.message || _, "bot", J.id);
|
|
6528
6564
|
} else
|
|
6529
6565
|
o(_, "bot", J.id);
|
|
6530
6566
|
} else
|
|
@@ -6533,14 +6569,14 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6533
6569
|
"bot",
|
|
6534
6570
|
J.id
|
|
6535
6571
|
);
|
|
6536
|
-
} catch (
|
|
6537
|
-
console.error("Error getting AI response:",
|
|
6572
|
+
} catch (z) {
|
|
6573
|
+
console.error("Error getting AI response:", z), o(
|
|
6538
6574
|
"Sorry, I encountered an error processing your request.",
|
|
6539
6575
|
"bot",
|
|
6540
6576
|
J.id
|
|
6541
6577
|
);
|
|
6542
6578
|
}
|
|
6543
|
-
D(!1), await bt(50), qt.isDesktop &&
|
|
6579
|
+
D(!1), await bt(50), qt.isDesktop && re.current?.focus();
|
|
6544
6580
|
}, [
|
|
6545
6581
|
c,
|
|
6546
6582
|
B,
|
|
@@ -6548,20 +6584,20 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6548
6584
|
o,
|
|
6549
6585
|
I,
|
|
6550
6586
|
T?.address,
|
|
6551
|
-
|
|
6552
|
-
|
|
6553
|
-
|
|
6554
|
-
|
|
6587
|
+
H?.name,
|
|
6588
|
+
H?.nativeCurrency?.symbol,
|
|
6589
|
+
H?.tokenTrendingDefault,
|
|
6590
|
+
oe,
|
|
6555
6591
|
j,
|
|
6556
6592
|
le,
|
|
6557
6593
|
y,
|
|
6558
6594
|
p,
|
|
6559
|
-
|
|
6595
|
+
w,
|
|
6560
6596
|
l
|
|
6561
6597
|
]), X = Pe(
|
|
6562
|
-
async (U, J,
|
|
6598
|
+
async (U, J, z) => {
|
|
6563
6599
|
try {
|
|
6564
|
-
if (a(
|
|
6600
|
+
if (a(z, "submitted"), U === "swap_token") {
|
|
6565
6601
|
let Z = 18;
|
|
6566
6602
|
if (J.token_in && J.token_in !== "0x0000000000000000000000000000000000000000")
|
|
6567
6603
|
try {
|
|
@@ -6576,23 +6612,23 @@ Available: ${ne.balance_formatted} ${ne.symbol} (~$${ne.usd_value?.toFixed(2) ||
|
|
|
6576
6612
|
L
|
|
6577
6613
|
);
|
|
6578
6614
|
}
|
|
6579
|
-
const
|
|
6615
|
+
const Y = it(
|
|
6580
6616
|
J.amount || "0",
|
|
6581
6617
|
Z
|
|
6582
|
-
).toString(),
|
|
6583
|
-
chainId:
|
|
6618
|
+
).toString(), W = await fn({
|
|
6619
|
+
chainId: oe,
|
|
6584
6620
|
tokenIn: J.token_in || "",
|
|
6585
|
-
tokenInAmount:
|
|
6621
|
+
tokenInAmount: Y,
|
|
6586
6622
|
tokenOut: J.token_out || "",
|
|
6587
6623
|
tokenOutRecipient: T?.address || "",
|
|
6588
6624
|
slippage: "auto",
|
|
6589
6625
|
accesstoken: "d6c45897b8f6"
|
|
6590
6626
|
});
|
|
6591
|
-
if (
|
|
6592
|
-
const L =
|
|
6627
|
+
if (W.success && W.data) {
|
|
6628
|
+
const L = W.data, _ = L.tokenIn, G = L.tokenOut, O = (parseFloat(_.amount) / Math.pow(10, _.decimals)).toFixed(6), te = (parseFloat(G.amount) / Math.pow(10, G.decimals)).toFixed(6), de = `📋 Swap Preview
|
|
6593
6629
|
|
|
6594
6630
|
From: ${O} ${_.symbol}
|
|
6595
|
-
To: ${te} ${
|
|
6631
|
+
To: ${te} ${G.symbol}
|
|
6596
6632
|
|
|
6597
6633
|
💰 Value: ~$${_.approximateUsdValue?.toFixed(4) || "0"}
|
|
6598
6634
|
📊 Slippage: ${L.slippage}%
|
|
@@ -6603,20 +6639,20 @@ To: ${te} ${q.symbol}
|
|
|
6603
6639
|
let ve = !1;
|
|
6604
6640
|
if (!ge && T?.address && L.tx?.to)
|
|
6605
6641
|
try {
|
|
6606
|
-
const
|
|
6642
|
+
const q = await hn({
|
|
6607
6643
|
tokenAddress: J.token_in,
|
|
6608
6644
|
ownerAddress: T.address,
|
|
6609
6645
|
spenderAddress: L.tx.to,
|
|
6610
|
-
chainId:
|
|
6646
|
+
chainId: oe
|
|
6611
6647
|
});
|
|
6612
6648
|
ve = new ut(
|
|
6613
|
-
|
|
6614
|
-
).isLessThan(
|
|
6615
|
-
} catch (
|
|
6616
|
-
console.warn("Allowance check failed in ActionForm swap:",
|
|
6649
|
+
q.toString()
|
|
6650
|
+
).isLessThan(Y);
|
|
6651
|
+
} catch (q) {
|
|
6652
|
+
console.warn("Allowance check failed in ActionForm swap:", q);
|
|
6617
6653
|
}
|
|
6618
6654
|
if (ve) {
|
|
6619
|
-
const
|
|
6655
|
+
const q = [
|
|
6620
6656
|
{
|
|
6621
6657
|
id: "approve-swap-actionform",
|
|
6622
6658
|
text: `🔓 Step 1: Approve ${_.symbol}`,
|
|
@@ -6637,17 +6673,17 @@ To: ${te} ${q.symbol}
|
|
|
6637
6673
|
action: "cancel_swap"
|
|
6638
6674
|
}
|
|
6639
6675
|
];
|
|
6640
|
-
a(
|
|
6676
|
+
a(z, "success"), o(
|
|
6641
6677
|
de + `⚠️ Token approval required before swapping.
|
|
6642
6678
|
|
|
6643
6679
|
Step 1: Approve ${_.symbol}
|
|
6644
6680
|
Step 2: Confirm Swap`,
|
|
6645
6681
|
"bot",
|
|
6646
6682
|
void 0,
|
|
6647
|
-
|
|
6683
|
+
q
|
|
6648
6684
|
);
|
|
6649
6685
|
} else {
|
|
6650
|
-
const
|
|
6686
|
+
const q = [
|
|
6651
6687
|
{
|
|
6652
6688
|
id: "confirm-swap-actionform",
|
|
6653
6689
|
text: "✅ Yes",
|
|
@@ -6662,16 +6698,16 @@ Step 2: Confirm Swap`,
|
|
|
6662
6698
|
action: "cancel_swap"
|
|
6663
6699
|
}
|
|
6664
6700
|
];
|
|
6665
|
-
a(
|
|
6701
|
+
a(z, "success"), o(
|
|
6666
6702
|
de + "Ready to proceed with the swap?",
|
|
6667
6703
|
"bot",
|
|
6668
6704
|
void 0,
|
|
6669
|
-
|
|
6705
|
+
q
|
|
6670
6706
|
);
|
|
6671
6707
|
}
|
|
6672
6708
|
} else
|
|
6673
|
-
a(
|
|
6674
|
-
`⚠️ Unable to get swap estimation. Error: ${
|
|
6709
|
+
a(z, "fail"), o(
|
|
6710
|
+
`⚠️ Unable to get swap estimation. Error: ${W.errorMessage || W.error || "Unknown error"}`,
|
|
6675
6711
|
"bot"
|
|
6676
6712
|
);
|
|
6677
6713
|
} else {
|
|
@@ -6679,8 +6715,8 @@ Step 2: Confirm Swap`,
|
|
|
6679
6715
|
action: U,
|
|
6680
6716
|
parameters: J,
|
|
6681
6717
|
fromAddress: T?.address || "",
|
|
6682
|
-
chainId:
|
|
6683
|
-
}),
|
|
6718
|
+
chainId: oe || 1
|
|
6719
|
+
}), Y = {
|
|
6684
6720
|
from: Z.from,
|
|
6685
6721
|
to: Z.to,
|
|
6686
6722
|
data: Z.data,
|
|
@@ -6692,27 +6728,27 @@ Step 2: Confirm Swap`,
|
|
|
6692
6728
|
Processing transaction...`,
|
|
6693
6729
|
"bot"
|
|
6694
6730
|
), n) {
|
|
6695
|
-
const
|
|
6696
|
-
if (
|
|
6697
|
-
a(
|
|
6698
|
-
const L =
|
|
6699
|
-
[View on Explorer](${L}/tx/${
|
|
6700
|
-
Tx: ${
|
|
6731
|
+
const W = await n(Y);
|
|
6732
|
+
if (W.status === "success") {
|
|
6733
|
+
a(z, "success");
|
|
6734
|
+
const L = H?.blockExplorers?.default?.url, _ = W.transactionHash ? L ? `
|
|
6735
|
+
[View on Explorer](${L}/tx/${W.transactionHash})` : `
|
|
6736
|
+
Tx: ${W.transactionHash}` : "";
|
|
6701
6737
|
o(`✅ Transaction successful!${_}`, "bot");
|
|
6702
6738
|
} else {
|
|
6703
|
-
a(
|
|
6704
|
-
const L =
|
|
6705
|
-
Error: ${
|
|
6739
|
+
a(z, "fail");
|
|
6740
|
+
const L = W.error ? `
|
|
6741
|
+
Error: ${W.error}` : "";
|
|
6706
6742
|
o(
|
|
6707
6743
|
`❌ Transaction failed. Please try again.${L}`,
|
|
6708
6744
|
"bot"
|
|
6709
6745
|
);
|
|
6710
6746
|
}
|
|
6711
6747
|
} else
|
|
6712
|
-
a(
|
|
6748
|
+
a(z, "fail"), o("⚠️ No transaction handler configured.", "bot");
|
|
6713
6749
|
}
|
|
6714
6750
|
} catch (Z) {
|
|
6715
|
-
console.error("Action form submit error:", Z), a(
|
|
6751
|
+
console.error("Action form submit error:", Z), a(z, "fail"), o(
|
|
6716
6752
|
`❌ Error: ${Z instanceof Error ? Z.message : "Unknown error"}`,
|
|
6717
6753
|
"bot"
|
|
6718
6754
|
);
|
|
@@ -6720,8 +6756,8 @@ Error: ${Y.error}` : "";
|
|
|
6720
6756
|
},
|
|
6721
6757
|
[
|
|
6722
6758
|
T?.address,
|
|
6723
|
-
|
|
6724
|
-
|
|
6759
|
+
H?.blockExplorers?.default?.url,
|
|
6760
|
+
oe,
|
|
6725
6761
|
o,
|
|
6726
6762
|
a,
|
|
6727
6763
|
n,
|
|
@@ -6733,16 +6769,16 @@ Error: ${Y.error}` : "";
|
|
|
6733
6769
|
},
|
|
6734
6770
|
[a, o]
|
|
6735
6771
|
), [pe, Ee] = Ve({}), Ie = Pe(
|
|
6736
|
-
async (U, J,
|
|
6737
|
-
Ee((Z) => ({ ...Z, [
|
|
6772
|
+
async (U, J, z) => {
|
|
6773
|
+
Ee((Z) => ({ ...Z, [z]: !0 }));
|
|
6738
6774
|
try {
|
|
6739
|
-
await X(U, J,
|
|
6775
|
+
await X(U, J, z);
|
|
6740
6776
|
} finally {
|
|
6741
|
-
Ee((Z) => ({ ...Z, [
|
|
6777
|
+
Ee((Z) => ({ ...Z, [z]: !1 }));
|
|
6742
6778
|
}
|
|
6743
6779
|
},
|
|
6744
6780
|
[X]
|
|
6745
|
-
),
|
|
6781
|
+
), V = Pe(
|
|
6746
6782
|
(U) => {
|
|
6747
6783
|
U.key === "Enter" && !U.shiftKey && (U.preventDefault(), P());
|
|
6748
6784
|
},
|
|
@@ -6796,7 +6832,7 @@ Error: ${Y.error}` : "";
|
|
|
6796
6832
|
Pa,
|
|
6797
6833
|
{
|
|
6798
6834
|
address: T?.address,
|
|
6799
|
-
chainLogo:
|
|
6835
|
+
chainLogo: H?.logo
|
|
6800
6836
|
}
|
|
6801
6837
|
),
|
|
6802
6838
|
/* @__PURE__ */ Ae("div", { className: "chat-modal-messages-wrapper", children: [
|
|
@@ -6845,26 +6881,26 @@ Error: ${Y.error}` : "";
|
|
|
6845
6881
|
/* @__PURE__ */ R("div", { className: "message-reply-to-text", children: U.replyTo.text })
|
|
6846
6882
|
] }),
|
|
6847
6883
|
/* @__PURE__ */ R("div", { className: "message-text", children: /* @__PURE__ */ R(tc, { content: U.text }) }),
|
|
6848
|
-
U.buttons && U.buttons.length > 0 && /* @__PURE__ */ R("div", { className: "message-buttons", children: U.buttons.map((
|
|
6884
|
+
U.buttons && U.buttons.length > 0 && /* @__PURE__ */ R("div", { className: "message-buttons", children: U.buttons.map((z) => /* @__PURE__ */ R(
|
|
6849
6885
|
"button",
|
|
6850
6886
|
{
|
|
6851
|
-
className: `message-button ${
|
|
6887
|
+
className: `message-button ${z.fullWidth ? "full-width" : ""}`,
|
|
6852
6888
|
onClick: () => E(
|
|
6853
|
-
|
|
6854
|
-
|
|
6855
|
-
|
|
6889
|
+
z.value,
|
|
6890
|
+
z.action,
|
|
6891
|
+
z?.extraData
|
|
6856
6892
|
),
|
|
6857
6893
|
type: "button",
|
|
6858
|
-
children:
|
|
6894
|
+
children: z.text
|
|
6859
6895
|
},
|
|
6860
|
-
|
|
6896
|
+
z.id
|
|
6861
6897
|
)) }),
|
|
6862
6898
|
U.actionData && U.actionData.status === "pending" && /* @__PURE__ */ R(
|
|
6863
6899
|
oc,
|
|
6864
6900
|
{
|
|
6865
6901
|
action: U.actionData.action,
|
|
6866
6902
|
initialValues: U.actionData.parameters,
|
|
6867
|
-
onSubmit: (
|
|
6903
|
+
onSubmit: (z, Z) => Ie(z, Z, U.id),
|
|
6868
6904
|
onCancel: () => K(U.id),
|
|
6869
6905
|
isSubmitting: pe[U.id] || !1,
|
|
6870
6906
|
tokenInfo: U.actionData.tokenInfo
|
|
@@ -6934,7 +6970,7 @@ Error: ${Y.error}` : "";
|
|
|
6934
6970
|
U.id
|
|
6935
6971
|
)) })
|
|
6936
6972
|
] }),
|
|
6937
|
-
/* @__PURE__ */ R("div", { ref:
|
|
6973
|
+
/* @__PURE__ */ R("div", { ref: m })
|
|
6938
6974
|
]
|
|
6939
6975
|
}
|
|
6940
6976
|
),
|
|
@@ -6973,12 +7009,12 @@ Error: ${Y.error}` : "";
|
|
|
6973
7009
|
/* @__PURE__ */ R(
|
|
6974
7010
|
"input",
|
|
6975
7011
|
{
|
|
6976
|
-
ref:
|
|
7012
|
+
ref: re,
|
|
6977
7013
|
type: "text",
|
|
6978
7014
|
placeholder: "Message ....",
|
|
6979
7015
|
value: c,
|
|
6980
7016
|
onChange: (U) => S(U.target.value),
|
|
6981
|
-
onKeyPress:
|
|
7017
|
+
onKeyPress: V,
|
|
6982
7018
|
disabled: B,
|
|
6983
7019
|
"aria-label": "Message input"
|
|
6984
7020
|
}
|
|
@@ -7020,9 +7056,9 @@ Error: ${Y.error}` : "";
|
|
|
7020
7056
|
n && s && s();
|
|
7021
7057
|
}, []), et(() => {
|
|
7022
7058
|
if (typeof window > "u") return;
|
|
7023
|
-
const k = document.body,
|
|
7024
|
-
return !!c ? (k.style.overscrollBehavior = "none",
|
|
7025
|
-
k.style.overscrollBehavior = "auto",
|
|
7059
|
+
const k = document.body, m = document.documentElement;
|
|
7060
|
+
return !!c ? (k.style.overscrollBehavior = "none", m.style.overscrollBehavior = "none") : (k.style.overscrollBehavior = "auto", m.style.overscrollBehavior = "auto"), () => {
|
|
7061
|
+
k.style.overscrollBehavior = "auto", m.style.overscrollBehavior = "auto";
|
|
7026
7062
|
};
|
|
7027
7063
|
}, [c]);
|
|
7028
7064
|
const B = Pe(() => {
|