@tuwaio/orbit-solana 0.2.4 → 0.2.6
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/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var gill=require('gill'),orbitCore=require('@tuwaio/orbit-core'),app=require('@wallet-standard/app'),uiRegistry=require('@wallet-standard/ui-registry');var o={mainnet:"https://api.mainnet-beta.solana.com",devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com"};function d(t){let e=t.split(":");if(e.length<2)return null;let r=e[1];r==="mainnet-beta"&&(r="mainnet");let n=r;return n in o?n:null}function S(t,e){let r={},n=Object.keys(e||o);for(let a of t){if(typeof a!="string")continue;let s=d(a);if(!s||!n.includes(s))continue;let f=e?.[s]??o[s];f&&(r[s]=f);}return r}function F(t,e){if(e&&e.length>0){let r=S(e,t);return Object.keys(r)}return Object.keys(t||o)}function
|
|
2
|
-
exports.clearSolanaAvatarCache=ut;exports.clearSolanaNameCache=dt;exports.createSolanaClientWithCache=Z;exports.createSolanaRPC=tt;exports.defaultRpcUrlsByMoniker=o;exports.getAvailableSolanaClusters=B;exports.getAvailableSolanaConnectors=g;exports.getCluster=m;exports.getConnectedSolanaConnector=lt;exports.getRpcUrlForCluster=
|
|
1
|
+
'use strict';var gill=require('gill'),orbitCore=require('@tuwaio/orbit-core'),app=require('@wallet-standard/app'),uiRegistry=require('@wallet-standard/ui-registry');var o={mainnet:"https://api.mainnet-beta.solana.com",devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com"};function d(t){let e=t.split(":");if(e.length<2)return null;let r=e[1];r==="mainnet-beta"&&(r="mainnet");let n=r;return n in o?n:null}function S(t,e){let r={},n=Object.keys(e||o);for(let a of t){if(typeof a!="string")continue;let s=d(a);if(!s||!n.includes(s))continue;let f=e?.[s]??o[s];f&&(r[s]=f);}return r}function F(t,e){if(e&&e.length>0){let r=S(e,t);return Object.keys(r)}return Object.keys(t||o)}function j(t){return t.length>0&&t.every(e=>typeof e=="string")}function B(){return Object.keys(o)}function T(t){return t in o}var m=({cluster:t,walletCluster:e})=>{let r="mainnet";return t?t.includes(":")?t.split(":")[1]:t:e??r},_=({cluster:t,walletCluster:e,rpcUrls:r})=>r[e??t]??"https://api.mainnet-beta.solana.com/";function h(t){try{return new URL(t),!0}catch{return false}}var u=new Map,Z=({rpcUrlOrMoniker:t,rpcUrls:e})=>{if(u.has(t))return u.get(t);let r=h(t)?t:e?e[t]??o[t]:o[t];if(!r)throw new Error(`Unable to resolve RPC URL for input: "${t}". Ensure it's a valid URL or known moniker.`);let n=gill.createSolanaClient({urlOrMoniker:r});return u.set(t,n),n};function A(t){try{return new URL(t),!0}catch{return false}}var p=new Map,tt=({rpcUrlOrMoniker:t,rpcUrls:e})=>{if(p.has(t))return p.get(t);let r=A(t)?t:e?e[t]??o[t]:o[t];if(!r)throw new Error(`Unable to resolve RPC URL for input: "${t}". Ensure it's a valid URL or known moniker.`);let n=gill.createSolanaRpc(r);return p.set(t,n),n};function g(){return orbitCore.filterUniqueByKey(app.getWallets().get().map(uiRegistry.getOrCreateUiWalletForStandardWallet),"name").filter(t=>{try{return !t||!Array.isArray(t.chains)||!t.features||!Array.isArray(t.features)||!["standard:connect","standard:disconnect","standard:events","solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"].every(n=>t.features.includes(n))?!1:t.chains.every(n=>{try{if(typeof n!="string")return !1;let a=n.split(":");return a.length>=1&&a[0]==="solana"}catch(a){return console.warn("Error parsing chain:",n,a),!1}})}catch(e){return console.warn("Error filtering wallet:",e),false}})}function lt(){let t=orbitCore.lastConnectedConnectorHelpers.getLastConnectedConnector(),r=g().find(n=>n.accounts.find(a=>a.address.toLowerCase()===t?.address?.toLowerCase()));if(!r)throw new Error("Connector not provided. Cannot perform chain check.");return r}var l=new Map,b="https://image-api.bonfida.com",k=t=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t),P=t=>/^[a-z0-9-]+\.sol$/.test(t.toLowerCase()),U=async t=>{try{let e=await fetch(`${b}/image?domain=${encodeURIComponent(t)}`);if(!e.ok)return null;let r=await e.json();return r.result&&Array.isArray(r.result)&&r.result.length>0?r.result.find(a=>a.domain===t)?.image??r.result[0]?.image??null:null}catch(e){return console.warn("Failed to fetch SNS avatar:",e),null}},i=t=>`https://api.dicebear.com/7.x/identicon/svg?seed=${encodeURIComponent(t)}`,N=async t=>{if(!t)return i("default");let e=t.trim();if(!e)return i("default");let r=e.toLowerCase(),n=l.get(r);if(n!==void 0)return n;let a;try{if(P(e)){let s=await U(e);s?a=s:a=i(e);}else k(e),a=i(e);}catch(s){console.warn("Error resolving avatar:",s),a=i(e);}return l.set(r,a),a},ut=()=>{l.clear();},pt=()=>l.size,ft=async t=>{try{await N(t);}catch(e){console.warn("Failed to preload avatar:",e);}};var c=new Map,M="https://sns-api.bonfida.com",L=async t=>{try{let e=await fetch(`${M}/v2/user/fav-domains/${t}`);if(!e.ok)return null;let r=await e.json();return r.result&&typeof r.result=="object"&&t in r.result?r.result[t]:null}catch(e){return console.warn("Failed to fetch SNS name:",e),null}},$=t=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t),gt=async t=>{if(!t)return t||"";if(!$(t.trim()))return t;let e=t.toLowerCase().trim(),r=c.get(e);if(r!==void 0)return r;let n=t;try{let a=await L(t);a&&(n=a);}catch(a){console.warn("Error resolving address name:",a);}return c.set(e,n),n},dt=()=>{c.clear();},St=()=>c.size;var At=(t,e)=>{let r=m({cluster:String(e)})??"mainnet",n=gill.getExplorerLink(),a=n.endsWith("/")?n.slice(0,-1):n,s=r?`?cluster=${r}`:"";return `${a}${t||"/"}${s}`};
|
|
2
|
+
exports.clearSolanaAvatarCache=ut;exports.clearSolanaNameCache=dt;exports.createSolanaClientWithCache=Z;exports.createSolanaRPC=tt;exports.defaultRpcUrlsByMoniker=o;exports.getAvailableSolanaClusters=B;exports.getAvailableSolanaConnectors=g;exports.getCluster=m;exports.getConnectedSolanaConnector=lt;exports.getRpcUrlForCluster=_;exports.getSolanaAddressAvatar=N;exports.getSolanaAddressName=gt;exports.getSolanaAvatarCacheSize=pt;exports.getSolanaClusters=F;exports.getSolanaExplorerLink=At;exports.getSolanaNameCacheSize=St;exports.isSolanaChainList=j;exports.isValidSolanaCluster=T;exports.preloadSolanaAvatar=ft;
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {createSolanaClient,createSolanaRpc,getExplorerLink}from'gill';import {filterUniqueByKey,lastConnectedConnectorHelpers}from'@tuwaio/orbit-core';import {getWallets}from'@wallet-standard/app';import {
|
|
2
|
-
export{ut as clearSolanaAvatarCache,dt as clearSolanaNameCache,Z as createSolanaClientWithCache,tt as createSolanaRPC,o as defaultRpcUrlsByMoniker,B as getAvailableSolanaClusters,g as getAvailableSolanaConnectors,m as getCluster,lt as getConnectedSolanaConnector,
|
|
1
|
+
import {createSolanaClient,createSolanaRpc,getExplorerLink}from'gill';import {filterUniqueByKey,lastConnectedConnectorHelpers}from'@tuwaio/orbit-core';import {getWallets}from'@wallet-standard/app';import {getOrCreateUiWalletForStandardWallet}from'@wallet-standard/ui-registry';var o={mainnet:"https://api.mainnet-beta.solana.com",devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com"};function d(t){let e=t.split(":");if(e.length<2)return null;let r=e[1];r==="mainnet-beta"&&(r="mainnet");let n=r;return n in o?n:null}function S(t,e){let r={},n=Object.keys(e||o);for(let a of t){if(typeof a!="string")continue;let s=d(a);if(!s||!n.includes(s))continue;let f=e?.[s]??o[s];f&&(r[s]=f);}return r}function F(t,e){if(e&&e.length>0){let r=S(e,t);return Object.keys(r)}return Object.keys(t||o)}function j(t){return t.length>0&&t.every(e=>typeof e=="string")}function B(){return Object.keys(o)}function T(t){return t in o}var m=({cluster:t,walletCluster:e})=>{let r="mainnet";return t?t.includes(":")?t.split(":")[1]:t:e??r},_=({cluster:t,walletCluster:e,rpcUrls:r})=>r[e??t]??"https://api.mainnet-beta.solana.com/";function h(t){try{return new URL(t),!0}catch{return false}}var u=new Map,Z=({rpcUrlOrMoniker:t,rpcUrls:e})=>{if(u.has(t))return u.get(t);let r=h(t)?t:e?e[t]??o[t]:o[t];if(!r)throw new Error(`Unable to resolve RPC URL for input: "${t}". Ensure it's a valid URL or known moniker.`);let n=createSolanaClient({urlOrMoniker:r});return u.set(t,n),n};function A(t){try{return new URL(t),!0}catch{return false}}var p=new Map,tt=({rpcUrlOrMoniker:t,rpcUrls:e})=>{if(p.has(t))return p.get(t);let r=A(t)?t:e?e[t]??o[t]:o[t];if(!r)throw new Error(`Unable to resolve RPC URL for input: "${t}". Ensure it's a valid URL or known moniker.`);let n=createSolanaRpc(r);return p.set(t,n),n};function g(){return filterUniqueByKey(getWallets().get().map(getOrCreateUiWalletForStandardWallet),"name").filter(t=>{try{return !t||!Array.isArray(t.chains)||!t.features||!Array.isArray(t.features)||!["standard:connect","standard:disconnect","standard:events","solana:signAndSendTransaction","solana:signTransaction","solana:signMessage"].every(n=>t.features.includes(n))?!1:t.chains.every(n=>{try{if(typeof n!="string")return !1;let a=n.split(":");return a.length>=1&&a[0]==="solana"}catch(a){return console.warn("Error parsing chain:",n,a),!1}})}catch(e){return console.warn("Error filtering wallet:",e),false}})}function lt(){let t=lastConnectedConnectorHelpers.getLastConnectedConnector(),r=g().find(n=>n.accounts.find(a=>a.address.toLowerCase()===t?.address?.toLowerCase()));if(!r)throw new Error("Connector not provided. Cannot perform chain check.");return r}var l=new Map,b="https://image-api.bonfida.com",k=t=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t),P=t=>/^[a-z0-9-]+\.sol$/.test(t.toLowerCase()),U=async t=>{try{let e=await fetch(`${b}/image?domain=${encodeURIComponent(t)}`);if(!e.ok)return null;let r=await e.json();return r.result&&Array.isArray(r.result)&&r.result.length>0?r.result.find(a=>a.domain===t)?.image??r.result[0]?.image??null:null}catch(e){return console.warn("Failed to fetch SNS avatar:",e),null}},i=t=>`https://api.dicebear.com/7.x/identicon/svg?seed=${encodeURIComponent(t)}`,N=async t=>{if(!t)return i("default");let e=t.trim();if(!e)return i("default");let r=e.toLowerCase(),n=l.get(r);if(n!==void 0)return n;let a;try{if(P(e)){let s=await U(e);s?a=s:a=i(e);}else k(e),a=i(e);}catch(s){console.warn("Error resolving avatar:",s),a=i(e);}return l.set(r,a),a},ut=()=>{l.clear();},pt=()=>l.size,ft=async t=>{try{await N(t);}catch(e){console.warn("Failed to preload avatar:",e);}};var c=new Map,M="https://sns-api.bonfida.com",L=async t=>{try{let e=await fetch(`${M}/v2/user/fav-domains/${t}`);if(!e.ok)return null;let r=await e.json();return r.result&&typeof r.result=="object"&&t in r.result?r.result[t]:null}catch(e){return console.warn("Failed to fetch SNS name:",e),null}},$=t=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t),gt=async t=>{if(!t)return t||"";if(!$(t.trim()))return t;let e=t.toLowerCase().trim(),r=c.get(e);if(r!==void 0)return r;let n=t;try{let a=await L(t);a&&(n=a);}catch(a){console.warn("Error resolving address name:",a);}return c.set(e,n),n},dt=()=>{c.clear();},St=()=>c.size;var At=(t,e)=>{let r=m({cluster:String(e)})??"mainnet",n=getExplorerLink(),a=n.endsWith("/")?n.slice(0,-1):n,s=r?`?cluster=${r}`:"";return `${a}${t||"/"}${s}`};
|
|
2
|
+
export{ut as clearSolanaAvatarCache,dt as clearSolanaNameCache,Z as createSolanaClientWithCache,tt as createSolanaRPC,o as defaultRpcUrlsByMoniker,B as getAvailableSolanaClusters,g as getAvailableSolanaConnectors,m as getCluster,lt as getConnectedSolanaConnector,_ as getRpcUrlForCluster,N as getSolanaAddressAvatar,gt as getSolanaAddressName,pt as getSolanaAvatarCacheSize,F as getSolanaClusters,At as getSolanaExplorerLink,St as getSolanaNameCacheSize,j as isSolanaChainList,T as isValidSolanaCluster,ft as preloadSolanaAvatar};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/orbit-solana",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"gill": "^0.14.0",
|
|
49
49
|
"@wallet-standard/app": "^1.1.0",
|
|
50
50
|
"@wallet-standard/ui-core": "^1.0.0",
|
|
51
|
-
"@wallet-standard/ui-registry": "^1.0
|
|
51
|
+
"@wallet-standard/ui-registry": "^1.1.0",
|
|
52
52
|
"@tuwaio/orbit-core": "^0.2.8"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|