@tuwaio/nova-connect 0.5.6 → 0.5.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/{chunk-G5BCVG44.js → chunk-3BQNG7PE.js} +1 -1
- package/dist/{chunk-KYHX7HBC.cjs → chunk-L7GDJJ7W.cjs} +1 -1
- package/dist/chunk-NSVTTYJR.js +1 -0
- package/dist/chunk-Z7U4VY6E.cjs +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +2 -2
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.js +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +9 -4
- package/dist/hooks/index.d.ts +9 -4
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/{useWalletNativeBalance-B64PI3UW.d.cts → useWalletNativeBalance-BIz0-C3s.d.cts} +5 -0
- package/dist/{useWalletNativeBalance-Dq7RXM0z.d.ts → useWalletNativeBalance-BwWHQ9Tv.d.ts} +5 -0
- package/package.json +5 -5
- package/dist/chunk-BOOFGSLL.js +0 -1
- package/dist/chunk-NIHARC32.cjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {a as a$1,i}from'./chunk-S3IRVZMG.js';import {a}from'./chunk-NQ5AECZQ.js';import {d}from'./chunk-EYP534IS.js';import {textCenterEllipsis}from'@tuwaio/nova-core';import {OrbitAdapter,getAdapterFromConnectorType,formatConnectorName}from'@tuwaio/orbit-core';import {createContext,useState,useRef,useCallback,useEffect,useContext}from'react';import {useSiwx,getSatelliteSiwxFields}from'@tuwaio/siwx-react';function be(e){let{abbreviateSymbols:t=12,maxNameLength:o=30,autoRetry:n=false,retryDelay:s=3e3}=e,a=d(L=>L.activeConnection),l=d(L=>L.getAdapter),r=a?.address,c=a?.connectorType,i=c?l(getAdapterFromConnectorType(c)):null,[u,f]=useState(null),[D,p]=useState(null),[y,C]=useState(false),[x,g]=useState(null),N=useRef(null),O=useRef(null),F=!!(i&&"getName"in i&&typeof i.getName=="function"),G=!!(i&&"getAvatar"in i&&typeof i.getAvatar=="function"),h=useCallback(()=>{N.current&&(N.current.abort(),N.current=null),O.current!==null&&(clearTimeout(O.current),O.current=null);},[]),w=useCallback(async function L(){if(h(),!r||!i||!F){f(null),p(null),C(false),g(null);return}N.current=new AbortController;let{signal:A}=N.current;C(true),g(null),f(null),p(null);try{if(A.aborted)return;let v=await i.getName?.(r);if(A.aborted)return;if(v&&(f(v),G))try{let S=await i.getAvatar?.(v);A.aborted||p(S??null);}catch(S){console.warn("Failed to fetch avatar:",S),A.aborted||p(null);}}catch(v){if(A.aborted)return;let S=v instanceof Error?v.message:"Failed to fetch name service data";console.error("Failed to fetch name service data:",v),g(S),f(null),p(null),n&&(O.current=setTimeout(()=>{L();},s));}finally{A.aborted||C(false);}},[r,i,F,G,n,s,h]),Q=useCallback(()=>{g(null),w();},[w]);useEffect(()=>(w(),h),[w,h]),useEffect(()=>h,[h]);let Y=u?u.length>o?textCenterEllipsis(u,t,t):u:r?textCenterEllipsis(r,t,t):void 0;return {ensName:u,ensAvatar:D,isLoading:y,ensNameAbbreviated:Y,error:x,retry:Q}}var M=class extends Error{constructor(t="useNovaConnect must be used within NovaConnectProvider"){super(t),this.name="NovaConnectProviderError";}},W=createContext(void 0),ye=()=>{let e=useContext(W);if(!e)throw new M;return e},he=()=>useContext(W)!==void 0,Ae=()=>useContext(W)??null;var oe=createContext(a),R=()=>useContext(oe),Oe=e=>R()[e],we=e=>{let t=R(),o={};for(let n of e)o[n]=t[n];return o},Te=(e,t)=>!!e[t]?.trim(),ke=e=>{let t=R(),n={actions:["connectWallet","disconnect","connecting","connected","tryAgain","back","connect","close"],states:["success","error","replaced","loading","idle"],accessibility:["chainSelector","closeModal","selectChain","walletControls","openWalletModal"],transactions:["transactionLoading","transactionSuccess","transactionError","transactionReplaced","recent"]}[e],s={};for(let a of n)s[a]=t[a];return s},Ee=e=>e===a,Ie=(e,t,o)=>{let n=e[t];return n&&n.trim()?n:o||a[t]||t.toString()},Be=(e,t)=>{let o={};for(let n of t)o[n]=e[n];return o};function Ve(e){let t=d(l=>l.activeConnection),{signIn:o,signOut:n}=useSiwx(),s=useCallback(async(l,r)=>{let c=l??t;if(!c?.address||!c?.chainId)throw new Error("[useNovaSiwx] No active connection available.");if(!c.signMessage)throw new Error("[useNovaSiwx] Connection missing signMessage capability.");let i=r??e?.verifier;if(!i)throw new Error("[useNovaSiwx] Verifier callback required to complete SIWX sign in.");let u={address:String(c.address),chainId:c.chainId,signMessage:c.signMessage,isConnected:c.isConnected},f=getSatelliteSiwxFields(u,e);return o({signer:c.signMessage,verifier:i,fields:f})},[t,o,e]),a=useCallback(async()=>{if(n(),e?.destroyer)try{await e.destroyer();}catch(l){console.warn("[useNovaSiwx] Failed to execute session destroyer on signOut:",l);}},[n,e?.destroyer]);return {signIn:s,signOut:a}}var b={[OrbitAdapter.EVM]:1,[OrbitAdapter.SOLANA]:"mainnet",[OrbitAdapter.Starknet]:"0x534e5f4d41494e"};function Ge({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case OrbitAdapter.EVM:{let n=t?.[0];return n?.id&&typeof n.id=="number"?n.id:(process.env.NODE_ENV==="development"&&!t?.length&&console.warn("getConnectChainId: No EVM chains configured, using Ethereum Mainnet"),b[OrbitAdapter.EVM])}case OrbitAdapter.SOLANA:{if(o&&typeof o=="object"){let n=Object.keys(o);if(n.length>0)return n[0]}return process.env.NODE_ENV==="development"&&!o&&console.warn("getConnectChainId: No Solana RPC URLs configured, using mainnet"),b[OrbitAdapter.SOLANA]}case OrbitAdapter.Starknet:return process.env.NODE_ENV==="development"&&console.info("getConnectChainId: Using default Starknet chain ID"),b[OrbitAdapter.Starknet];default:return process.env.NODE_ENV==="development"&&console.error("getConnectChainId: Unknown adapter:",e),b[OrbitAdapter.EVM]}}function Ke({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case OrbitAdapter.EVM:return t?.map(n=>n.id).filter(Boolean)??[b[OrbitAdapter.EVM]];case OrbitAdapter.SOLANA:return o?Object.keys(o):[b[OrbitAdapter.SOLANA]];case OrbitAdapter.Starknet:return [b[OrbitAdapter.Starknet]];default:return [b[OrbitAdapter.EVM]]}}function se(e,t){if(!e||typeof e!="object")return null;let o=e;if(!o.name||typeof o.name!="string")return null;let n;if("icon"in o){let s=o.icon;if(typeof s=="string")n=s;else if(s&&typeof s=="object"&&"toString"in s&&typeof s.toString=="function")try{n=s.toString();}catch{}}return {name:o.name,icon:n,adapter:t,originalConnector:o}}function $({connectors:e,excludeConnectors:t=["injected"]}={connectors:{}}){if(!e||Object.keys(e).length===0)return [];let o=new Set(t.map(a=>formatConnectorName(a))),n=[];Object.entries(e).forEach(([a,l])=>{if(Array.isArray(l)){let r=a;l.forEach(c=>{let i=se(c,r);if(i){let u=formatConnectorName(i.name);o.has(u)||n.push(i);}});}});let s=new Map;return n.forEach(a=>{let l=formatConnectorName(a.name);s.has(l)||s.set(l,{name:a.name,icon:a.icon,adapters:[],connectors:[]});let r=s.get(l);r.adapters.includes(a.adapter)||r.adapters.push(a.adapter);let c=Object.assign({},a.originalConnector,{adapter:a.adapter});r.connectors.push(c),!r.icon&&a.icon&&(r.icon=a.icon);}),Array.from(s.values()).sort((a,l)=>a.name.localeCompare(l.name,void 0,{sensitivity:"base"}))}function $e(e){return Object.values(e).some(t=>Array.isArray(t)&&t.length>0)}function ie(e){try{if(e&&typeof e=="object"&&e.adapter)return e.adapter}catch{}}function H(e,t){return ie(e)===t}function ze({connectors:e,selectedAdapter:t}){if(!e||Object.keys(e).length===0)return [];let o=$({connectors:e});return t?o.filter(n=>n.adapters.includes(t)&&n.connectors.some(s=>H(s,t))).map(n=>{let s=n.connectors.filter(a=>H(a,t));return {...n,adapters:[t],connectors:s}}).filter(n=>n.connectors.length>0):o}function Je(e,t){let o=e[t];return Array.isArray(o)&&o.length>0}function ct(){return console.warn("getAvailableSolanaClusters: Using synchronous fallback with limited functionality. Use getAvailableSolanaClustersAsync for complete cluster detection."),[]}function lt(e){return console.warn("isValidSolanaCluster: Using synchronous fallback with basic validation. Use isValidSolanaClusterAsync for comprehensive cluster validation."),["mainnet","devnet","testnet","localnet"].includes(e)}function xt({activeConnection:e,appChains:t,solanaRPCUrls:o}){let[n,s]=useState([]),[a,l]=useState(false);return useEffect(()=>{let r=true;return (async()=>{l(true);try{if(!e){let f=await a$1({connectorType:`${OrbitAdapter.EVM}:not-connected`,appChains:t,solanaRPCUrls:o,chains:[]});r&&s(f);return}let i$1=i(e),u=await a$1({connectorType:e.connectorType,appChains:t,solanaRPCUrls:o,chains:i$1});r&&s(u);}catch(i){console.error("Failed to fetch chains list:",i),r&&s([]);}finally{r&&l(false);}})(),()=>{r=false;}},[e,t,o]),{chainsList:n,isLoading:a}}function wt(){let[e,t]=useState({}),[o,n]=useState(false),s=useRef(null),a=d(p=>p.activeConnection),l=d(p=>p.getAdapter),r=a?.chainId&&a?.address?`${a.address}-${a.chainId}`:null,c=a?.connectorType?l(getAdapterFromConnectorType(a.connectorType)):null,i=c&&"getBalance"in c&&typeof c.getBalance=="function",u=useCallback(async(p=false)=>{if(!a?.address||!c||!a?.chainId||!r||!i){n(false);return}let y=`${r}-${Date.now()}`;if(s.current=y,!p&&e[r]){n(false);return}n(true);try{let C=await c.getBalance(a.address,a.chainId);s.current===y&&t(x=>({...x,[r]:C}));}catch(C){console.error(`Failed to fetch native balance for ${r}:`,C),p&&s.current===y&&t(x=>{let g={...x};return delete g[r],g});}finally{s.current===y&&n(false);}},[a,c,r,i,e]),f=useCallback(()=>{u(true);},[u]);return useEffect(()=>{r&&i&&!e[r]?u(false):(!r||!i)&&n(false);},[r,i,e,u]),useEffect(()=>()=>{s.current=null;},[]),{balance:r&&e[r]||null,isLoading:o,refetch:f}}export{be as a,M as b,W as c,ye as d,he as e,Ae as f,oe as g,R as h,Oe as i,we as j,Te as k,ke as l,Ee as m,Ie as n,Be as o,Ve as p,Ge as q,Ke as r,$ as s,$e as t,ze as u,Je as v,ct as w,lt as x,xt as y,wt as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunkV6XDFRWV_cjs=require('./chunk-V6XDFRWV.cjs'),novaCore=require('@tuwaio/nova-core'),orbitCore=require('@tuwaio/orbit-core'),react=require('react'),siwxReact=require('@tuwaio/siwx-react');function be(e){let{abbreviateSymbols:t=12,maxNameLength:o=30,autoRetry:n=false,retryDelay:s=3e3}=e,a=chunkV6XDFRWV_cjs.d(L=>L.activeConnection),l=chunkV6XDFRWV_cjs.d(L=>L.getAdapter),r=a?.address,c=a?.connectorType,i=c?l(orbitCore.getAdapterFromConnectorType(c)):null,[u,f]=react.useState(null),[D,p]=react.useState(null),[y,C]=react.useState(false),[x,g]=react.useState(null),N=react.useRef(null),O=react.useRef(null),F=!!(i&&"getName"in i&&typeof i.getName=="function"),G=!!(i&&"getAvatar"in i&&typeof i.getAvatar=="function"),h=react.useCallback(()=>{N.current&&(N.current.abort(),N.current=null),O.current!==null&&(clearTimeout(O.current),O.current=null);},[]),w=react.useCallback(async function L(){if(h(),!r||!i||!F){f(null),p(null),C(false),g(null);return}N.current=new AbortController;let{signal:A}=N.current;C(true),g(null),f(null),p(null);try{if(A.aborted)return;let v=await i.getName?.(r);if(A.aborted)return;if(v&&(f(v),G))try{let S=await i.getAvatar?.(v);A.aborted||p(S??null);}catch(S){console.warn("Failed to fetch avatar:",S),A.aborted||p(null);}}catch(v){if(A.aborted)return;let S=v instanceof Error?v.message:"Failed to fetch name service data";console.error("Failed to fetch name service data:",v),g(S),f(null),p(null),n&&(O.current=setTimeout(()=>{L();},s));}finally{A.aborted||C(false);}},[r,i,F,G,n,s,h]),Q=react.useCallback(()=>{g(null),w();},[w]);react.useEffect(()=>(w(),h),[w,h]),react.useEffect(()=>h,[h]);let Y=u?u.length>o?novaCore.textCenterEllipsis(u,t,t):u:r?novaCore.textCenterEllipsis(r,t,t):void 0;return {ensName:u,ensAvatar:D,isLoading:y,ensNameAbbreviated:Y,error:x,retry:Q}}var M=class extends Error{constructor(t="useNovaConnect must be used within NovaConnectProvider"){super(t),this.name="NovaConnectProviderError";}},W=react.createContext(void 0),ye=()=>{let e=react.useContext(W);if(!e)throw new M;return e},he=()=>react.useContext(W)!==void 0,Ae=()=>react.useContext(W)??null;var oe=react.createContext(chunkMGBN4EIT_cjs.a),R=()=>react.useContext(oe),Oe=e=>R()[e],we=e=>{let t=R(),o={};for(let n of e)o[n]=t[n];return o},Te=(e,t)=>!!e[t]?.trim(),ke=e=>{let t=R(),n={actions:["connectWallet","disconnect","connecting","connected","tryAgain","back","connect","close"],states:["success","error","replaced","loading","idle"],accessibility:["chainSelector","closeModal","selectChain","walletControls","openWalletModal"],transactions:["transactionLoading","transactionSuccess","transactionError","transactionReplaced","recent"]}[e],s={};for(let a of n)s[a]=t[a];return s},Ee=e=>e===chunkMGBN4EIT_cjs.a,Ie=(e,t,o)=>{let n=e[t];return n&&n.trim()?n:o||chunkMGBN4EIT_cjs.a[t]||t.toString()},Be=(e,t)=>{let o={};for(let n of t)o[n]=e[n];return o};function Ve(e){let t=chunkV6XDFRWV_cjs.d(l=>l.activeConnection),{signIn:o,signOut:n}=siwxReact.useSiwx(),s=react.useCallback(async(l,r)=>{let c=l??t;if(!c?.address||!c?.chainId)throw new Error("[useNovaSiwx] No active connection available.");if(!c.signMessage)throw new Error("[useNovaSiwx] Connection missing signMessage capability.");let i=r??e?.verifier;if(!i)throw new Error("[useNovaSiwx] Verifier callback required to complete SIWX sign in.");let u={address:String(c.address),chainId:c.chainId,signMessage:c.signMessage,isConnected:c.isConnected},f=siwxReact.getSatelliteSiwxFields(u,e);return o({signer:c.signMessage,verifier:i,fields:f})},[t,o,e]),a=react.useCallback(async()=>{if(n(),e?.destroyer)try{await e.destroyer();}catch(l){console.warn("[useNovaSiwx] Failed to execute session destroyer on signOut:",l);}},[n,e?.destroyer]);return {signIn:s,signOut:a}}var b={[orbitCore.OrbitAdapter.EVM]:1,[orbitCore.OrbitAdapter.SOLANA]:"mainnet",[orbitCore.OrbitAdapter.Starknet]:"0x534e5f4d41494e"};function Ge({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case orbitCore.OrbitAdapter.EVM:{let n=t?.[0];return n?.id&&typeof n.id=="number"?n.id:(process.env.NODE_ENV==="development"&&!t?.length&&console.warn("getConnectChainId: No EVM chains configured, using Ethereum Mainnet"),b[orbitCore.OrbitAdapter.EVM])}case orbitCore.OrbitAdapter.SOLANA:{if(o&&typeof o=="object"){let n=Object.keys(o);if(n.length>0)return n[0]}return process.env.NODE_ENV==="development"&&!o&&console.warn("getConnectChainId: No Solana RPC URLs configured, using mainnet"),b[orbitCore.OrbitAdapter.SOLANA]}case orbitCore.OrbitAdapter.Starknet:return process.env.NODE_ENV==="development"&&console.info("getConnectChainId: Using default Starknet chain ID"),b[orbitCore.OrbitAdapter.Starknet];default:return process.env.NODE_ENV==="development"&&console.error("getConnectChainId: Unknown adapter:",e),b[orbitCore.OrbitAdapter.EVM]}}function Ke({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case orbitCore.OrbitAdapter.EVM:return t?.map(n=>n.id).filter(Boolean)??[b[orbitCore.OrbitAdapter.EVM]];case orbitCore.OrbitAdapter.SOLANA:return o?Object.keys(o):[b[orbitCore.OrbitAdapter.SOLANA]];case orbitCore.OrbitAdapter.Starknet:return [b[orbitCore.OrbitAdapter.Starknet]];default:return [b[orbitCore.OrbitAdapter.EVM]]}}function se(e,t){if(!e||typeof e!="object")return null;let o=e;if(!o.name||typeof o.name!="string")return null;let n;if("icon"in o){let s=o.icon;if(typeof s=="string")n=s;else if(s&&typeof s=="object"&&"toString"in s&&typeof s.toString=="function")try{n=s.toString();}catch{}}return {name:o.name,icon:n,adapter:t,originalConnector:o}}function $({connectors:e,excludeConnectors:t=["injected"]}={connectors:{}}){if(!e||Object.keys(e).length===0)return [];let o=new Set(t.map(a=>orbitCore.formatConnectorName(a))),n=[];Object.entries(e).forEach(([a,l])=>{if(Array.isArray(l)){let r=a;l.forEach(c=>{let i=se(c,r);if(i){let u=orbitCore.formatConnectorName(i.name);o.has(u)||n.push(i);}});}});let s=new Map;return n.forEach(a=>{let l=orbitCore.formatConnectorName(a.name);s.has(l)||s.set(l,{name:a.name,icon:a.icon,adapters:[],connectors:[]});let r=s.get(l);r.adapters.includes(a.adapter)||r.adapters.push(a.adapter);let c=Object.assign({},a.originalConnector,{adapter:a.adapter});r.connectors.push(c),!r.icon&&a.icon&&(r.icon=a.icon);}),Array.from(s.values()).sort((a,l)=>a.name.localeCompare(l.name,void 0,{sensitivity:"base"}))}function $e(e){return Object.values(e).some(t=>Array.isArray(t)&&t.length>0)}function ie(e){try{if(e&&typeof e=="object"&&e.adapter)return e.adapter}catch{}}function H(e,t){return ie(e)===t}function ze({connectors:e,selectedAdapter:t}){if(!e||Object.keys(e).length===0)return [];let o=$({connectors:e});return t?o.filter(n=>n.adapters.includes(t)&&n.connectors.some(s=>H(s,t))).map(n=>{let s=n.connectors.filter(a=>H(a,t));return {...n,adapters:[t],connectors:s}}).filter(n=>n.connectors.length>0):o}function Je(e,t){let o=e[t];return Array.isArray(o)&&o.length>0}function ct(){return console.warn("getAvailableSolanaClusters: Using synchronous fallback with limited functionality. Use getAvailableSolanaClustersAsync for complete cluster detection."),[]}function lt(e){return console.warn("isValidSolanaCluster: Using synchronous fallback with basic validation. Use isValidSolanaClusterAsync for comprehensive cluster validation."),["mainnet","devnet","testnet","localnet"].includes(e)}function xt({activeConnection:e,appChains:t,solanaRPCUrls:o}){let[n,s]=react.useState([]),[a,l]=react.useState(false);return react.useEffect(()=>{let r=true;return (async()=>{l(true);try{if(!e){let f=await chunkK44IHM6B_cjs.a({connectorType:`${orbitCore.OrbitAdapter.EVM}:not-connected`,appChains:t,solanaRPCUrls:o,chains:[]});r&&s(f);return}let i=chunkK44IHM6B_cjs.i(e),u=await chunkK44IHM6B_cjs.a({connectorType:e.connectorType,appChains:t,solanaRPCUrls:o,chains:i});r&&s(u);}catch(i){console.error("Failed to fetch chains list:",i),r&&s([]);}finally{r&&l(false);}})(),()=>{r=false;}},[e,t,o]),{chainsList:n,isLoading:a}}function wt(){let[e,t]=react.useState({}),[o,n]=react.useState(false),s=react.useRef(null),a=chunkV6XDFRWV_cjs.d(p=>p.activeConnection),l=chunkV6XDFRWV_cjs.d(p=>p.getAdapter),r=a?.chainId&&a?.address?`${a.address}-${a.chainId}`:null,c=a?.connectorType?l(orbitCore.getAdapterFromConnectorType(a.connectorType)):null,i=c&&"getBalance"in c&&typeof c.getBalance=="function",u=react.useCallback(async(p=false)=>{if(!a?.address||!c||!a?.chainId||!r||!i){n(false);return}let y=`${r}-${Date.now()}`;if(s.current=y,!p&&e[r]){n(false);return}n(true);try{let C=await c.getBalance(a.address,a.chainId);s.current===y&&t(x=>({...x,[r]:C}));}catch(C){console.error(`Failed to fetch native balance for ${r}:`,C),p&&s.current===y&&t(x=>{let g={...x};return delete g[r],g});}finally{s.current===y&&n(false);}},[a,c,r,i,e]),f=react.useCallback(()=>{u(true);},[u]);return react.useEffect(()=>{r&&i&&!e[r]?u(false):(!r||!i)&&n(false);},[r,i,e,u]),react.useEffect(()=>()=>{s.current=null;},[]),{balance:r&&e[r]||null,isLoading:o,refetch:f}}exports.a=be;exports.b=M;exports.c=W;exports.d=ye;exports.e=he;exports.f=Ae;exports.g=oe;exports.h=R;exports.i=Oe;exports.j=we;exports.k=Te;exports.l=ke;exports.m=Ee;exports.n=Ie;exports.o=Be;exports.p=Ve;exports.q=Ge;exports.r=Ke;exports.s=$;exports.t=$e;exports.u=ze;exports.v=Je;exports.w=ct;exports.x=lt;exports.y=xt;exports.z=wt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkL7GDJJ7W_cjs=require('../chunk-L7GDJJ7W.cjs');require('../chunk-Z7U4VY6E.cjs'),require('../chunk-K44IHM6B.cjs'),require('../chunk-MGBN4EIT.cjs'),require('../chunk-V6XDFRWV.cjs');Object.defineProperty(exports,"AboutWallets",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.u}});Object.defineProperty(exports,"BalanceDisplay",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.a}});Object.defineProperty(exports,"ChainListRenderer",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.b}});Object.defineProperty(exports,"ChainSelector",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.g}});Object.defineProperty(exports,"ConnectButton",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.l}});Object.defineProperty(exports,"ConnectCard",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.w}});Object.defineProperty(exports,"ConnectModal",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.G}});Object.defineProperty(exports,"ConnectedContent",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.j}});Object.defineProperty(exports,"ConnectedModal",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.t}});Object.defineProperty(exports,"ConnectedModalFooter",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.m}});Object.defineProperty(exports,"ConnectedModalMainContent",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.q}});Object.defineProperty(exports,"ConnectedModalNameAndBalance",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.n}});Object.defineProperty(exports,"ConnectedModalTxHistory",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.r}});Object.defineProperty(exports,"Connecting",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.x}});Object.defineProperty(exports,"ConnectionsContent",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.s}});Object.defineProperty(exports,"ConnectorsBlock",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.y}});Object.defineProperty(exports,"ConnectorsSelections",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.A}});Object.defineProperty(exports,"Disclaimer",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.z}});Object.defineProperty(exports,"GetWallet",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.B}});Object.defineProperty(exports,"IconButton",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.p}});Object.defineProperty(exports,"ImpersonateForm",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.C}});Object.defineProperty(exports,"LegalDisclaimer",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.D}});Object.defineProperty(exports,"NetworkSelections",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.E}});Object.defineProperty(exports,"NetworkTabs",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.F}});Object.defineProperty(exports,"RecentBadge",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.v}});Object.defineProperty(exports,"ScrollableChainList",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.f}});Object.defineProperty(exports,"SelectContentAnimated",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.e}});Object.defineProperty(exports,"StatusIcon",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.i}});Object.defineProperty(exports,"ToBottomButton",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.c}});Object.defineProperty(exports,"ToTopButton",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.d}});Object.defineProperty(exports,"ToastError",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.H}});Object.defineProperty(exports,"WaitForConnectionContent",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.k}});Object.defineProperty(exports,"WalletAvatar",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.h}});Object.defineProperty(exports,"WalletIcon",{enumerable:true,get:function(){return chunkL7GDJJ7W_cjs.o}});
|
|
@@ -2,8 +2,8 @@ import { Variants, TargetAndTransition, VariantLabels, LegacyAnimationControls,
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import React__default, { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
4
4
|
import * as Select from '@radix-ui/react-select';
|
|
5
|
-
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps, q as useNovaConnectLabels, d as NativeBalanceResult, a as ConnectedContentType, v as ConnectedModalTxHistoryProps, w as ConnectedModalTxHistoryCustomization, C as ConnectContentType } from '../useWalletNativeBalance-
|
|
6
|
-
export { x as ConnectedModalTxHistory, y as LocalTransactionsHistoryCustomization, z as LocalTxPagination } from '../useWalletNativeBalance-
|
|
5
|
+
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps, q as useNovaConnectLabels, d as NativeBalanceResult, a as ConnectedContentType, v as ConnectedModalTxHistoryProps, w as ConnectedModalTxHistoryCustomization, C as ConnectContentType } from '../useWalletNativeBalance-BIz0-C3s.cjs';
|
|
6
|
+
export { x as ConnectedModalTxHistory, y as LocalTransactionsHistoryCustomization, z as LocalTxPagination } from '../useWalletNativeBalance-BIz0-C3s.cjs';
|
|
7
7
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
8
8
|
import { Dialog, DialogContent, StarsBackground } from '@tuwaio/nova-core';
|
|
9
9
|
import { Transaction } from '@tuwaio/pulsar-core';
|
|
@@ -2,8 +2,8 @@ import { Variants, TargetAndTransition, VariantLabels, LegacyAnimationControls,
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import React__default, { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
4
4
|
import * as Select from '@radix-ui/react-select';
|
|
5
|
-
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps, q as useNovaConnectLabels, d as NativeBalanceResult, a as ConnectedContentType, v as ConnectedModalTxHistoryProps, w as ConnectedModalTxHistoryCustomization, C as ConnectContentType } from '../useWalletNativeBalance-
|
|
6
|
-
export { x as ConnectedModalTxHistory, y as LocalTransactionsHistoryCustomization, z as LocalTxPagination } from '../useWalletNativeBalance-
|
|
5
|
+
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps, q as useNovaConnectLabels, d as NativeBalanceResult, a as ConnectedContentType, v as ConnectedModalTxHistoryProps, w as ConnectedModalTxHistoryCustomization, C as ConnectContentType } from '../useWalletNativeBalance-BwWHQ9Tv.js';
|
|
6
|
+
export { x as ConnectedModalTxHistory, y as LocalTransactionsHistoryCustomization, z as LocalTxPagination } from '../useWalletNativeBalance-BwWHQ9Tv.js';
|
|
7
7
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
8
8
|
import { Dialog, DialogContent, StarsBackground } from '@tuwaio/nova-core';
|
|
9
9
|
import { Transaction } from '@tuwaio/pulsar-core';
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{u as AboutWallets,a as BalanceDisplay,b as ChainListRenderer,g as ChainSelector,l as ConnectButton,w as ConnectCard,G as ConnectModal,j as ConnectedContent,t as ConnectedModal,m as ConnectedModalFooter,q as ConnectedModalMainContent,n as ConnectedModalNameAndBalance,r as ConnectedModalTxHistory,x as Connecting,s as ConnectionsContent,y as ConnectorsBlock,A as ConnectorsSelections,z as Disclaimer,B as GetWallet,p as IconButton,C as ImpersonateForm,D as LegalDisclaimer,E as NetworkSelections,F as NetworkTabs,v as RecentBadge,f as ScrollableChainList,e as SelectContentAnimated,i as StatusIcon,c as ToBottomButton,d as ToTopButton,H as ToastError,k as WaitForConnectionContent,h as WalletAvatar,o as WalletIcon}from'../chunk-
|
|
1
|
+
export{u as AboutWallets,a as BalanceDisplay,b as ChainListRenderer,g as ChainSelector,l as ConnectButton,w as ConnectCard,G as ConnectModal,j as ConnectedContent,t as ConnectedModal,m as ConnectedModalFooter,q as ConnectedModalMainContent,n as ConnectedModalNameAndBalance,r as ConnectedModalTxHistory,x as Connecting,s as ConnectionsContent,y as ConnectorsBlock,A as ConnectorsSelections,z as Disclaimer,B as GetWallet,p as IconButton,C as ImpersonateForm,D as LegalDisclaimer,E as NetworkSelections,F as NetworkTabs,v as RecentBadge,f as ScrollableChainList,e as SelectContentAnimated,i as StatusIcon,c as ToBottomButton,d as ToTopButton,H as ToastError,k as WaitForConnectionContent,h as WalletAvatar,o as WalletIcon}from'../chunk-3BQNG7PE.js';import'../chunk-NSVTTYJR.js';import'../chunk-S3IRVZMG.js';import'../chunk-NQ5AECZQ.js';import'../chunk-EYP534IS.js';
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkZ7U4VY6E_cjs=require('../chunk-Z7U4VY6E.cjs');require('../chunk-K44IHM6B.cjs'),require('../chunk-MGBN4EIT.cjs'),require('../chunk-V6XDFRWV.cjs');Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.o}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.n}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.m}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.f}});Object.defineProperty(exports,"useNovaSiwx",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.p}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.y}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.z}});
|
package/dist/hooks/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as InitialChains } from '../useWalletNativeBalance-
|
|
2
|
-
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from '../useWalletNativeBalance-
|
|
1
|
+
import { I as InitialChains } from '../useWalletNativeBalance-BIz0-C3s.cjs';
|
|
2
|
+
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from '../useWalletNativeBalance-BIz0-C3s.cjs';
|
|
3
3
|
import * as _tuwaio_satellite_core from '@tuwaio/satellite-core';
|
|
4
4
|
import * as _tuwaio_satellite_react from '@tuwaio/satellite-react';
|
|
5
5
|
import { SatelliteSiwxFieldOptions, UseSiwxSignInOptions } from '@tuwaio/siwx-react';
|
|
@@ -79,6 +79,11 @@ declare function useGetWalletNameAndAvatar(options: UseGetWalletNameAndAvatarOpt
|
|
|
79
79
|
interface UseNovaSiwxOptions extends SatelliteSiwxFieldOptions {
|
|
80
80
|
/** Optional backend verification callback */
|
|
81
81
|
verifier?: UseSiwxSignInOptions['verifier'];
|
|
82
|
+
/**
|
|
83
|
+
* Optional callback triggered when `signOut` is called.
|
|
84
|
+
* Useful for hitting a `/logout` endpoint to clear the backend cookie.
|
|
85
|
+
*/
|
|
86
|
+
destroyer?: () => Promise<void>;
|
|
82
87
|
}
|
|
83
88
|
/**
|
|
84
89
|
* React hook that exposes SIWX authentication controls within NovaConnect applications.
|
|
@@ -88,13 +93,13 @@ interface UseNovaSiwxOptions extends SatelliteSiwxFieldOptions {
|
|
|
88
93
|
*
|
|
89
94
|
* @example
|
|
90
95
|
* ```tsx
|
|
91
|
-
* const { signIn, signOut } = useNovaSiwx({ verifier: myVerifier });
|
|
96
|
+
* const { signIn, signOut } = useNovaSiwx({ verifier: myVerifier, destroyer: myDestroyer });
|
|
92
97
|
* await signIn();
|
|
93
98
|
* ```
|
|
94
99
|
*/
|
|
95
100
|
declare function useNovaSiwx(options?: UseNovaSiwxOptions): {
|
|
96
101
|
signIn: (overrideConnection?: _tuwaio_satellite_core.Connector<_tuwaio_satellite_react.Connection> | undefined, customVerifier?: UseSiwxSignInOptions["verifier"]) => Promise<void>;
|
|
97
|
-
signOut: () => void
|
|
102
|
+
signOut: () => Promise<void>;
|
|
98
103
|
};
|
|
99
104
|
|
|
100
105
|
/**
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as InitialChains } from '../useWalletNativeBalance-
|
|
2
|
-
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from '../useWalletNativeBalance-
|
|
1
|
+
import { I as InitialChains } from '../useWalletNativeBalance-BwWHQ9Tv.js';
|
|
2
|
+
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from '../useWalletNativeBalance-BwWHQ9Tv.js';
|
|
3
3
|
import * as _tuwaio_satellite_core from '@tuwaio/satellite-core';
|
|
4
4
|
import * as _tuwaio_satellite_react from '@tuwaio/satellite-react';
|
|
5
5
|
import { SatelliteSiwxFieldOptions, UseSiwxSignInOptions } from '@tuwaio/siwx-react';
|
|
@@ -79,6 +79,11 @@ declare function useGetWalletNameAndAvatar(options: UseGetWalletNameAndAvatarOpt
|
|
|
79
79
|
interface UseNovaSiwxOptions extends SatelliteSiwxFieldOptions {
|
|
80
80
|
/** Optional backend verification callback */
|
|
81
81
|
verifier?: UseSiwxSignInOptions['verifier'];
|
|
82
|
+
/**
|
|
83
|
+
* Optional callback triggered when `signOut` is called.
|
|
84
|
+
* Useful for hitting a `/logout` endpoint to clear the backend cookie.
|
|
85
|
+
*/
|
|
86
|
+
destroyer?: () => Promise<void>;
|
|
82
87
|
}
|
|
83
88
|
/**
|
|
84
89
|
* React hook that exposes SIWX authentication controls within NovaConnect applications.
|
|
@@ -88,13 +93,13 @@ interface UseNovaSiwxOptions extends SatelliteSiwxFieldOptions {
|
|
|
88
93
|
*
|
|
89
94
|
* @example
|
|
90
95
|
* ```tsx
|
|
91
|
-
* const { signIn, signOut } = useNovaSiwx({ verifier: myVerifier });
|
|
96
|
+
* const { signIn, signOut } = useNovaSiwx({ verifier: myVerifier, destroyer: myDestroyer });
|
|
92
97
|
* await signIn();
|
|
93
98
|
* ```
|
|
94
99
|
*/
|
|
95
100
|
declare function useNovaSiwx(options?: UseNovaSiwxOptions): {
|
|
96
101
|
signIn: (overrideConnection?: _tuwaio_satellite_core.Connector<_tuwaio_satellite_react.Connection> | undefined, customVerifier?: UseSiwxSignInOptions["verifier"]) => Promise<void>;
|
|
97
|
-
signOut: () => void
|
|
102
|
+
signOut: () => Promise<void>;
|
|
98
103
|
};
|
|
99
104
|
|
|
100
105
|
/**
|
package/dist/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,n as getLabelWithFallback,k as hasLabel,m as isDefaultLabels,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,p as useNovaSiwx,y as useWalletChainsList,z as useWalletNativeBalance}from'../chunk-
|
|
1
|
+
export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,n as getLabelWithFallback,k as hasLabel,m as isDefaultLabels,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,p as useNovaSiwx,y as useWalletChainsList,z as useWalletNativeBalance}from'../chunk-NSVTTYJR.js';import'../chunk-S3IRVZMG.js';import'../chunk-NQ5AECZQ.js';import'../chunk-EYP534IS.js';
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var chunkKYHX7HBC_cjs=require('./chunk-KYHX7HBC.cjs'),chunkNIHARC32_cjs=require('./chunk-NIHARC32.cjs'),chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunkV6XDFRWV_cjs=require('./chunk-V6XDFRWV.cjs'),orbitCore=require('@tuwaio/orbit-core'),novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime'),siwxReact=require('@tuwaio/siwx-react');var ze=({title:e,rawError:o,onCopyComplete:r,errorType:l,isConnected:n,...d})=>jsxRuntime.jsx(chunkKYHX7HBC_cjs.H,{title:e,rawError:o,onCopyComplete:r,customization:d.customization}),Ie=e=>{let o=chunkNIHARC32_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":o.somethingWentWrong})},We=(e,o)=>{e(o.title,o.rawError,o.errorKey);},He=e=>{e();},Ue=(e,o)=>{if(e&&process.env.NODE_ENV==="development"){let r=typeof o=="string"?o:o.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ve=e=>e,Fe=e=>e;function ie({containerId:e="nova-connect-errors",position:o="top-center",autoClose:r=7e3,draggable:l=false,customization:n}){let d=chunkNIHARC32_cjs.h(),L=chunkV6XDFRWV_cjs.d(i=>i.switchNetworkError),O=chunkV6XDFRWV_cjs.d(i=>i.activeConnection),t=chunkV6XDFRWV_cjs.d(i=>i.connectionError),{ToastError:S=ze,Container:R=Ie}=n?.components??{},{showError:N=We,dismissError:p=He,onCopyComplete:c=Ue}=n?.handlers??{},{errorTitle:x=Ve,errorHash:T=Fe}=n??{},s=react.useRef(new Set),u=react.useRef(null),y=!!t,f=!!L,E=!!O?.isConnected,h=y||f,B=t||L||null,P=y?"wallet":f?"switch":null,a={hasWalletError:y,hasSwitchError:f,isConnected:E,hasAnyError:h,primaryError:B,errorType:P},W=d.somethingWentWrong;switch(a.errorType){case "wallet":W=d.connectionError;break;case "switch":W=d.errorWhenChainSwitching;break}let A=x(W,{errorType:a.errorType}),$=a.primaryError?`${a.errorType}-${a.primaryError.message.substring(0,50)}`:null,M=T($,{primaryError:a.primaryError,errorType:a.errorType}),w=react.useCallback(()=>{p(()=>{u.current&&(reactToastify.toast.dismiss(u.current),u.current=null),reactToastify.toast.dismiss({containerId:e});});},[e,p]),k=react.useCallback((i,m)=>{c(i,m,P);},[c,P]),D=react.useCallback((i,m,g)=>{if(w(),!s.current.has(g))try{let U={containerId:e,toastId:g,onClose:()=>{s.current.delete(g),u.current=null;}},J=n?.toastOptions?.error?.({title:i,rawError:m,errorType:a.errorType,isConnected:a.isConnected}),V={...U,...J};reactToastify.toast.error(jsxRuntime.jsx(S,{title:i,rawError:m,errorType:a.errorType,isConnected:a.isConnected,onCopyComplete:Q=>k(Q,m),customization:n?.toastErrorCustomization}),V),s.current.add(g),u.current=g;}catch(U){console.error("Failed to show error toast:",U);}},[w,e,n?.toastOptions?.error,n?.toastErrorCustomization,S,a.errorType,a.isConnected,k]),z=react.useCallback((i,m,g)=>{N(D,{title:i,rawError:m,errorKey:g,errorType:P});},[D,N,P]);react.useEffect(()=>{if(E&&!h){w(),s.current.clear();return}if(h&&B&&M){if(E&&P!=="switch")return;z(A,B,M);}},[h,E,B,P,A,M,z,w]),react.useEffect(()=>()=>{w(),s.current.clear();},[w]);let _=n?.classNames?.container?n.classNames.container({hasErrors:a.hasAnyError,errorType:a.errorType}):"novacon:p-0 novacon:bg-transparent",H=react.useMemo(()=>{let i=n?.toastCloseButton;return i?({closeToast:m})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:m,...i}):novaCore.ToastCloseButton},[n?.toastCloseButton]),j={...{containerId:e,position:o,closeOnClick:false,icon:false,closeButton:H,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:l,pauseOnHover:true,theme:"light",transition:reactToastify.Bounce},...n?.containerProps,className:_};return jsxRuntime.jsx(R,{...j})}ie.displayName="ErrorsProvider";function le({labels:e,children:o}){let r=react.useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in e));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsxRuntime.jsx(chunkNIHARC32_cjs.g.Provider,{value:r,children:o})}le.displayName="NovaConnectLabelsProvider";function de(e){let{enabled:o=true,verifier:r,domain:l,uri:n,statement:d,onSuccess:L,onError:O}=e,t=chunkV6XDFRWV_cjs.d(s=>s.activeConnection),S=chunkV6XDFRWV_cjs.d(s=>s.disconnect),{signIn:R}=siwxReact.useSiwx(),N=siwxReact.useSiwxSessionStore(s=>s.session),p=siwxReact.useSiwxSessionStore(s=>s.status),c=siwxReact.useSiwxSessionStore(s=>s.reset),x=react.useRef(null),T=react.useRef(false);return react.useEffect(()=>{(!t?.isConnected||!t?.address)&&(x.current=null);},[t?.isConnected,t?.address]),react.useEffect(()=>{if(!(!o||!t?.isConnected||!t?.address||!t?.chainId)&&t.signMessage&&!T.current&&!(p==="building"||p==="signing"||p==="verifying"))try{let s={address:String(t.address),chainId:t.chainId,signMessage:t.signMessage,isConnected:t.isConnected},u=siwxReact.getSatelliteSiwxFields(s,{domain:l,uri:n,statement:d});if(p==="authenticated"&&N?.address===u.address||x.current===u.address)return;if(x.current=u.address,!r){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let y=f=>{let E=f instanceof Error?f.message:String(f);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",E);let h=t.address;t.connectorType&&h===t.address&&S(t.connectorType),c(),O?.(E);};T.current=!0,R({signer:t.signMessage,verifier:r,fields:u,onSuccess:L,onError:y}).catch(y).finally(()=>{T.current=!1;});}catch(s){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",s);}},[t?.isConnected,t?.address,t?.chainId,t?.signMessage,t?.connectorType,S,o,p,N?.address,r,l,n,d,R,c,O]),null}var $e=({labels:e,children:o})=>jsxRuntime.jsx(le,{labels:e,children:o}),_e=({customization:e})=>jsxRuntime.jsx(ie,{customization:e}),je=(e,o)=>novaCore.deepMerge(e,o||{}),Je=e=>e,Qe=e=>e,Ye=(e,o,r)=>e;function Ze({labels:e,children:o,appChains:r,solanaRPCUrls:l,transactionPool:n,pulsarAdapter:d,withImpersonated:L,withBalance:O,withChain:t,popularConnectors:S,customConnectorGroups:R,legal:N,siwx:p,customization:c,pagination:x}){let T=chunkV6XDFRWV_cjs.d(te=>te.activeConnection),s=chunkV6XDFRWV_cjs.d(te=>te.connectionError),{LabelsProvider:u=$e,ErrorsProvider:y=_e}=c?.components??{},{merge:f=je,transform:E=Je}=c?.labels??{},{transform:h=Qe}=c?.contextValue??{},{providerTree:B=Ye}=c?.rendering??{},P=react.useMemo(()=>f(chunkMGBN4EIT_cjs.a,e||{}),[e,f]),[a,W]=react.useState(false),[A,$]=react.useState(false),[M,w]=react.useState(false),[k,D]=react.useState(false),[z,_]=react.useState("idle"),[H,me]=react.useState("connectors"),[j,i]=react.useState(void 0),[m,g]=react.useState(void 0),[U,J]=react.useState(""),[V,Q]=react.useState(false),[Y,Ne]=react.useState("main"),xe={appChains:r,solanaRPCUrls:l,withImpersonated:L,popularConnectors:S,customConnectorGroups:R,withBalance:O,withChain:t,isConnectModalOpen:a,setIsConnectModalOpen:W,isConnectedModalOpen:A,setIsConnectedModalOpen:$,isChainsListOpen:M,setIsChainsListOpen:w,isChainsListOpenMobile:k,setIsChainsListOpenMobile:D,connectedButtonStatus:z,setConnectedButtonStatus:_,connectedModalContentType:Y,setConnectedModalContentType:Ne,connectModalContentType:H,setConnectModalContentType:me,selectedAdapter:j,setSelectedAdapter:i,activeConnector:m,setActiveConnector:g,impersonatedAddress:U,setImpersonatedAddress:J,isConnected:V,setIsConnected:Q,legal:N},K=react.useMemo(()=>({isConnected:V,activeConnection:T,connectionError:s,modalStates:{isConnectModalOpen:a,isConnectedModalOpen:A,isChainsListOpen:M,isChainsListOpenMobile:k},contentTypes:{connectModal:H,connectedModal:Y},statuses:{connectedButton:z}}),[V,T,s,a,A,M,k,H,Y,z]),Me=react.useMemo(()=>E(P,K),[P,E,K]),Ce=h(xe,K),Z=jsxRuntime.jsx(y,{customization:c?.errors}),ee=jsxRuntime.jsx(u,{labels:Me,children:o}),oe=r||l?jsxRuntime.jsx(chunkKYHX7HBC_cjs.G,{solanaRPCUrls:l,appChains:r,customization:c?.modals?.connectModal}):null,re=r||l?jsxRuntime.jsx(chunkKYHX7HBC_cjs.t,{solanaRPCUrls:l,appChains:r,transactionPool:n,pulsarAdapter:d,customization:c?.modals?.connectedModal,pagination:x}):null,Le=jsxRuntime.jsxs(chunkNIHARC32_cjs.c.Provider,{value:Ce,children:[jsxRuntime.jsx(de,{...p}),Z,ee,oe,re]}),Oe=jsxRuntime.jsxs(chunkNIHARC32_cjs.c.Provider,{value:Ce,children:[jsxRuntime.jsx(de,{...p}),Z,ee,oe,re]}),Re=B(Oe,{ErrorsProvider:Z,LabelsProvider:ee,MainContent:Le,ConnectModal:oe||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:re||jsxRuntime.jsx(jsxRuntime.Fragment,{})},K);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Re})}Ze.displayName="NovaConnectProvider";async function kr(){let{getAllAdaptersStatus:e}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs');return {hasEvmUtils:await q(),hasSolanaUtils:await X(),adaptersStatus:e()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function X(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function zr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let o=await import('./evm/index.cjs'),r=await o.getEvmExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"EVM utilities not available"}}}async function Ir(){try{if(!await X())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let o=await import('./solana/index.cjs'),r=await o.getSolanaExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"Solana utilities not available"}}}async function Wr(){let e={evm:false,solana:false,errors:[]};try{let o=await q(),r=await X();if(o||r){let{preloadChainAdapters:l}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs'),n=[];o&&n.push(orbitCore.OrbitAdapter.EVM),r&&n.push(orbitCore.OrbitAdapter.SOLANA),await l(n),e.evm=o,e.solana=r;}else e.errors.push("No blockchain packages available for initialization");}catch(o){let r=o instanceof Error?o.message:"Unknown initialization error";e.errors.push(r);}return e}async function Hr(e){return e===orbitCore.OrbitAdapter.Starknet||e!==orbitCore.OrbitAdapter.EVM&&e!==orbitCore.OrbitAdapter.SOLANA?false:e===orbitCore.OrbitAdapter.EVM?q():X()}Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkNIHARC32_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkNIHARC32_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunkNIHARC32_cjs.r}});Object.defineProperty(exports,"getAvailableSolanaClusters",{enumerable:true,get:function(){return chunkNIHARC32_cjs.w}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunkNIHARC32_cjs.q}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunkNIHARC32_cjs.u}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunkNIHARC32_cjs.s}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkNIHARC32_cjs.n}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunkNIHARC32_cjs.t}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunkNIHARC32_cjs.v}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkNIHARC32_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkNIHARC32_cjs.m}});Object.defineProperty(exports,"isValidSolanaCluster",{enumerable:true,get:function(){return chunkNIHARC32_cjs.x}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkNIHARC32_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkNIHARC32_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkNIHARC32_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkNIHARC32_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkNIHARC32_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkNIHARC32_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkNIHARC32_cjs.f}});Object.defineProperty(exports,"useNovaSiwx",{enumerable:true,get:function(){return chunkNIHARC32_cjs.p}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkNIHARC32_cjs.y}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkNIHARC32_cjs.z}});Object.defineProperty(exports,"getAdapterStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.k}});Object.defineProperty(exports,"getAllAdaptersStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.l}});Object.defineProperty(exports,"getAvailableSolanaClustersAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.g}});Object.defineProperty(exports,"getChainsListByConnectorType",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getChainsListByConnectorTypeAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.a}});Object.defineProperty(exports,"getChainsListByConnectorTypeSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getWalletChains",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.i}});Object.defineProperty(exports,"isEvmChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isEvmChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.c}});Object.defineProperty(exports,"isEvmChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isSolanaChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isSolanaChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.d}});Object.defineProperty(exports,"isSolanaChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isValidSolanaClusterAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.h}});Object.defineProperty(exports,"preloadChainAdapters",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.j}});exports.ErrorsProvider=ie;exports.NovaConnectLabelsProvider=le;exports.NovaConnectProvider=Ze;exports.NovaSiwxWatcher=de;exports.getBlockchainUtilities=kr;exports.getEvmUtils=zr;exports.getSolanaUtils=Ir;exports.initializeBlockchainSupport=Wr;exports.isAdapterSupported=Hr;
|
|
1
|
+
'use strict';var chunkL7GDJJ7W_cjs=require('./chunk-L7GDJJ7W.cjs'),chunkZ7U4VY6E_cjs=require('./chunk-Z7U4VY6E.cjs'),chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunkV6XDFRWV_cjs=require('./chunk-V6XDFRWV.cjs'),orbitCore=require('@tuwaio/orbit-core'),novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime'),siwxReact=require('@tuwaio/siwx-react');var We=({title:e,rawError:o,onCopyComplete:r,errorType:c,isConnected:n,...d})=>jsxRuntime.jsx(chunkL7GDJJ7W_cjs.H,{title:e,rawError:o,onCopyComplete:r,customization:d.customization}),ze=e=>{let o=chunkZ7U4VY6E_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":o.somethingWentWrong})},Ie=(e,o)=>{e(o.title,o.rawError,o.errorKey);},He=e=>{e();},Ue=(e,o)=>{if(e&&process.env.NODE_ENV==="development"){let r=typeof o=="string"?o:o.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ve=e=>e,Fe=e=>e;function ie({containerId:e="nova-connect-errors",position:o="top-center",autoClose:r=7e3,draggable:c=false,customization:n}){let d=chunkZ7U4VY6E_cjs.h(),x=chunkV6XDFRWV_cjs.d(l=>l.switchNetworkError),z=chunkV6XDFRWV_cjs.d(l=>l.activeConnection),M=chunkV6XDFRWV_cjs.d(l=>l.connectionError),{ToastError:t=We,Container:R=ze}=n?.components??{},{showError:L=Ie,dismissError:f=He,onCopyComplete:i=Ue}=n?.handlers??{},{errorTitle:h=Ve,errorHash:w=Fe}=n??{},u=react.useRef(new Set),s=react.useRef(null),E=!!M,g=!!x,p=!!z?.isConnected,T=E||g,S=M||x||null,P=E?"wallet":g?"switch":null,a={hasWalletError:E,hasSwitchError:g,isConnected:p,hasAnyError:T,primaryError:S,errorType:P},I=d.somethingWentWrong;switch(a.errorType){case "wallet":I=d.connectionError;break;case "switch":I=d.errorWhenChainSwitching;break}let B=h(I,{errorType:a.errorType}),$=a.primaryError?`${a.errorType}-${a.primaryError.message.substring(0,50)}`:null,O=w($,{primaryError:a.primaryError,errorType:a.errorType}),N=react.useCallback(()=>{f(()=>{s.current&&(reactToastify.toast.dismiss(s.current),s.current=null),reactToastify.toast.dismiss({containerId:e});});},[e,f]),A=react.useCallback((l,m)=>{i(l,m,P);},[i,P]),D=react.useCallback((l,m,y)=>{if(N(),!u.current.has(y))try{let U={containerId:e,toastId:y,onClose:()=>{u.current.delete(y),s.current=null;}},J=n?.toastOptions?.error?.({title:l,rawError:m,errorType:a.errorType,isConnected:a.isConnected}),V={...U,...J};reactToastify.toast.error(jsxRuntime.jsx(t,{title:l,rawError:m,errorType:a.errorType,isConnected:a.isConnected,onCopyComplete:Q=>A(Q,m),customization:n?.toastErrorCustomization}),V),u.current.add(y),s.current=y;}catch(U){console.error("Failed to show error toast:",U);}},[N,e,n?.toastOptions?.error,n?.toastErrorCustomization,t,a.errorType,a.isConnected,A]),k=react.useCallback((l,m,y)=>{L(D,{title:l,rawError:m,errorKey:y,errorType:P});},[D,L,P]);react.useEffect(()=>{if(p&&!T){N(),u.current.clear();return}if(T&&S&&O){if(p&&P!=="switch")return;k(B,S,O);}},[T,p,S,P,B,O,k,N]),react.useEffect(()=>()=>{N(),u.current.clear();},[N]);let _=n?.classNames?.container?n.classNames.container({hasErrors:a.hasAnyError,errorType:a.errorType}):"novacon:p-0 novacon:bg-transparent",H=react.useMemo(()=>{let l=n?.toastCloseButton;return l?({closeToast:m})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:m,...l}):novaCore.ToastCloseButton},[n?.toastCloseButton]),j={...{containerId:e,position:o,closeOnClick:false,icon:false,closeButton:H,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:c,pauseOnHover:true,theme:"light",transition:reactToastify.Bounce},...n?.containerProps,className:_};return jsxRuntime.jsx(R,{...j})}ie.displayName="ErrorsProvider";function le({labels:e,children:o}){let r=react.useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in e));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsxRuntime.jsx(chunkZ7U4VY6E_cjs.g.Provider,{value:r,children:o})}le.displayName="NovaConnectLabelsProvider";function de(e){let{enabled:o=true,verifier:r,destroyer:c,domain:n,uri:d,statement:x,onSuccess:z,onError:M}=e,t=chunkV6XDFRWV_cjs.d(s=>s.activeConnection),R=chunkV6XDFRWV_cjs.d(s=>s.disconnect),{signIn:L}=siwxReact.useSiwx(),f=siwxReact.useSiwxSessionStore(s=>s.session),i=siwxReact.useSiwxSessionStore(s=>s.status),h=siwxReact.useSiwxSessionStore(s=>s.reset),w=react.useRef(null),u=react.useRef(false);return react.useEffect(()=>{(!t?.isConnected||!t?.address)&&(w.current=null,(i==="authenticated"||f)&&(h(),c&&c().catch(s=>{console.warn("[NovaSiwxWatcher] Failed to execute session destroyer:",s);})));},[t?.isConnected,t?.address,i,f,h,c]),react.useEffect(()=>{if(!(!o||!t?.isConnected||!t?.address||!t?.chainId)&&t.signMessage&&!u.current&&!(i==="building"||i==="signing"||i==="verifying"))try{let s={address:String(t.address),chainId:t.chainId,signMessage:t.signMessage,isConnected:t.isConnected},E=siwxReact.getSatelliteSiwxFields(s,{domain:n,uri:d,statement:x});if(i==="authenticated"&&f?.address===E.address||w.current===E.address)return;if(w.current=E.address,!r){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let g=p=>{let T=p instanceof Error?p.message:String(p);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",T);let S=t.address;t.connectorType&&S===t.address&&R(t.connectorType),h(),M?.(T);};u.current=!0,L({signer:t.signMessage,verifier:r,fields:E,onSuccess:z,onError:g}).catch(g).finally(()=>{u.current=!1;});}catch(s){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",s);}},[t?.isConnected,t?.address,t?.chainId,t?.signMessage,t?.connectorType,R,o,i,f?.address,r,n,d,x,L,h,M]),null}var $e=({labels:e,children:o})=>jsxRuntime.jsx(le,{labels:e,children:o}),_e=({customization:e})=>jsxRuntime.jsx(ie,{customization:e}),je=(e,o)=>novaCore.deepMerge(e,o||{}),Je=e=>e,Qe=e=>e,Ye=(e,o,r)=>e;function Ze({labels:e,children:o,appChains:r,solanaRPCUrls:c,transactionPool:n,pulsarAdapter:d,withImpersonated:x,withBalance:z,withChain:M,popularConnectors:t,customConnectorGroups:R,legal:L,siwx:f,customization:i,pagination:h}){let w=chunkV6XDFRWV_cjs.d(te=>te.activeConnection),u=chunkV6XDFRWV_cjs.d(te=>te.connectionError),{LabelsProvider:s=$e,ErrorsProvider:E=_e}=i?.components??{},{merge:g=je,transform:p=Je}=i?.labels??{},{transform:T=Qe}=i?.contextValue??{},{providerTree:S=Ye}=i?.rendering??{},P=react.useMemo(()=>g(chunkMGBN4EIT_cjs.a,e||{}),[e,g]),[a,I]=react.useState(false),[B,$]=react.useState(false),[O,N]=react.useState(false),[A,D]=react.useState(false),[k,_]=react.useState("idle"),[H,me]=react.useState("connectors"),[j,l]=react.useState(void 0),[m,y]=react.useState(void 0),[U,J]=react.useState(""),[V,Q]=react.useState(false),[Y,Ne]=react.useState("main"),xe={appChains:r,solanaRPCUrls:c,withImpersonated:x,popularConnectors:t,customConnectorGroups:R,withBalance:z,withChain:M,isConnectModalOpen:a,setIsConnectModalOpen:I,isConnectedModalOpen:B,setIsConnectedModalOpen:$,isChainsListOpen:O,setIsChainsListOpen:N,isChainsListOpenMobile:A,setIsChainsListOpenMobile:D,connectedButtonStatus:k,setConnectedButtonStatus:_,connectedModalContentType:Y,setConnectedModalContentType:Ne,connectModalContentType:H,setConnectModalContentType:me,selectedAdapter:j,setSelectedAdapter:l,activeConnector:m,setActiveConnector:y,impersonatedAddress:U,setImpersonatedAddress:J,isConnected:V,setIsConnected:Q,legal:L},K=react.useMemo(()=>({isConnected:V,activeConnection:w,connectionError:u,modalStates:{isConnectModalOpen:a,isConnectedModalOpen:B,isChainsListOpen:O,isChainsListOpenMobile:A},contentTypes:{connectModal:H,connectedModal:Y},statuses:{connectedButton:k}}),[V,w,u,a,B,O,A,H,Y,k]),Me=react.useMemo(()=>p(P,K),[P,p,K]),Ce=T(xe,K),Z=jsxRuntime.jsx(E,{customization:i?.errors}),ee=jsxRuntime.jsx(s,{labels:Me,children:o}),oe=r||c?jsxRuntime.jsx(chunkL7GDJJ7W_cjs.G,{solanaRPCUrls:c,appChains:r,customization:i?.modals?.connectModal}):null,re=r||c?jsxRuntime.jsx(chunkL7GDJJ7W_cjs.t,{solanaRPCUrls:c,appChains:r,transactionPool:n,pulsarAdapter:d,customization:i?.modals?.connectedModal,pagination:h}):null,Le=jsxRuntime.jsxs(chunkZ7U4VY6E_cjs.c.Provider,{value:Ce,children:[jsxRuntime.jsx(de,{...f}),Z,ee,oe,re]}),Oe=jsxRuntime.jsxs(chunkZ7U4VY6E_cjs.c.Provider,{value:Ce,children:[jsxRuntime.jsx(de,{...f}),Z,ee,oe,re]}),Re=S(Oe,{ErrorsProvider:Z,LabelsProvider:ee,MainContent:Le,ConnectModal:oe||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:re||jsxRuntime.jsx(jsxRuntime.Fragment,{})},K);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Re})}Ze.displayName="NovaConnectProvider";async function kr(){let{getAllAdaptersStatus:e}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs');return {hasEvmUtils:await q(),hasSolanaUtils:await X(),adaptersStatus:e()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function X(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Wr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let o=await import('./evm/index.cjs'),r=await o.getEvmExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"EVM utilities not available"}}}async function zr(){try{if(!await X())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let o=await import('./solana/index.cjs'),r=await o.getSolanaExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"Solana utilities not available"}}}async function Ir(){let e={evm:false,solana:false,errors:[]};try{let o=await q(),r=await X();if(o||r){let{preloadChainAdapters:c}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs'),n=[];o&&n.push(orbitCore.OrbitAdapter.EVM),r&&n.push(orbitCore.OrbitAdapter.SOLANA),await c(n),e.evm=o,e.solana=r;}else e.errors.push("No blockchain packages available for initialization");}catch(o){let r=o instanceof Error?o.message:"Unknown initialization error";e.errors.push(r);}return e}async function Hr(e){return e===orbitCore.OrbitAdapter.Starknet||e!==orbitCore.OrbitAdapter.EVM&&e!==orbitCore.OrbitAdapter.SOLANA?false:e===orbitCore.OrbitAdapter.EVM?q():X()}Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.r}});Object.defineProperty(exports,"getAvailableSolanaClusters",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.w}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.q}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.u}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.s}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.n}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.t}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.v}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.m}});Object.defineProperty(exports,"isValidSolanaCluster",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.x}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.f}});Object.defineProperty(exports,"useNovaSiwx",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.p}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.y}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkZ7U4VY6E_cjs.z}});Object.defineProperty(exports,"getAdapterStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.k}});Object.defineProperty(exports,"getAllAdaptersStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.l}});Object.defineProperty(exports,"getAvailableSolanaClustersAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.g}});Object.defineProperty(exports,"getChainsListByConnectorType",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getChainsListByConnectorTypeAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.a}});Object.defineProperty(exports,"getChainsListByConnectorTypeSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getWalletChains",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.i}});Object.defineProperty(exports,"isEvmChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isEvmChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.c}});Object.defineProperty(exports,"isEvmChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isSolanaChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isSolanaChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.d}});Object.defineProperty(exports,"isSolanaChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isValidSolanaClusterAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.h}});Object.defineProperty(exports,"preloadChainAdapters",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.j}});exports.ErrorsProvider=ie;exports.NovaConnectLabelsProvider=le;exports.NovaConnectProvider=Ze;exports.NovaSiwxWatcher=de;exports.getBlockchainUtilities=kr;exports.getEvmUtils=Wr;exports.getSolanaUtils=zr;exports.initializeBlockchainSupport=Ir;exports.isAdapterSupported=Hr;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TuwaErrorState, OrbitAdapter, ConnectorType, ChainIdentifierArray } from '@tuwaio/orbit-core';
|
|
2
2
|
export { UseNovaSiwxOptions, WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList } from './hooks/index.cjs';
|
|
3
|
-
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-
|
|
4
|
-
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, h as NovaSiwxWatcher, i as NovaSiwxWatcherProps, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from './useWalletNativeBalance-
|
|
3
|
+
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-BIz0-C3s.cjs';
|
|
4
|
+
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, h as NovaSiwxWatcher, i as NovaSiwxWatcherProps, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from './useWalletNativeBalance-BIz0-C3s.cjs';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
7
7
|
import { ToastCloseButtonProps } from '@tuwaio/nova-core';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TuwaErrorState, OrbitAdapter, ConnectorType, ChainIdentifierArray } from '@tuwaio/orbit-core';
|
|
2
2
|
export { UseNovaSiwxOptions, WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList } from './hooks/index.js';
|
|
3
|
-
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-
|
|
4
|
-
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, h as NovaSiwxWatcher, i as NovaSiwxWatcherProps, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from './useWalletNativeBalance-
|
|
3
|
+
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-BwWHQ9Tv.js';
|
|
4
|
+
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, h as NovaSiwxWatcher, i as NovaSiwxWatcherProps, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from './useWalletNativeBalance-BwWHQ9Tv.js';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
7
7
|
import { ToastCloseButtonProps } from '@tuwaio/nova-core';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {G,t,H}from'./chunk-G5BCVG44.js';import {h,g,c}from'./chunk-BOOFGSLL.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,r as getAvailableChainIds,w as getAvailableSolanaClusters,q as getConnectChainId,u as getFilteredConnectors,s as getGroupedConnectors,n as getLabelWithFallback,t as hasAvailableConnectors,v as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,x as isValidSolanaCluster,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,p as useNovaSiwx,y as useWalletChainsList,z as useWalletNativeBalance}from'./chunk-BOOFGSLL.js';export{k as getAdapterStatus,l as getAllAdaptersStatus,g as getAvailableSolanaClustersAsync,b as getChainsListByConnectorType,a as getChainsListByConnectorTypeAsync,b as getChainsListByConnectorTypeSync,i as getWalletChains,e as isEvmChainList,c as isEvmChainListAsync,e as isEvmChainListSync,f as isSolanaChainList,d as isSolanaChainListAsync,f as isSolanaChainListSync,h as isValidSolanaClusterAsync,j as preloadChainAdapters}from'./chunk-S3IRVZMG.js';import {a}from'./chunk-NQ5AECZQ.js';import {d}from'./chunk-EYP534IS.js';import {OrbitAdapter}from'@tuwaio/orbit-core';import {ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {useRef,useCallback,useEffect,useMemo,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useSiwx,useSiwxSessionStore,getSatelliteSiwxFields}from'@tuwaio/siwx-react';var ze=({title:e,rawError:o,onCopyComplete:r,errorType:l,isConnected:n,...d})=>jsx(H,{title:e,rawError:o,onCopyComplete:r,customization:d.customization}),Ie=e=>{let o=h();return jsx(ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":o.somethingWentWrong})},We=(e,o)=>{e(o.title,o.rawError,o.errorKey);},He=e=>{e();},Ue=(e,o)=>{if(e&&process.env.NODE_ENV==="development"){let r=typeof o=="string"?o:o.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ve=e=>e,Fe=e=>e;function ie({containerId:e="nova-connect-errors",position:o="top-center",autoClose:r=7e3,draggable:l=false,customization:n}){let d$1=h(),L=d(i=>i.switchNetworkError),O=d(i=>i.activeConnection),t=d(i=>i.connectionError),{ToastError:S=ze,Container:R=Ie}=n?.components??{},{showError:N=We,dismissError:p=He,onCopyComplete:c=Ue}=n?.handlers??{},{errorTitle:x=Ve,errorHash:T=Fe}=n??{},s=useRef(new Set),u=useRef(null),y=!!t,f=!!L,E=!!O?.isConnected,h$1=y||f,B=t||L||null,P=y?"wallet":f?"switch":null,a={hasWalletError:y,hasSwitchError:f,isConnected:E,hasAnyError:h$1,primaryError:B,errorType:P},W=d$1.somethingWentWrong;switch(a.errorType){case "wallet":W=d$1.connectionError;break;case "switch":W=d$1.errorWhenChainSwitching;break}let A=x(W,{errorType:a.errorType}),$=a.primaryError?`${a.errorType}-${a.primaryError.message.substring(0,50)}`:null,M=T($,{primaryError:a.primaryError,errorType:a.errorType}),w=useCallback(()=>{p(()=>{u.current&&(toast.dismiss(u.current),u.current=null),toast.dismiss({containerId:e});});},[e,p]),k=useCallback((i,m)=>{c(i,m,P);},[c,P]),D=useCallback((i,m,g)=>{if(w(),!s.current.has(g))try{let U={containerId:e,toastId:g,onClose:()=>{s.current.delete(g),u.current=null;}},J=n?.toastOptions?.error?.({title:i,rawError:m,errorType:a.errorType,isConnected:a.isConnected}),V={...U,...J};toast.error(jsx(S,{title:i,rawError:m,errorType:a.errorType,isConnected:a.isConnected,onCopyComplete:Q=>k(Q,m),customization:n?.toastErrorCustomization}),V),s.current.add(g),u.current=g;}catch(U){console.error("Failed to show error toast:",U);}},[w,e,n?.toastOptions?.error,n?.toastErrorCustomization,S,a.errorType,a.isConnected,k]),z=useCallback((i,m,g)=>{N(D,{title:i,rawError:m,errorKey:g,errorType:P});},[D,N,P]);useEffect(()=>{if(E&&!h$1){w(),s.current.clear();return}if(h$1&&B&&M){if(E&&P!=="switch")return;z(A,B,M);}},[h$1,E,B,P,A,M,z,w]),useEffect(()=>()=>{w(),s.current.clear();},[w]);let _=n?.classNames?.container?n.classNames.container({hasErrors:a.hasAnyError,errorType:a.errorType}):"novacon:p-0 novacon:bg-transparent",H=useMemo(()=>{let i=n?.toastCloseButton;return i?({closeToast:m})=>jsx(ToastCloseButton,{closeToast:m,...i}):ToastCloseButton},[n?.toastCloseButton]),j={...{containerId:e,position:o,closeOnClick:false,icon:false,closeButton:H,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:l,pauseOnHover:true,theme:"light",transition:Bounce},...n?.containerProps,className:_};return jsx(R,{...j})}ie.displayName="ErrorsProvider";function le({labels:e,children:o}){let r=useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in e));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsx(g.Provider,{value:r,children:o})}le.displayName="NovaConnectLabelsProvider";function de(e){let{enabled:o=true,verifier:r,domain:l,uri:n,statement:d$1,onSuccess:L,onError:O}=e,t=d(s=>s.activeConnection),S=d(s=>s.disconnect),{signIn:R}=useSiwx(),N=useSiwxSessionStore(s=>s.session),p=useSiwxSessionStore(s=>s.status),c=useSiwxSessionStore(s=>s.reset),x=useRef(null),T=useRef(false);return useEffect(()=>{(!t?.isConnected||!t?.address)&&(x.current=null);},[t?.isConnected,t?.address]),useEffect(()=>{if(!(!o||!t?.isConnected||!t?.address||!t?.chainId)&&t.signMessage&&!T.current&&!(p==="building"||p==="signing"||p==="verifying"))try{let s={address:String(t.address),chainId:t.chainId,signMessage:t.signMessage,isConnected:t.isConnected},u=getSatelliteSiwxFields(s,{domain:l,uri:n,statement:d$1});if(p==="authenticated"&&N?.address===u.address||x.current===u.address)return;if(x.current=u.address,!r){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let y=f=>{let E=f instanceof Error?f.message:String(f);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",E);let h=t.address;t.connectorType&&h===t.address&&S(t.connectorType),c(),O?.(E);};T.current=!0,R({signer:t.signMessage,verifier:r,fields:u,onSuccess:L,onError:y}).catch(y).finally(()=>{T.current=!1;});}catch(s){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",s);}},[t?.isConnected,t?.address,t?.chainId,t?.signMessage,t?.connectorType,S,o,p,N?.address,r,l,n,d$1,R,c,O]),null}var $e=({labels:e,children:o})=>jsx(le,{labels:e,children:o}),_e=({customization:e})=>jsx(ie,{customization:e}),je=(e,o)=>deepMerge(e,o||{}),Je=e=>e,Qe=e=>e,Ye=(e,o,r)=>e;function Ze({labels:e,children:o,appChains:r,solanaRPCUrls:l,transactionPool:n,pulsarAdapter:d$1,withImpersonated:L,withBalance:O,withChain:t$1,popularConnectors:S,customConnectorGroups:R,legal:N,siwx:p,customization:c$1,pagination:x}){let T=d(te=>te.activeConnection),s=d(te=>te.connectionError),{LabelsProvider:u=$e,ErrorsProvider:y=_e}=c$1?.components??{},{merge:f=je,transform:E=Je}=c$1?.labels??{},{transform:h=Qe}=c$1?.contextValue??{},{providerTree:B=Ye}=c$1?.rendering??{},P=useMemo(()=>f(a,e||{}),[e,f]),[a$1,W]=useState(false),[A,$]=useState(false),[M,w]=useState(false),[k,D]=useState(false),[z,_]=useState("idle"),[H,me]=useState("connectors"),[j,i]=useState(void 0),[m,g]=useState(void 0),[U,J]=useState(""),[V,Q]=useState(false),[Y,Ne]=useState("main"),xe={appChains:r,solanaRPCUrls:l,withImpersonated:L,popularConnectors:S,customConnectorGroups:R,withBalance:O,withChain:t$1,isConnectModalOpen:a$1,setIsConnectModalOpen:W,isConnectedModalOpen:A,setIsConnectedModalOpen:$,isChainsListOpen:M,setIsChainsListOpen:w,isChainsListOpenMobile:k,setIsChainsListOpenMobile:D,connectedButtonStatus:z,setConnectedButtonStatus:_,connectedModalContentType:Y,setConnectedModalContentType:Ne,connectModalContentType:H,setConnectModalContentType:me,selectedAdapter:j,setSelectedAdapter:i,activeConnector:m,setActiveConnector:g,impersonatedAddress:U,setImpersonatedAddress:J,isConnected:V,setIsConnected:Q,legal:N},K=useMemo(()=>({isConnected:V,activeConnection:T,connectionError:s,modalStates:{isConnectModalOpen:a$1,isConnectedModalOpen:A,isChainsListOpen:M,isChainsListOpenMobile:k},contentTypes:{connectModal:H,connectedModal:Y},statuses:{connectedButton:z}}),[V,T,s,a$1,A,M,k,H,Y,z]),Me=useMemo(()=>E(P,K),[P,E,K]),Ce=h(xe,K),Z=jsx(y,{customization:c$1?.errors}),ee=jsx(u,{labels:Me,children:o}),oe=r||l?jsx(G,{solanaRPCUrls:l,appChains:r,customization:c$1?.modals?.connectModal}):null,re=r||l?jsx(t,{solanaRPCUrls:l,appChains:r,transactionPool:n,pulsarAdapter:d$1,customization:c$1?.modals?.connectedModal,pagination:x}):null,Le=jsxs(c.Provider,{value:Ce,children:[jsx(de,{...p}),Z,ee,oe,re]}),Oe=jsxs(c.Provider,{value:Ce,children:[jsx(de,{...p}),Z,ee,oe,re]}),Re=B(Oe,{ErrorsProvider:Z,LabelsProvider:ee,MainContent:Le,ConnectModal:oe||jsx(Fragment,{}),ConnectedModal:re||jsx(Fragment,{})},K);return jsx(Fragment,{children:Re})}Ze.displayName="NovaConnectProvider";async function kr(){let{getAllAdaptersStatus:e}=await import('./getChainsListByConnectorType-YZZUYC6D.js');return {hasEvmUtils:await q(),hasSolanaUtils:await X(),adaptersStatus:e()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function X(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function zr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let o=await import('./evm/index.js'),r=await o.getEvmExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"EVM utilities not available"}}}async function Ir(){try{if(!await X())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let o=await import('./solana/index.js'),r=await o.getSolanaExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"Solana utilities not available"}}}async function Wr(){let e={evm:false,solana:false,errors:[]};try{let o=await q(),r=await X();if(o||r){let{preloadChainAdapters:l}=await import('./getChainsListByConnectorType-YZZUYC6D.js'),n=[];o&&n.push(OrbitAdapter.EVM),r&&n.push(OrbitAdapter.SOLANA),await l(n),e.evm=o,e.solana=r;}else e.errors.push("No blockchain packages available for initialization");}catch(o){let r=o instanceof Error?o.message:"Unknown initialization error";e.errors.push(r);}return e}async function Hr(e){return e===OrbitAdapter.Starknet||e!==OrbitAdapter.EVM&&e!==OrbitAdapter.SOLANA?false:e===OrbitAdapter.EVM?q():X()}export{ie as ErrorsProvider,le as NovaConnectLabelsProvider,Ze as NovaConnectProvider,de as NovaSiwxWatcher,kr as getBlockchainUtilities,zr as getEvmUtils,Ir as getSolanaUtils,Wr as initializeBlockchainSupport,Hr as isAdapterSupported};
|
|
1
|
+
import {G,t,H}from'./chunk-3BQNG7PE.js';import {h,g,c}from'./chunk-NSVTTYJR.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,r as getAvailableChainIds,w as getAvailableSolanaClusters,q as getConnectChainId,u as getFilteredConnectors,s as getGroupedConnectors,n as getLabelWithFallback,t as hasAvailableConnectors,v as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,x as isValidSolanaCluster,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,p as useNovaSiwx,y as useWalletChainsList,z as useWalletNativeBalance}from'./chunk-NSVTTYJR.js';export{k as getAdapterStatus,l as getAllAdaptersStatus,g as getAvailableSolanaClustersAsync,b as getChainsListByConnectorType,a as getChainsListByConnectorTypeAsync,b as getChainsListByConnectorTypeSync,i as getWalletChains,e as isEvmChainList,c as isEvmChainListAsync,e as isEvmChainListSync,f as isSolanaChainList,d as isSolanaChainListAsync,f as isSolanaChainListSync,h as isValidSolanaClusterAsync,j as preloadChainAdapters}from'./chunk-S3IRVZMG.js';import {a}from'./chunk-NQ5AECZQ.js';import {d}from'./chunk-EYP534IS.js';import {OrbitAdapter}from'@tuwaio/orbit-core';import {ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {useRef,useCallback,useEffect,useMemo,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useSiwx,useSiwxSessionStore,getSatelliteSiwxFields}from'@tuwaio/siwx-react';var We=({title:e,rawError:o,onCopyComplete:r,errorType:c,isConnected:n,...d})=>jsx(H,{title:e,rawError:o,onCopyComplete:r,customization:d.customization}),ze=e=>{let o=h();return jsx(ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":o.somethingWentWrong})},Ie=(e,o)=>{e(o.title,o.rawError,o.errorKey);},He=e=>{e();},Ue=(e,o)=>{if(e&&process.env.NODE_ENV==="development"){let r=typeof o=="string"?o:o.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ve=e=>e,Fe=e=>e;function ie({containerId:e="nova-connect-errors",position:o="top-center",autoClose:r=7e3,draggable:c=false,customization:n}){let d$1=h(),x=d(l=>l.switchNetworkError),z=d(l=>l.activeConnection),M=d(l=>l.connectionError),{ToastError:t=We,Container:R=ze}=n?.components??{},{showError:L=Ie,dismissError:f=He,onCopyComplete:i=Ue}=n?.handlers??{},{errorTitle:h$1=Ve,errorHash:w=Fe}=n??{},u=useRef(new Set),s=useRef(null),E=!!M,g=!!x,p=!!z?.isConnected,T=E||g,S=M||x||null,P=E?"wallet":g?"switch":null,a={hasWalletError:E,hasSwitchError:g,isConnected:p,hasAnyError:T,primaryError:S,errorType:P},I=d$1.somethingWentWrong;switch(a.errorType){case "wallet":I=d$1.connectionError;break;case "switch":I=d$1.errorWhenChainSwitching;break}let B=h$1(I,{errorType:a.errorType}),$=a.primaryError?`${a.errorType}-${a.primaryError.message.substring(0,50)}`:null,O=w($,{primaryError:a.primaryError,errorType:a.errorType}),N=useCallback(()=>{f(()=>{s.current&&(toast.dismiss(s.current),s.current=null),toast.dismiss({containerId:e});});},[e,f]),A=useCallback((l,m)=>{i(l,m,P);},[i,P]),D=useCallback((l,m,y)=>{if(N(),!u.current.has(y))try{let U={containerId:e,toastId:y,onClose:()=>{u.current.delete(y),s.current=null;}},J=n?.toastOptions?.error?.({title:l,rawError:m,errorType:a.errorType,isConnected:a.isConnected}),V={...U,...J};toast.error(jsx(t,{title:l,rawError:m,errorType:a.errorType,isConnected:a.isConnected,onCopyComplete:Q=>A(Q,m),customization:n?.toastErrorCustomization}),V),u.current.add(y),s.current=y;}catch(U){console.error("Failed to show error toast:",U);}},[N,e,n?.toastOptions?.error,n?.toastErrorCustomization,t,a.errorType,a.isConnected,A]),k=useCallback((l,m,y)=>{L(D,{title:l,rawError:m,errorKey:y,errorType:P});},[D,L,P]);useEffect(()=>{if(p&&!T){N(),u.current.clear();return}if(T&&S&&O){if(p&&P!=="switch")return;k(B,S,O);}},[T,p,S,P,B,O,k,N]),useEffect(()=>()=>{N(),u.current.clear();},[N]);let _=n?.classNames?.container?n.classNames.container({hasErrors:a.hasAnyError,errorType:a.errorType}):"novacon:p-0 novacon:bg-transparent",H=useMemo(()=>{let l=n?.toastCloseButton;return l?({closeToast:m})=>jsx(ToastCloseButton,{closeToast:m,...l}):ToastCloseButton},[n?.toastCloseButton]),j={...{containerId:e,position:o,closeOnClick:false,icon:false,closeButton:H,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:c,pauseOnHover:true,theme:"light",transition:Bounce},...n?.containerProps,className:_};return jsx(R,{...j})}ie.displayName="ErrorsProvider";function le({labels:e,children:o}){let r=useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in e));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsx(g.Provider,{value:r,children:o})}le.displayName="NovaConnectLabelsProvider";function de(e){let{enabled:o=true,verifier:r,destroyer:c,domain:n,uri:d$1,statement:x,onSuccess:z,onError:M}=e,t=d(s=>s.activeConnection),R=d(s=>s.disconnect),{signIn:L}=useSiwx(),f=useSiwxSessionStore(s=>s.session),i=useSiwxSessionStore(s=>s.status),h=useSiwxSessionStore(s=>s.reset),w=useRef(null),u=useRef(false);return useEffect(()=>{(!t?.isConnected||!t?.address)&&(w.current=null,(i==="authenticated"||f)&&(h(),c&&c().catch(s=>{console.warn("[NovaSiwxWatcher] Failed to execute session destroyer:",s);})));},[t?.isConnected,t?.address,i,f,h,c]),useEffect(()=>{if(!(!o||!t?.isConnected||!t?.address||!t?.chainId)&&t.signMessage&&!u.current&&!(i==="building"||i==="signing"||i==="verifying"))try{let s={address:String(t.address),chainId:t.chainId,signMessage:t.signMessage,isConnected:t.isConnected},E=getSatelliteSiwxFields(s,{domain:n,uri:d$1,statement:x});if(i==="authenticated"&&f?.address===E.address||w.current===E.address)return;if(w.current=E.address,!r){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let g=p=>{let T=p instanceof Error?p.message:String(p);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",T);let S=t.address;t.connectorType&&S===t.address&&R(t.connectorType),h(),M?.(T);};u.current=!0,L({signer:t.signMessage,verifier:r,fields:E,onSuccess:z,onError:g}).catch(g).finally(()=>{u.current=!1;});}catch(s){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",s);}},[t?.isConnected,t?.address,t?.chainId,t?.signMessage,t?.connectorType,R,o,i,f?.address,r,n,d$1,x,L,h,M]),null}var $e=({labels:e,children:o})=>jsx(le,{labels:e,children:o}),_e=({customization:e})=>jsx(ie,{customization:e}),je=(e,o)=>deepMerge(e,o||{}),Je=e=>e,Qe=e=>e,Ye=(e,o,r)=>e;function Ze({labels:e,children:o,appChains:r,solanaRPCUrls:c$1,transactionPool:n,pulsarAdapter:d$1,withImpersonated:x,withBalance:z,withChain:M,popularConnectors:t$1,customConnectorGroups:R,legal:L,siwx:f,customization:i,pagination:h}){let w=d(te=>te.activeConnection),u=d(te=>te.connectionError),{LabelsProvider:s=$e,ErrorsProvider:E=_e}=i?.components??{},{merge:g=je,transform:p=Je}=i?.labels??{},{transform:T=Qe}=i?.contextValue??{},{providerTree:S=Ye}=i?.rendering??{},P=useMemo(()=>g(a,e||{}),[e,g]),[a$1,I]=useState(false),[B,$]=useState(false),[O,N]=useState(false),[A,D]=useState(false),[k,_]=useState("idle"),[H,me]=useState("connectors"),[j,l]=useState(void 0),[m,y]=useState(void 0),[U,J]=useState(""),[V,Q]=useState(false),[Y,Ne]=useState("main"),xe={appChains:r,solanaRPCUrls:c$1,withImpersonated:x,popularConnectors:t$1,customConnectorGroups:R,withBalance:z,withChain:M,isConnectModalOpen:a$1,setIsConnectModalOpen:I,isConnectedModalOpen:B,setIsConnectedModalOpen:$,isChainsListOpen:O,setIsChainsListOpen:N,isChainsListOpenMobile:A,setIsChainsListOpenMobile:D,connectedButtonStatus:k,setConnectedButtonStatus:_,connectedModalContentType:Y,setConnectedModalContentType:Ne,connectModalContentType:H,setConnectModalContentType:me,selectedAdapter:j,setSelectedAdapter:l,activeConnector:m,setActiveConnector:y,impersonatedAddress:U,setImpersonatedAddress:J,isConnected:V,setIsConnected:Q,legal:L},K=useMemo(()=>({isConnected:V,activeConnection:w,connectionError:u,modalStates:{isConnectModalOpen:a$1,isConnectedModalOpen:B,isChainsListOpen:O,isChainsListOpenMobile:A},contentTypes:{connectModal:H,connectedModal:Y},statuses:{connectedButton:k}}),[V,w,u,a$1,B,O,A,H,Y,k]),Me=useMemo(()=>p(P,K),[P,p,K]),Ce=T(xe,K),Z=jsx(E,{customization:i?.errors}),ee=jsx(s,{labels:Me,children:o}),oe=r||c$1?jsx(G,{solanaRPCUrls:c$1,appChains:r,customization:i?.modals?.connectModal}):null,re=r||c$1?jsx(t,{solanaRPCUrls:c$1,appChains:r,transactionPool:n,pulsarAdapter:d$1,customization:i?.modals?.connectedModal,pagination:h}):null,Le=jsxs(c.Provider,{value:Ce,children:[jsx(de,{...f}),Z,ee,oe,re]}),Oe=jsxs(c.Provider,{value:Ce,children:[jsx(de,{...f}),Z,ee,oe,re]}),Re=S(Oe,{ErrorsProvider:Z,LabelsProvider:ee,MainContent:Le,ConnectModal:oe||jsx(Fragment,{}),ConnectedModal:re||jsx(Fragment,{})},K);return jsx(Fragment,{children:Re})}Ze.displayName="NovaConnectProvider";async function kr(){let{getAllAdaptersStatus:e}=await import('./getChainsListByConnectorType-YZZUYC6D.js');return {hasEvmUtils:await q(),hasSolanaUtils:await X(),adaptersStatus:e()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function X(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Wr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let o=await import('./evm/index.js'),r=await o.getEvmExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"EVM utilities not available"}}}async function zr(){try{if(!await X())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let o=await import('./solana/index.js'),r=await o.getSolanaExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"Solana utilities not available"}}}async function Ir(){let e={evm:false,solana:false,errors:[]};try{let o=await q(),r=await X();if(o||r){let{preloadChainAdapters:c}=await import('./getChainsListByConnectorType-YZZUYC6D.js'),n=[];o&&n.push(OrbitAdapter.EVM),r&&n.push(OrbitAdapter.SOLANA),await c(n),e.evm=o,e.solana=r;}else e.errors.push("No blockchain packages available for initialization");}catch(o){let r=o instanceof Error?o.message:"Unknown initialization error";e.errors.push(r);}return e}async function Hr(e){return e===OrbitAdapter.Starknet||e!==OrbitAdapter.EVM&&e!==OrbitAdapter.SOLANA?false:e===OrbitAdapter.EVM?q():X()}export{ie as ErrorsProvider,le as NovaConnectLabelsProvider,Ze as NovaConnectProvider,de as NovaSiwxWatcher,kr as getBlockchainUtilities,Wr as getEvmUtils,zr as getSolanaUtils,Ir as initializeBlockchainSupport,Hr as isAdapterSupported};
|
package/dist/{useWalletNativeBalance-B64PI3UW.d.cts → useWalletNativeBalance-BIz0-C3s.d.cts}
RENAMED
|
@@ -385,6 +385,11 @@ interface NovaSiwxWatcherProps extends SatelliteSiwxFieldOptions {
|
|
|
385
385
|
enabled?: boolean;
|
|
386
386
|
/** Optional backend verification callback function */
|
|
387
387
|
verifier?: UseSiwxSignInOptions['verifier'];
|
|
388
|
+
/**
|
|
389
|
+
* Optional callback triggered when the wallet disconnects or when `signOut` is called.
|
|
390
|
+
* Useful for hitting a `/logout` endpoint to clear the backend cookie.
|
|
391
|
+
*/
|
|
392
|
+
destroyer?: () => Promise<void>;
|
|
388
393
|
/** Optional callback triggered immediately after successful SIWX authentication */
|
|
389
394
|
onSuccess?: UseSiwxSignInOptions['onSuccess'];
|
|
390
395
|
/** Optional callback triggered if SIWX signing or verification fails */
|
|
@@ -385,6 +385,11 @@ interface NovaSiwxWatcherProps extends SatelliteSiwxFieldOptions {
|
|
|
385
385
|
enabled?: boolean;
|
|
386
386
|
/** Optional backend verification callback function */
|
|
387
387
|
verifier?: UseSiwxSignInOptions['verifier'];
|
|
388
|
+
/**
|
|
389
|
+
* Optional callback triggered when the wallet disconnects or when `signOut` is called.
|
|
390
|
+
* Useful for hitting a `/logout` endpoint to clear the backend cookie.
|
|
391
|
+
*/
|
|
392
|
+
destroyer?: () => Promise<void>;
|
|
388
393
|
/** Optional callback triggered immediately after successful SIWX authentication */
|
|
389
394
|
onSuccess?: UseSiwxSignInOptions['onSuccess'];
|
|
390
395
|
/** Optional callback triggered if SIWX signing or verification fails */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-connect",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"@tuwaio/orbit-solana": "^0.2.13",
|
|
95
95
|
"@tuwaio/satellite-core": "^0.4.1",
|
|
96
96
|
"@tuwaio/satellite-evm": "^0.4.2",
|
|
97
|
-
"@tuwaio/satellite-solana": "^0.4.
|
|
97
|
+
"@tuwaio/satellite-solana": "^0.4.6",
|
|
98
98
|
"@tuwaio/satellite-react": "^0.4.6",
|
|
99
99
|
"@tuwaio/siwx-react": "^0.1.0",
|
|
100
100
|
"@tuwaio/pulsar-core": "^0.6.11",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"@tuwaio/satellite-react": "^0.4.6",
|
|
212
212
|
"@tuwaio/satellite-core": "^0.4.1",
|
|
213
213
|
"@tuwaio/satellite-evm": "^0.4.2",
|
|
214
|
-
"@tuwaio/satellite-solana": "^0.4.
|
|
214
|
+
"@tuwaio/satellite-solana": "^0.4.6",
|
|
215
215
|
"@tuwaio/siwx-react": "^0.1.1",
|
|
216
216
|
"@tuwaio/pulsar-core": "^0.6.12",
|
|
217
217
|
"@wallet-standard/react": "^1.0.3",
|
|
@@ -241,8 +241,8 @@
|
|
|
241
241
|
"tw-animate-css": "^1.4.0",
|
|
242
242
|
"typescript": "^6.0.3",
|
|
243
243
|
"tsup": "^8.5.1",
|
|
244
|
-
"@tuwaio/nova-
|
|
245
|
-
"@tuwaio/nova-
|
|
244
|
+
"@tuwaio/nova-core": "^0.5.0",
|
|
245
|
+
"@tuwaio/nova-transactions": "^0.5.2"
|
|
246
246
|
},
|
|
247
247
|
"scripts": {
|
|
248
248
|
"start": "tsup src/index.ts --watch",
|
package/dist/chunk-BOOFGSLL.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {a as a$1,i}from'./chunk-S3IRVZMG.js';import {a}from'./chunk-NQ5AECZQ.js';import {d}from'./chunk-EYP534IS.js';import {textCenterEllipsis}from'@tuwaio/nova-core';import {OrbitAdapter,getAdapterFromConnectorType,formatConnectorName}from'@tuwaio/orbit-core';import {createContext,useState,useRef,useCallback,useEffect,useContext}from'react';import {useSiwx,getSatelliteSiwxFields}from'@tuwaio/siwx-react';function be(e){let{abbreviateSymbols:t=12,maxNameLength:o=30,autoRetry:n=false,retryDelay:s=3e3}=e,a=d(L=>L.activeConnection),c=d(L=>L.getAdapter),r=a?.address,l=a?.connectorType,i=l?c(getAdapterFromConnectorType(l)):null,[u,f]=useState(null),[D,p]=useState(null),[y,C]=useState(false),[x,g]=useState(null),N=useRef(null),O=useRef(null),G=!!(i&&"getName"in i&&typeof i.getName=="function"),F=!!(i&&"getAvatar"in i&&typeof i.getAvatar=="function"),h=useCallback(()=>{N.current&&(N.current.abort(),N.current=null),O.current!==null&&(clearTimeout(O.current),O.current=null);},[]),w=useCallback(async function L(){if(h(),!r||!i||!G){f(null),p(null),C(false),g(null);return}N.current=new AbortController;let{signal:A}=N.current;C(true),g(null),f(null),p(null);try{if(A.aborted)return;let v=await i.getName?.(r);if(A.aborted)return;if(v&&(f(v),F))try{let S=await i.getAvatar?.(v);A.aborted||p(S??null);}catch(S){console.warn("Failed to fetch avatar:",S),A.aborted||p(null);}}catch(v){if(A.aborted)return;let S=v instanceof Error?v.message:"Failed to fetch name service data";console.error("Failed to fetch name service data:",v),g(S),f(null),p(null),n&&(O.current=setTimeout(()=>{L();},s));}finally{A.aborted||C(false);}},[r,i,G,F,n,s,h]),J=useCallback(()=>{g(null),w();},[w]);useEffect(()=>(w(),h),[w,h]),useEffect(()=>h,[h]);let Q=u?u.length>o?textCenterEllipsis(u,t,t):u:r?textCenterEllipsis(r,t,t):void 0;return {ensName:u,ensAvatar:D,isLoading:y,ensNameAbbreviated:Q,error:x,retry:J}}var M=class extends Error{constructor(t="useNovaConnect must be used within NovaConnectProvider"){super(t),this.name="NovaConnectProviderError";}},W=createContext(void 0),ye=()=>{let e=useContext(W);if(!e)throw new M;return e},he=()=>useContext(W)!==void 0,Ae=()=>useContext(W)??null;var ne=createContext(a),R=()=>useContext(ne),Oe=e=>R()[e],we=e=>{let t=R(),o={};for(let n of e)o[n]=t[n];return o},Te=(e,t)=>!!e[t]?.trim(),ke=e=>{let t=R(),n={actions:["connectWallet","disconnect","connecting","connected","tryAgain","back","connect","close"],states:["success","error","replaced","loading","idle"],accessibility:["chainSelector","closeModal","selectChain","walletControls","openWalletModal"],transactions:["transactionLoading","transactionSuccess","transactionError","transactionReplaced","recent"]}[e],s={};for(let a of n)s[a]=t[a];return s},Ee=e=>e===a,Ie=(e,t,o)=>{let n=e[t];return n&&n.trim()?n:o||a[t]||t.toString()},Be=(e,t)=>{let o={};for(let n of t)o[n]=e[n];return o};function Ve(e){let t=d(a=>a.activeConnection),{signIn:o,signOut:n}=useSiwx();return {signIn:useCallback(async(a,c)=>{let r=a??t;if(!r?.address||!r?.chainId)throw new Error("[useNovaSiwx] No active connection available.");if(!r.signMessage)throw new Error("[useNovaSiwx] Connection missing signMessage capability.");let l=c??e?.verifier;if(!l)throw new Error("[useNovaSiwx] Verifier callback required to complete SIWX sign in.");let i={address:String(r.address),chainId:r.chainId,signMessage:r.signMessage,isConnected:r.isConnected},u=getSatelliteSiwxFields(i,e);return o({signer:r.signMessage,verifier:l,fields:u})},[t,o,e]),signOut:n}}var b={[OrbitAdapter.EVM]:1,[OrbitAdapter.SOLANA]:"mainnet",[OrbitAdapter.Starknet]:"0x534e5f4d41494e"};function Fe({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case OrbitAdapter.EVM:{let n=t?.[0];return n?.id&&typeof n.id=="number"?n.id:(process.env.NODE_ENV==="development"&&!t?.length&&console.warn("getConnectChainId: No EVM chains configured, using Ethereum Mainnet"),b[OrbitAdapter.EVM])}case OrbitAdapter.SOLANA:{if(o&&typeof o=="object"){let n=Object.keys(o);if(n.length>0)return n[0]}return process.env.NODE_ENV==="development"&&!o&&console.warn("getConnectChainId: No Solana RPC URLs configured, using mainnet"),b[OrbitAdapter.SOLANA]}case OrbitAdapter.Starknet:return process.env.NODE_ENV==="development"&&console.info("getConnectChainId: Using default Starknet chain ID"),b[OrbitAdapter.Starknet];default:return process.env.NODE_ENV==="development"&&console.error("getConnectChainId: Unknown adapter:",e),b[OrbitAdapter.EVM]}}function Ke({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case OrbitAdapter.EVM:return t?.map(n=>n.id).filter(Boolean)??[b[OrbitAdapter.EVM]];case OrbitAdapter.SOLANA:return o?Object.keys(o):[b[OrbitAdapter.SOLANA]];case OrbitAdapter.Starknet:return [b[OrbitAdapter.Starknet]];default:return [b[OrbitAdapter.EVM]]}}function se(e,t){if(!e||typeof e!="object")return null;let o=e;if(!o.name||typeof o.name!="string")return null;let n;if("icon"in o){let s=o.icon;if(typeof s=="string")n=s;else if(s&&typeof s=="object"&&"toString"in s&&typeof s.toString=="function")try{n=s.toString();}catch{}}return {name:o.name,icon:n,adapter:t,originalConnector:o}}function _({connectors:e,excludeConnectors:t=["injected"]}={connectors:{}}){if(!e||Object.keys(e).length===0)return [];let o=new Set(t.map(a=>formatConnectorName(a))),n=[];Object.entries(e).forEach(([a,c])=>{if(Array.isArray(c)){let r=a;c.forEach(l=>{let i=se(l,r);if(i){let u=formatConnectorName(i.name);o.has(u)||n.push(i);}});}});let s=new Map;return n.forEach(a=>{let c=formatConnectorName(a.name);s.has(c)||s.set(c,{name:a.name,icon:a.icon,adapters:[],connectors:[]});let r=s.get(c);r.adapters.includes(a.adapter)||r.adapters.push(a.adapter);let l=Object.assign({},a.originalConnector,{adapter:a.adapter});r.connectors.push(l),!r.icon&&a.icon&&(r.icon=a.icon);}),Array.from(s.values()).sort((a,c)=>a.name.localeCompare(c.name,void 0,{sensitivity:"base"}))}function $e(e){return Object.values(e).some(t=>Array.isArray(t)&&t.length>0)}function ie(e){try{if(e&&typeof e=="object"&&e.adapter)return e.adapter}catch{}}function $(e,t){return ie(e)===t}function ze({connectors:e,selectedAdapter:t}){if(!e||Object.keys(e).length===0)return [];let o=_({connectors:e});return t?o.filter(n=>n.adapters.includes(t)&&n.connectors.some(s=>$(s,t))).map(n=>{let s=n.connectors.filter(a=>$(a,t));return {...n,adapters:[t],connectors:s}}).filter(n=>n.connectors.length>0):o}function Je(e,t){let o=e[t];return Array.isArray(o)&&o.length>0}function ct(){return console.warn("getAvailableSolanaClusters: Using synchronous fallback with limited functionality. Use getAvailableSolanaClustersAsync for complete cluster detection."),[]}function lt(e){return console.warn("isValidSolanaCluster: Using synchronous fallback with basic validation. Use isValidSolanaClusterAsync for comprehensive cluster validation."),["mainnet","devnet","testnet","localnet"].includes(e)}function xt({activeConnection:e,appChains:t,solanaRPCUrls:o}){let[n,s]=useState([]),[a,c]=useState(false);return useEffect(()=>{let r=true;return (async()=>{c(true);try{if(!e){let f=await a$1({connectorType:`${OrbitAdapter.EVM}:not-connected`,appChains:t,solanaRPCUrls:o,chains:[]});r&&s(f);return}let i$1=i(e),u=await a$1({connectorType:e.connectorType,appChains:t,solanaRPCUrls:o,chains:i$1});r&&s(u);}catch(i){console.error("Failed to fetch chains list:",i),r&&s([]);}finally{r&&c(false);}})(),()=>{r=false;}},[e,t,o]),{chainsList:n,isLoading:a}}function wt(){let[e,t]=useState({}),[o,n]=useState(false),s=useRef(null),a=d(p=>p.activeConnection),c=d(p=>p.getAdapter),r=a?.chainId&&a?.address?`${a.address}-${a.chainId}`:null,l=a?.connectorType?c(getAdapterFromConnectorType(a.connectorType)):null,i=l&&"getBalance"in l&&typeof l.getBalance=="function",u=useCallback(async(p=false)=>{if(!a?.address||!l||!a?.chainId||!r||!i){n(false);return}let y=`${r}-${Date.now()}`;if(s.current=y,!p&&e[r]){n(false);return}n(true);try{let C=await l.getBalance(a.address,a.chainId);s.current===y&&t(x=>({...x,[r]:C}));}catch(C){console.error(`Failed to fetch native balance for ${r}:`,C),p&&s.current===y&&t(x=>{let g={...x};return delete g[r],g});}finally{s.current===y&&n(false);}},[a,l,r,i,e]),f=useCallback(()=>{u(true);},[u]);return useEffect(()=>{r&&i&&!e[r]?u(false):(!r||!i)&&n(false);},[r,i,e,u]),useEffect(()=>()=>{s.current=null;},[]),{balance:r&&e[r]||null,isLoading:o,refetch:f}}export{be as a,M as b,W as c,ye as d,he as e,Ae as f,ne as g,R as h,Oe as i,we as j,Te as k,ke as l,Ee as m,Ie as n,Be as o,Ve as p,Fe as q,Ke as r,_ as s,$e as t,ze as u,Je as v,ct as w,lt as x,xt as y,wt as z};
|
package/dist/chunk-NIHARC32.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunkV6XDFRWV_cjs=require('./chunk-V6XDFRWV.cjs'),novaCore=require('@tuwaio/nova-core'),orbitCore=require('@tuwaio/orbit-core'),react=require('react'),siwxReact=require('@tuwaio/siwx-react');function be(e){let{abbreviateSymbols:t=12,maxNameLength:o=30,autoRetry:n=false,retryDelay:s=3e3}=e,a=chunkV6XDFRWV_cjs.d(L=>L.activeConnection),c=chunkV6XDFRWV_cjs.d(L=>L.getAdapter),r=a?.address,l=a?.connectorType,i=l?c(orbitCore.getAdapterFromConnectorType(l)):null,[u,f]=react.useState(null),[D,p]=react.useState(null),[y,C]=react.useState(false),[x,g]=react.useState(null),N=react.useRef(null),O=react.useRef(null),G=!!(i&&"getName"in i&&typeof i.getName=="function"),F=!!(i&&"getAvatar"in i&&typeof i.getAvatar=="function"),h=react.useCallback(()=>{N.current&&(N.current.abort(),N.current=null),O.current!==null&&(clearTimeout(O.current),O.current=null);},[]),w=react.useCallback(async function L(){if(h(),!r||!i||!G){f(null),p(null),C(false),g(null);return}N.current=new AbortController;let{signal:A}=N.current;C(true),g(null),f(null),p(null);try{if(A.aborted)return;let v=await i.getName?.(r);if(A.aborted)return;if(v&&(f(v),F))try{let S=await i.getAvatar?.(v);A.aborted||p(S??null);}catch(S){console.warn("Failed to fetch avatar:",S),A.aborted||p(null);}}catch(v){if(A.aborted)return;let S=v instanceof Error?v.message:"Failed to fetch name service data";console.error("Failed to fetch name service data:",v),g(S),f(null),p(null),n&&(O.current=setTimeout(()=>{L();},s));}finally{A.aborted||C(false);}},[r,i,G,F,n,s,h]),J=react.useCallback(()=>{g(null),w();},[w]);react.useEffect(()=>(w(),h),[w,h]),react.useEffect(()=>h,[h]);let Q=u?u.length>o?novaCore.textCenterEllipsis(u,t,t):u:r?novaCore.textCenterEllipsis(r,t,t):void 0;return {ensName:u,ensAvatar:D,isLoading:y,ensNameAbbreviated:Q,error:x,retry:J}}var M=class extends Error{constructor(t="useNovaConnect must be used within NovaConnectProvider"){super(t),this.name="NovaConnectProviderError";}},W=react.createContext(void 0),ye=()=>{let e=react.useContext(W);if(!e)throw new M;return e},he=()=>react.useContext(W)!==void 0,Ae=()=>react.useContext(W)??null;var ne=react.createContext(chunkMGBN4EIT_cjs.a),R=()=>react.useContext(ne),Oe=e=>R()[e],we=e=>{let t=R(),o={};for(let n of e)o[n]=t[n];return o},Te=(e,t)=>!!e[t]?.trim(),ke=e=>{let t=R(),n={actions:["connectWallet","disconnect","connecting","connected","tryAgain","back","connect","close"],states:["success","error","replaced","loading","idle"],accessibility:["chainSelector","closeModal","selectChain","walletControls","openWalletModal"],transactions:["transactionLoading","transactionSuccess","transactionError","transactionReplaced","recent"]}[e],s={};for(let a of n)s[a]=t[a];return s},Ee=e=>e===chunkMGBN4EIT_cjs.a,Ie=(e,t,o)=>{let n=e[t];return n&&n.trim()?n:o||chunkMGBN4EIT_cjs.a[t]||t.toString()},Be=(e,t)=>{let o={};for(let n of t)o[n]=e[n];return o};function Ve(e){let t=chunkV6XDFRWV_cjs.d(a=>a.activeConnection),{signIn:o,signOut:n}=siwxReact.useSiwx();return {signIn:react.useCallback(async(a,c)=>{let r=a??t;if(!r?.address||!r?.chainId)throw new Error("[useNovaSiwx] No active connection available.");if(!r.signMessage)throw new Error("[useNovaSiwx] Connection missing signMessage capability.");let l=c??e?.verifier;if(!l)throw new Error("[useNovaSiwx] Verifier callback required to complete SIWX sign in.");let i={address:String(r.address),chainId:r.chainId,signMessage:r.signMessage,isConnected:r.isConnected},u=siwxReact.getSatelliteSiwxFields(i,e);return o({signer:r.signMessage,verifier:l,fields:u})},[t,o,e]),signOut:n}}var b={[orbitCore.OrbitAdapter.EVM]:1,[orbitCore.OrbitAdapter.SOLANA]:"mainnet",[orbitCore.OrbitAdapter.Starknet]:"0x534e5f4d41494e"};function Fe({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case orbitCore.OrbitAdapter.EVM:{let n=t?.[0];return n?.id&&typeof n.id=="number"?n.id:(process.env.NODE_ENV==="development"&&!t?.length&&console.warn("getConnectChainId: No EVM chains configured, using Ethereum Mainnet"),b[orbitCore.OrbitAdapter.EVM])}case orbitCore.OrbitAdapter.SOLANA:{if(o&&typeof o=="object"){let n=Object.keys(o);if(n.length>0)return n[0]}return process.env.NODE_ENV==="development"&&!o&&console.warn("getConnectChainId: No Solana RPC URLs configured, using mainnet"),b[orbitCore.OrbitAdapter.SOLANA]}case orbitCore.OrbitAdapter.Starknet:return process.env.NODE_ENV==="development"&&console.info("getConnectChainId: Using default Starknet chain ID"),b[orbitCore.OrbitAdapter.Starknet];default:return process.env.NODE_ENV==="development"&&console.error("getConnectChainId: Unknown adapter:",e),b[orbitCore.OrbitAdapter.EVM]}}function Ke({selectedAdapter:e,appChains:t,solanaRPCUrls:o}){switch(e){case orbitCore.OrbitAdapter.EVM:return t?.map(n=>n.id).filter(Boolean)??[b[orbitCore.OrbitAdapter.EVM]];case orbitCore.OrbitAdapter.SOLANA:return o?Object.keys(o):[b[orbitCore.OrbitAdapter.SOLANA]];case orbitCore.OrbitAdapter.Starknet:return [b[orbitCore.OrbitAdapter.Starknet]];default:return [b[orbitCore.OrbitAdapter.EVM]]}}function se(e,t){if(!e||typeof e!="object")return null;let o=e;if(!o.name||typeof o.name!="string")return null;let n;if("icon"in o){let s=o.icon;if(typeof s=="string")n=s;else if(s&&typeof s=="object"&&"toString"in s&&typeof s.toString=="function")try{n=s.toString();}catch{}}return {name:o.name,icon:n,adapter:t,originalConnector:o}}function _({connectors:e,excludeConnectors:t=["injected"]}={connectors:{}}){if(!e||Object.keys(e).length===0)return [];let o=new Set(t.map(a=>orbitCore.formatConnectorName(a))),n=[];Object.entries(e).forEach(([a,c])=>{if(Array.isArray(c)){let r=a;c.forEach(l=>{let i=se(l,r);if(i){let u=orbitCore.formatConnectorName(i.name);o.has(u)||n.push(i);}});}});let s=new Map;return n.forEach(a=>{let c=orbitCore.formatConnectorName(a.name);s.has(c)||s.set(c,{name:a.name,icon:a.icon,adapters:[],connectors:[]});let r=s.get(c);r.adapters.includes(a.adapter)||r.adapters.push(a.adapter);let l=Object.assign({},a.originalConnector,{adapter:a.adapter});r.connectors.push(l),!r.icon&&a.icon&&(r.icon=a.icon);}),Array.from(s.values()).sort((a,c)=>a.name.localeCompare(c.name,void 0,{sensitivity:"base"}))}function $e(e){return Object.values(e).some(t=>Array.isArray(t)&&t.length>0)}function ie(e){try{if(e&&typeof e=="object"&&e.adapter)return e.adapter}catch{}}function $(e,t){return ie(e)===t}function ze({connectors:e,selectedAdapter:t}){if(!e||Object.keys(e).length===0)return [];let o=_({connectors:e});return t?o.filter(n=>n.adapters.includes(t)&&n.connectors.some(s=>$(s,t))).map(n=>{let s=n.connectors.filter(a=>$(a,t));return {...n,adapters:[t],connectors:s}}).filter(n=>n.connectors.length>0):o}function Je(e,t){let o=e[t];return Array.isArray(o)&&o.length>0}function ct(){return console.warn("getAvailableSolanaClusters: Using synchronous fallback with limited functionality. Use getAvailableSolanaClustersAsync for complete cluster detection."),[]}function lt(e){return console.warn("isValidSolanaCluster: Using synchronous fallback with basic validation. Use isValidSolanaClusterAsync for comprehensive cluster validation."),["mainnet","devnet","testnet","localnet"].includes(e)}function xt({activeConnection:e,appChains:t,solanaRPCUrls:o}){let[n,s]=react.useState([]),[a,c]=react.useState(false);return react.useEffect(()=>{let r=true;return (async()=>{c(true);try{if(!e){let f=await chunkK44IHM6B_cjs.a({connectorType:`${orbitCore.OrbitAdapter.EVM}:not-connected`,appChains:t,solanaRPCUrls:o,chains:[]});r&&s(f);return}let i=chunkK44IHM6B_cjs.i(e),u=await chunkK44IHM6B_cjs.a({connectorType:e.connectorType,appChains:t,solanaRPCUrls:o,chains:i});r&&s(u);}catch(i){console.error("Failed to fetch chains list:",i),r&&s([]);}finally{r&&c(false);}})(),()=>{r=false;}},[e,t,o]),{chainsList:n,isLoading:a}}function wt(){let[e,t]=react.useState({}),[o,n]=react.useState(false),s=react.useRef(null),a=chunkV6XDFRWV_cjs.d(p=>p.activeConnection),c=chunkV6XDFRWV_cjs.d(p=>p.getAdapter),r=a?.chainId&&a?.address?`${a.address}-${a.chainId}`:null,l=a?.connectorType?c(orbitCore.getAdapterFromConnectorType(a.connectorType)):null,i=l&&"getBalance"in l&&typeof l.getBalance=="function",u=react.useCallback(async(p=false)=>{if(!a?.address||!l||!a?.chainId||!r||!i){n(false);return}let y=`${r}-${Date.now()}`;if(s.current=y,!p&&e[r]){n(false);return}n(true);try{let C=await l.getBalance(a.address,a.chainId);s.current===y&&t(x=>({...x,[r]:C}));}catch(C){console.error(`Failed to fetch native balance for ${r}:`,C),p&&s.current===y&&t(x=>{let g={...x};return delete g[r],g});}finally{s.current===y&&n(false);}},[a,l,r,i,e]),f=react.useCallback(()=>{u(true);},[u]);return react.useEffect(()=>{r&&i&&!e[r]?u(false):(!r||!i)&&n(false);},[r,i,e,u]),react.useEffect(()=>()=>{s.current=null;},[]),{balance:r&&e[r]||null,isLoading:o,refetch:f}}exports.a=be;exports.b=M;exports.c=W;exports.d=ye;exports.e=he;exports.f=Ae;exports.g=ne;exports.h=R;exports.i=Oe;exports.j=we;exports.k=Te;exports.l=ke;exports.m=Ee;exports.n=Ie;exports.o=Be;exports.p=Ve;exports.q=Fe;exports.r=Ke;exports.s=_;exports.t=$e;exports.u=ze;exports.v=Je;exports.w=ct;exports.x=lt;exports.y=xt;exports.z=wt;
|