@tuwaio/orbit-core 0.2.5 → 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.d.mts +17 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -304,6 +304,22 @@ declare const impersonatedHelpers: {
|
|
|
304
304
|
removeImpersonated: () => void;
|
|
305
305
|
};
|
|
306
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Checks if the current window is running inside a Safe App iframe
|
|
309
|
+
* by attempting postMessage communication with the parent window.
|
|
310
|
+
*
|
|
311
|
+
* @returns Promise that resolves to true if running inside Safe Wallet, false otherwise
|
|
312
|
+
*/
|
|
313
|
+
declare function detectSafeApp(timeout?: number): Promise<boolean>;
|
|
314
|
+
/**
|
|
315
|
+
* Synchronous check - less reliable but instant
|
|
316
|
+
* Only checks if we're in an HTTPS iframe
|
|
317
|
+
*/
|
|
318
|
+
declare const isInSecureIframe: boolean;
|
|
319
|
+
/**
|
|
320
|
+
* @deprecated Use detectSafeApp() for accurate detection
|
|
321
|
+
* This synchronous constant only checks if we're in an iframe
|
|
322
|
+
*/
|
|
307
323
|
declare const isSafeApp: boolean;
|
|
308
324
|
|
|
309
325
|
type LastConnectedConnector = {
|
|
@@ -647,4 +663,4 @@ declare function isSolanaChain(chainId: number | string): boolean;
|
|
|
647
663
|
*/
|
|
648
664
|
declare function setChainId(chainId: number | string): string | number;
|
|
649
665
|
|
|
650
|
-
export { type BaseAdapter, type ChainIdentifierArray, type ConnectorType, OrbitAdapter, type OrbitGenericAdapter, type RecentlyConnectedConnectorData, type RecentlyConnectedConnectorsList, delay, filterUniqueByKey, formatConnectorChainId, formatConnectorName, getAdapterFromConnectorType, getConnectorTypeFromName, getNetworkData, getParsedStorageItem, impersonatedHelpers, isAddress, isSafeApp, isSolanaChain, lastConnectedConnectorHelpers, recentlyConnectedConnectorsListHelpers, selectAdapterByKey, setChainId, waitFor };
|
|
666
|
+
export { type BaseAdapter, type ChainIdentifierArray, type ConnectorType, OrbitAdapter, type OrbitGenericAdapter, type RecentlyConnectedConnectorData, type RecentlyConnectedConnectorsList, delay, detectSafeApp, filterUniqueByKey, formatConnectorChainId, formatConnectorName, getAdapterFromConnectorType, getConnectorTypeFromName, getNetworkData, getParsedStorageItem, impersonatedHelpers, isAddress, isInSecureIframe, isSafeApp, isSolanaChain, lastConnectedConnectorHelpers, recentlyConnectedConnectorsListHelpers, selectAdapterByKey, setChainId, waitFor };
|
package/dist/index.d.ts
CHANGED
|
@@ -304,6 +304,22 @@ declare const impersonatedHelpers: {
|
|
|
304
304
|
removeImpersonated: () => void;
|
|
305
305
|
};
|
|
306
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Checks if the current window is running inside a Safe App iframe
|
|
309
|
+
* by attempting postMessage communication with the parent window.
|
|
310
|
+
*
|
|
311
|
+
* @returns Promise that resolves to true if running inside Safe Wallet, false otherwise
|
|
312
|
+
*/
|
|
313
|
+
declare function detectSafeApp(timeout?: number): Promise<boolean>;
|
|
314
|
+
/**
|
|
315
|
+
* Synchronous check - less reliable but instant
|
|
316
|
+
* Only checks if we're in an HTTPS iframe
|
|
317
|
+
*/
|
|
318
|
+
declare const isInSecureIframe: boolean;
|
|
319
|
+
/**
|
|
320
|
+
* @deprecated Use detectSafeApp() for accurate detection
|
|
321
|
+
* This synchronous constant only checks if we're in an iframe
|
|
322
|
+
*/
|
|
307
323
|
declare const isSafeApp: boolean;
|
|
308
324
|
|
|
309
325
|
type LastConnectedConnector = {
|
|
@@ -647,4 +663,4 @@ declare function isSolanaChain(chainId: number | string): boolean;
|
|
|
647
663
|
*/
|
|
648
664
|
declare function setChainId(chainId: number | string): string | number;
|
|
649
665
|
|
|
650
|
-
export { type BaseAdapter, type ChainIdentifierArray, type ConnectorType, OrbitAdapter, type OrbitGenericAdapter, type RecentlyConnectedConnectorData, type RecentlyConnectedConnectorsList, delay, filterUniqueByKey, formatConnectorChainId, formatConnectorName, getAdapterFromConnectorType, getConnectorTypeFromName, getNetworkData, getParsedStorageItem, impersonatedHelpers, isAddress, isSafeApp, isSolanaChain, lastConnectedConnectorHelpers, recentlyConnectedConnectorsListHelpers, selectAdapterByKey, setChainId, waitFor };
|
|
666
|
+
export { type BaseAdapter, type ChainIdentifierArray, type ConnectorType, OrbitAdapter, type OrbitGenericAdapter, type RecentlyConnectedConnectorData, type RecentlyConnectedConnectorsList, delay, detectSafeApp, filterUniqueByKey, formatConnectorChainId, formatConnectorName, getAdapterFromConnectorType, getConnectorTypeFromName, getNetworkData, getParsedStorageItem, impersonatedHelpers, isAddress, isInSecureIframe, isSafeApp, isSolanaChain, lastConnectedConnectorHelpers, recentlyConnectedConnectorsListHelpers, selectAdapterByKey, setChainId, waitFor };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var d=(
|
|
2
|
-
exports.OrbitAdapter=d;exports.delay=
|
|
1
|
+
'use strict';var d=(o=>(o.EVM="evm",o.SOLANA="solana",o.Starknet="starknet",o))(d||{});function f(e){return /^0x[a-fA-F0-9]{40}$/.test(e.trim())}function u(e){return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e.trim())}function C(e,t="auto"){if(!e)return false;let n=e.trim();switch(t){case "evm":return f(n);case "solana":return u(n);default:return f(n)||u(n)}}var g=(e,t)=>new Promise(n=>{let o=()=>{setTimeout(()=>n(e),t);};typeof window<"u"?o():setTimeout(o,0);});function b(e,t){let n=new Set;return e.filter(o=>{let s=o[t];return n.has(s)?false:(n.add(s),true)})}function x(e,t){return typeof e=="string"?`${t}:${e}`:e}var l=new Map([["Impersonated Connector","impersonatedwallet"],["Safe","safe"],["Trust","trust"],["Trust Wallet","trust"],["Brave \u041A\u043E\u0448\u0435\u043B\u0435\u043A","brave"],["Brave Wallet","brave"],["Base Account","coinbase"]]),L=e=>l.get(e)??e.replace(/\s+/g,"").toLowerCase();function E(e){return e?.split(":")[0]??"evm"}function v(e,t){return `${e}:${t.replace(/\s+/g,"").toLowerCase()}`}var G=e=>{switch(e){case "evm":return {chain:{chainId:1,name:"Ethereum"},links:{aboutNetwork:"https://ethereum.org/developers/docs/intro-to-ethereum/",choseWallet:"https://ethereum.org/wallets/find-wallet/",about:"https://ethereum.org/wallets/"}};case "solana":return {chain:{chainId:"solana:mainnet",name:"Solana"},links:{aboutNetwork:"https://solana.com/en/learn/what-is-solana",choseWallet:"https://solana.com/en/solana-wallets",about:"https://solana.com/en/learn/what-is-a-wallet"}}}};function a(e){if(typeof window>"u")return;let t=window.localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(n){console.error(`Error parsing ${e} from localStorage:`,n);return}}var _={impersonatedAddress:typeof window<"u"?window.localStorage.getItem("satellite-connect:impersonatedAddress")??"":"",setImpersonated:e=>typeof window<"u"?window.localStorage.setItem("satellite-connect:impersonatedAddress",e):void 0,getImpersonated:()=>typeof window<"u"?window.localStorage.getItem("satellite-connect:impersonatedAddress"):void 0,removeImpersonated:()=>typeof window<"u"?window.localStorage.removeItem("satellite-connect:impersonatedAddress"):void 0};async function M(e=1e3){return typeof window>"u"||window===window.parent||window.location.protocol!=="https:"?false:new Promise(t=>{let n=setTimeout(()=>{window.removeEventListener("message",o),t(false);},e);function o(i){i.data&&typeof i.data=="object"&&("safeAddress"in i.data||i.data.data&&"safeAddress"in i.data.data||i.data.method==="getInfo")&&(clearTimeout(n),window.removeEventListener("message",o),t(true));}window.addEventListener("message",o);let s=Math.trunc(Math.random()*1e6);window.parent.postMessage({id:s,method:"getSafeInfo",env:{sdkVersion:"1.0.0"}},"*");})}var p=typeof window<"u"&&window!==window.parent&&window.location.protocol==="https:",Y=p;var c={STORAGE_KEY:"orbit-core:lastConnectedConnector",lastConnectedConnector:a("orbit-core:lastConnectedConnector"),setLastConnectedConnector:({connectorType:e,chainId:t,address:n})=>typeof window<"u"?window.localStorage.setItem(c.STORAGE_KEY,JSON.stringify({connectorType:e,chainId:t,address:n})):void 0,getLastConnectedConnector:()=>a(c.STORAGE_KEY),removeLastConnectedConnector:()=>typeof window<"u"?window.localStorage.removeItem(c.STORAGE_KEY):void 0};var r={STORAGE_KEY:"orbit-core:recentlyConnectedConnectorsListHelpers",recentlyConnectedConnectorsList:a("orbit-core:recentlyConnectedConnectorsListHelpers"),setRecentlyConnectedConnectorsList:e=>typeof window<"u"?window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(e)):void 0,getRecentlyConnectedConnectorsList:()=>a(r.STORAGE_KEY),addConnector:(e,t)=>{if(typeof window>"u")return;let o={...r.getRecentlyConnectedConnectorsList()||{},[e]:t};window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(o));},removeConnector:e=>{if(typeof window>"u")return;let t=r.getRecentlyConnectedConnectorsList();if(!t||!(e in t))return;let{[e]:n,...o}=t;window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(o));},hasConnector:e=>{if(typeof window>"u")return;let t=r.getRecentlyConnectedConnectorsList();return t?e in t:false},getConnector:e=>typeof window>"u"?void 0:r.getRecentlyConnectedConnectorsList()?.[e],getConnectorCount:()=>{if(typeof window>"u")return 0;let e=r.getRecentlyConnectedConnectorsList();return e?Object.keys(e).length:0},getConnectorsSortedByTime:()=>{if(typeof window>"u")return [];let e=r.getRecentlyConnectedConnectorsList();return e?Object.entries(e).sort(([,t],[,n])=>n.disconnectedTimestamp-t.disconnectedTimestamp):[]},removeConnectorsOlderThan:e=>{if(typeof window>"u")return;let t=r.getRecentlyConnectedConnectorsList();if(!t)return;let n=Object.fromEntries(Object.entries(t).filter(([,o])=>o.disconnectedTimestamp>=e));window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(n));},removeRecentlyConnectedConnectorsList:()=>typeof window<"u"?window.localStorage.removeItem(r.STORAGE_KEY):void 0};var j=({adapterKey:e,adapter:t})=>{if(Array.isArray(t)){if(t.length===0){console.error("Adapter selection failed: The provided adapters array is empty.");return}let n=t.find(o=>o.key===e);return n||(console.warn(`No adapter found for key: "${e}". Falling back to the first available adapter: "${t[0].key}".`),t[0])}return t};async function W(e,t=50,n=200){for(let o=0;o<t;o++){if(e())return;await new Promise(s=>setTimeout(s,n));}throw new Error("Predicate not fulfilled in time")}function m(e){return typeof e=="string"?["devnet","testnet","mainnet-beta","mainnet"].includes(e):false}function U(e){return m(e)?`solana:${e}`:e}
|
|
2
|
+
exports.OrbitAdapter=d;exports.delay=g;exports.detectSafeApp=M;exports.filterUniqueByKey=b;exports.formatConnectorChainId=x;exports.formatConnectorName=L;exports.getAdapterFromConnectorType=E;exports.getConnectorTypeFromName=v;exports.getNetworkData=G;exports.getParsedStorageItem=a;exports.impersonatedHelpers=_;exports.isAddress=C;exports.isInSecureIframe=p;exports.isSafeApp=Y;exports.isSolanaChain=m;exports.lastConnectedConnectorHelpers=c;exports.recentlyConnectedConnectorsListHelpers=r;exports.selectAdapterByKey=j;exports.setChainId=U;exports.waitFor=W;
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var d=(
|
|
2
|
-
export{d as OrbitAdapter,
|
|
1
|
+
var d=(o=>(o.EVM="evm",o.SOLANA="solana",o.Starknet="starknet",o))(d||{});function f(e){return /^0x[a-fA-F0-9]{40}$/.test(e.trim())}function u(e){return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e.trim())}function C(e,t="auto"){if(!e)return false;let n=e.trim();switch(t){case "evm":return f(n);case "solana":return u(n);default:return f(n)||u(n)}}var g=(e,t)=>new Promise(n=>{let o=()=>{setTimeout(()=>n(e),t);};typeof window<"u"?o():setTimeout(o,0);});function b(e,t){let n=new Set;return e.filter(o=>{let s=o[t];return n.has(s)?false:(n.add(s),true)})}function x(e,t){return typeof e=="string"?`${t}:${e}`:e}var l=new Map([["Impersonated Connector","impersonatedwallet"],["Safe","safe"],["Trust","trust"],["Trust Wallet","trust"],["Brave \u041A\u043E\u0448\u0435\u043B\u0435\u043A","brave"],["Brave Wallet","brave"],["Base Account","coinbase"]]),L=e=>l.get(e)??e.replace(/\s+/g,"").toLowerCase();function E(e){return e?.split(":")[0]??"evm"}function v(e,t){return `${e}:${t.replace(/\s+/g,"").toLowerCase()}`}var G=e=>{switch(e){case "evm":return {chain:{chainId:1,name:"Ethereum"},links:{aboutNetwork:"https://ethereum.org/developers/docs/intro-to-ethereum/",choseWallet:"https://ethereum.org/wallets/find-wallet/",about:"https://ethereum.org/wallets/"}};case "solana":return {chain:{chainId:"solana:mainnet",name:"Solana"},links:{aboutNetwork:"https://solana.com/en/learn/what-is-solana",choseWallet:"https://solana.com/en/solana-wallets",about:"https://solana.com/en/learn/what-is-a-wallet"}}}};function a(e){if(typeof window>"u")return;let t=window.localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(n){console.error(`Error parsing ${e} from localStorage:`,n);return}}var _={impersonatedAddress:typeof window<"u"?window.localStorage.getItem("satellite-connect:impersonatedAddress")??"":"",setImpersonated:e=>typeof window<"u"?window.localStorage.setItem("satellite-connect:impersonatedAddress",e):void 0,getImpersonated:()=>typeof window<"u"?window.localStorage.getItem("satellite-connect:impersonatedAddress"):void 0,removeImpersonated:()=>typeof window<"u"?window.localStorage.removeItem("satellite-connect:impersonatedAddress"):void 0};async function M(e=1e3){return typeof window>"u"||window===window.parent||window.location.protocol!=="https:"?false:new Promise(t=>{let n=setTimeout(()=>{window.removeEventListener("message",o),t(false);},e);function o(i){i.data&&typeof i.data=="object"&&("safeAddress"in i.data||i.data.data&&"safeAddress"in i.data.data||i.data.method==="getInfo")&&(clearTimeout(n),window.removeEventListener("message",o),t(true));}window.addEventListener("message",o);let s=Math.trunc(Math.random()*1e6);window.parent.postMessage({id:s,method:"getSafeInfo",env:{sdkVersion:"1.0.0"}},"*");})}var p=typeof window<"u"&&window!==window.parent&&window.location.protocol==="https:",Y=p;var c={STORAGE_KEY:"orbit-core:lastConnectedConnector",lastConnectedConnector:a("orbit-core:lastConnectedConnector"),setLastConnectedConnector:({connectorType:e,chainId:t,address:n})=>typeof window<"u"?window.localStorage.setItem(c.STORAGE_KEY,JSON.stringify({connectorType:e,chainId:t,address:n})):void 0,getLastConnectedConnector:()=>a(c.STORAGE_KEY),removeLastConnectedConnector:()=>typeof window<"u"?window.localStorage.removeItem(c.STORAGE_KEY):void 0};var r={STORAGE_KEY:"orbit-core:recentlyConnectedConnectorsListHelpers",recentlyConnectedConnectorsList:a("orbit-core:recentlyConnectedConnectorsListHelpers"),setRecentlyConnectedConnectorsList:e=>typeof window<"u"?window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(e)):void 0,getRecentlyConnectedConnectorsList:()=>a(r.STORAGE_KEY),addConnector:(e,t)=>{if(typeof window>"u")return;let o={...r.getRecentlyConnectedConnectorsList()||{},[e]:t};window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(o));},removeConnector:e=>{if(typeof window>"u")return;let t=r.getRecentlyConnectedConnectorsList();if(!t||!(e in t))return;let{[e]:n,...o}=t;window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(o));},hasConnector:e=>{if(typeof window>"u")return;let t=r.getRecentlyConnectedConnectorsList();return t?e in t:false},getConnector:e=>typeof window>"u"?void 0:r.getRecentlyConnectedConnectorsList()?.[e],getConnectorCount:()=>{if(typeof window>"u")return 0;let e=r.getRecentlyConnectedConnectorsList();return e?Object.keys(e).length:0},getConnectorsSortedByTime:()=>{if(typeof window>"u")return [];let e=r.getRecentlyConnectedConnectorsList();return e?Object.entries(e).sort(([,t],[,n])=>n.disconnectedTimestamp-t.disconnectedTimestamp):[]},removeConnectorsOlderThan:e=>{if(typeof window>"u")return;let t=r.getRecentlyConnectedConnectorsList();if(!t)return;let n=Object.fromEntries(Object.entries(t).filter(([,o])=>o.disconnectedTimestamp>=e));window.localStorage.setItem(r.STORAGE_KEY,JSON.stringify(n));},removeRecentlyConnectedConnectorsList:()=>typeof window<"u"?window.localStorage.removeItem(r.STORAGE_KEY):void 0};var j=({adapterKey:e,adapter:t})=>{if(Array.isArray(t)){if(t.length===0){console.error("Adapter selection failed: The provided adapters array is empty.");return}let n=t.find(o=>o.key===e);return n||(console.warn(`No adapter found for key: "${e}". Falling back to the first available adapter: "${t[0].key}".`),t[0])}return t};async function W(e,t=50,n=200){for(let o=0;o<t;o++){if(e())return;await new Promise(s=>setTimeout(s,n));}throw new Error("Predicate not fulfilled in time")}function m(e){return typeof e=="string"?["devnet","testnet","mainnet-beta","mainnet"].includes(e):false}function U(e){return m(e)?`solana:${e}`:e}
|
|
2
|
+
export{d as OrbitAdapter,g as delay,M as detectSafeApp,b as filterUniqueByKey,x as formatConnectorChainId,L as formatConnectorName,E as getAdapterFromConnectorType,v as getConnectorTypeFromName,G as getNetworkData,a as getParsedStorageItem,_ as impersonatedHelpers,C as isAddress,p as isInSecureIframe,Y as isSafeApp,m as isSolanaChain,c as lastConnectedConnectorHelpers,r as recentlyConnectedConnectorsListHelpers,j as selectAdapterByKey,U as setChainId,W as waitFor};
|