@rango-dev/provider-safepal 0.64.1-next.2 → 0.64.1-next.4

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/mod.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  declare const versions: () => readonly [readonly ["1.0.0", import("@hub3js/core").Provider<Record<"evm", import("@hub3js/evm").EvmActions>>]];
2
2
  export { versions };
3
+ export { WALLET_ID } from './constants.js';
3
4
  //# sourceMappingURL=mod.d.ts.map
package/dist/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,uHAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,uHAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/mod.js CHANGED
@@ -1,2 +1,2 @@
1
- var E=Object.defineProperty;var o=(e,t)=>E(e,"name",{value:t,configurable:!0});import{defineVersions as W}from"@hub3js/core/utils";import{ProviderBuilder as B}from"@hub3js/core";import{isEvmNamespace as y}from"@hub3js/evm";import{EVM_NAMESPACE as b}from"@hub3js/namespaces";import{getNetworkInstance as A}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as P,TransactionType as S}from"rango-types";async function s(e){let t=A(e,b),r=new P,{DefaultEvmSigner:h}=await import("@rango-dev/signer-evm");return r.registerSigner(S.EVM,new h(t)),r}o(s,"getSigners");import{EVM_NAMESPACE as l}from"@hub3js/namespaces";import{isEvmAddress as x}from"@rango-dev/wallets-shared";function n(){let{safepalProvider:e}=window;if(!e)return null;let t=new Map;return e&&t.set(l,e),t}o(n,"safepal");function i(){let t=n()?.get(l);if(!t)throw new Error("Safepal not injected or EVM not enabled. Please check your wallet.");return t}o(i,"evmSafepal");function d(){let e=n();if(!e)throw new Error("Trust Wallet is not injected. Please check your wallet.");return e}o(d,"getInstanceOrThrow");function p(e){let t=e.split(":")[2];return x(t)}o(p,"isValidEvmAddress");var a="safepal",f={name:"SafePal",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/safepal/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa",brave:"https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa",firefox:"https://addons.mozilla.org/en-US/firefox/addon/safepal-extension-wallet",homepage:"https://www.safepal.com/download"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",isChainSupported:y}]}},{name:"signers",value:{getSigners:async()=>s(d())}}]};import{ActionBuilder as T,NamespaceBuilder as I}from"@hub3js/core";import{actions as c,builders as m}from"@hub3js/evm";import*as u from"@hub3js/std/builders";import{connectAndUpdateStateForMultiNetworks as M,intoConnecting as N,intoConnectionFinished as V,standardizeAndThrowError as C}from"@hub3js/std/operators";var[_,g]=m.changeAccountSubscriber(i).build(),j=new T("connect").action(c.connect(i)).before(_).before(N).and((e,t)=>{if(t.accounts.some(r=>!p(r)))throw new Error("Non valid EVM address returned from wallet");return t}).and(M).after(V).or(g).or(C).build(),L=u.disconnect().after(g).build(),k=m.canSwitchNetwork().action(c.canSwitchNetwork()).build(),D=m.getChainId().action(c.getChainId(i)).build(),v=new I("EVM",a).action(j).action(L).action(k).action(D).build();var F=1e3,w=o(()=>new B(a).init(function(e){setTimeout(()=>{if(n()){let[,t]=e.state();t("installed",!0),console.debug("[safepal] instance detected.",e)}},F)}).config("metadata",f).add("evm",v).build(),"buildProvider");var ue=o(()=>W().version("1.0.0",w()).build(),"versions");export{ue as versions};
1
+ var h=Object.defineProperty;var o=(e,t)=>h(e,"name",{value:t,configurable:!0});import{defineVersions as W}from"@hub3js/core/utils";import{ProviderBuilder as k}from"@hub3js/core";import{isEvmNamespace as x}from"@hub3js/evm";import{EVM_NAMESPACE as b}from"@hub3js/namespaces";import{DefaultSignerFactory as A,TransactionType as P}from"rango-types";async function s(e){let t=e.get(b),n=new A,{DefaultEvmSigner:E}=await import("@rango-dev/signer-evm");return t&&n.registerSigner(P.EVM,new E(t)),n}o(s,"getSigners");import{EVM_NAMESPACE as d}from"@hub3js/namespaces";import{isAddress as S}from"ethers";function i(){let{safepalProvider:e}=window;if(!e)return null;let t=new Map;return e&&t.set(d,e),t}o(i,"safepal");function a(){let t=i()?.get(d);if(!t)throw new Error("Safepal not injected or EVM not enabled. Please check your wallet.");return t}o(a,"evmSafepal");function l(){let e=i();if(!e)throw new Error("Trust Wallet is not injected. Please check your wallet.");return e}o(l,"getInstanceOrThrow");function p(e){let t=e.split(":")[2];return S(t)}o(p,"isValidEvmAddress");var r="safepal",f={name:"SafePal",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/safepal/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa",brave:"https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa",firefox:"https://addons.mozilla.org/en-US/firefox/addon/safepal-extension-wallet",homepage:"https://www.safepal.com/download"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",isChainSupported:x}]}},{name:"signers",value:{getSigners:async()=>s(l())}}]};import{ActionBuilder as y,NamespaceBuilder as M}from"@hub3js/core";import{actions as c,builders as m}from"@hub3js/evm";import*as u from"@hub3js/std/builders";import{connectAndUpdateStateForMultiNetworks as T,intoConnecting as I,intoConnectionFinished as N,standardizeAndThrowError as V}from"@hub3js/std/operators";var[_,g]=m.changeAccountSubscriber(a).build(),j=new y("connect").action(c.connect(a)).before(_).before(I).and((e,t)=>{if(t.accounts.some(n=>!p(n)))throw new Error("Non valid EVM address returned from wallet");return t}).and(T).after(N).or(g).or(V).build(),C=u.disconnect().after(g).build(),L=m.canSwitchNetwork().action(c.canSwitchNetwork()).build(),D=m.getChainId().action(c.getChainId(a)).build(),v=new M("EVM",r).action(j).action(C).action(L).action(D).build();var O=1e3,w=o(()=>new k(r).init(function(e){setTimeout(()=>{if(i()){let[,t]=e.state();t("installed",!0),console.debug("[safepal] instance detected.",e)}},O)}).config("metadata",f).add("evm",v).build(),"buildProvider");var pe=o(()=>W().version("1.0.0",w()).build(),"versions");export{r as WALLET_ID,pe as versions};
2
2
  //# sourceMappingURL=mod.js.map
package/dist/mod.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/mod.ts", "../src/provider.ts", "../src/constants.ts", "../src/signer.ts", "../src/utils.ts", "../src/namespaces/evm.ts"],
4
- "sourcesContent": ["import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { safepal as safepalInstance } from './utils.js';\n\nconst WAIT_TO_LOAD_INSTANCE_DELAY = 1000;\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n setTimeout(() => {\n if (safepalInstance()) {\n const [, setState] = context.state();\n setState('installed', true);\n console.debug('[safepal] instance detected.', context);\n }\n }, WAIT_TO_LOAD_INSTANCE_DELAY);\n })\n\n .config('metadata', metadata)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport { isEvmNamespace } from '@hub3js/evm';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'safepal';\nexport const metadata: ProviderMetadata = {\n name: 'SafePal',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/safepal/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa',\n brave:\n 'https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa',\n firefox:\n 'https://addons.mozilla.org/en-US/firefox/addon/safepal-extension-wallet',\n homepage: 'https://www.safepal.com/download',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n isChainSupported: isEvmNamespace,\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\nimport { getNetworkInstance } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, EVM_NAMESPACE);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n return signers;\n}\n", "import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\n\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\nimport { isEvmAddress } from '@rango-dev/wallets-shared';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Provider = Record<string, any>;\nexport function safepal(): Provider | null {\n const { safepalProvider: safePalEvm } = window;\n if (!safePalEvm) {\n return null;\n }\n const instances = new Map();\n if (safePalEvm) {\n instances.set(EVM_NAMESPACE, safePalEvm);\n }\n\n return instances;\n}\n\nexport function evmSafepal(): EvmProviderApi {\n const instances = safepal();\n const evmInstance = instances?.get(EVM_NAMESPACE);\n if (!evmInstance) {\n throw new Error(\n 'Safepal not injected or EVM not enabled. Please check your wallet.'\n );\n }\n return evmInstance as EvmProviderApi;\n}\nexport function getInstanceOrThrow(): Provider {\n const instances = safepal();\n\n if (!instances) {\n throw new Error('Trust Wallet is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n/**\n * Return true if address is a valid EVM address.\n * Accepts:\n * - all-lowercase or all-uppercase 0x-prefixed hex (non-checksummed - allowed)\n * - checksummed (mixed-case according to EIP-55)\n */\nexport function isValidEvmAddress(address: string): boolean {\n // Pick wallet address.\n const walletAddress = address.split(':')[2];\n\n return isEvmAddress(walletAddress);\n}\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport {\n connectAndUpdateStateForMultiNetworks,\n intoConnecting,\n intoConnectionFinished,\n standardizeAndThrowError,\n} from '@hub3js/std/operators';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmSafepal, isValidEvmAddress } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(evmSafepal)\n .build();\n\n/**\n * Important: Keep this implementation in sync with wallets/core/src/namespaces/evm/builders\n */\nconst connect = new ActionBuilder<EvmActions, 'connect'>('connect')\n .action(actions.connect(evmSafepal))\n .before(changeAccountSubscriber)\n .before(intoConnecting)\n /*\n * Validate all accounts are valid EVM addresses\n * Sometimes wallets may return non-EVM addresses - this check prevents that\n */\n .and((_, args) => {\n if (args.accounts.some((account: string) => !isValidEvmAddress(account))) {\n throw new Error('Non valid EVM address returned from wallet');\n }\n\n return args;\n })\n .and(connectAndUpdateStateForMultiNetworks)\n .after(intoConnectionFinished)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmSafepal))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canSwitchNetwork)\n .action(getChainId)\n .build();\n\nexport { evm };\n"],
5
- "mappings": "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",
6
- "names": ["defineVersions", "ProviderBuilder", "isEvmNamespace", "EVM_NAMESPACE", "getNetworkInstance", "DefaultSignerFactory", "TxType", "getSigners", "provider", "ethProvider", "getNetworkInstance", "EVM_NAMESPACE", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "TxType", "__name", "EVM_NAMESPACE", "isEvmAddress", "safepal", "safePalEvm", "instances", "EVM_NAMESPACE", "__name", "evmSafepal", "evmInstance", "getInstanceOrThrow", "isValidEvmAddress", "address", "walletAddress", "isEvmAddress", "WALLET_ID", "metadata", "isEvmNamespace", "getSigners", "getInstanceOrThrow", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "commonBuilders", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "builders", "evmSafepal", "connect", "ActionBuilder", "actions", "intoConnecting", "_", "args", "account", "isValidEvmAddress", "connectAndUpdateStateForMultiNetworks", "intoConnectionFinished", "standardizeAndThrowError", "disconnect", "canSwitchNetwork", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "WAIT_TO_LOAD_INSTANCE_DELAY", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "safepal", "setState", "metadata", "evm", "versions", "__name", "defineVersions", "buildProvider"]
4
+ "sourcesContent": ["import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\nexport { WALLET_ID } from './constants.js';\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { safepal as safepalInstance } from './utils.js';\n\nconst WAIT_TO_LOAD_INSTANCE_DELAY = 1000;\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n setTimeout(() => {\n if (safepalInstance()) {\n const [, setState] = context.state();\n setState('installed', true);\n console.debug('[safepal] instance detected.', context);\n }\n }, WAIT_TO_LOAD_INSTANCE_DELAY);\n })\n\n .config('metadata', metadata)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport { isEvmNamespace } from '@hub3js/evm';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'safepal';\nexport const metadata: ProviderMetadata = {\n name: 'SafePal',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/safepal/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa',\n brave:\n 'https://chrome.google.com/webstore/detail/safepal-extension-wallet/lgmpcpglpngdoalbgeoldeajfclnhafa',\n firefox:\n 'https://addons.mozilla.org/en-US/firefox/addon/safepal-extension-wallet',\n homepage: 'https://www.safepal.com/download',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n isChainSupported: isEvmNamespace,\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const ethProvider = provider.get(EVM_NAMESPACE);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');\n if (!!ethProvider) {\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n }\n return signers;\n}\n", "import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\nimport type { InstanceMap } from '@hub3js/std/types';\n\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\nimport { isAddress as isEvmAddress } from 'ethers';\n\nexport type ProviderObject = {\n [EVM_NAMESPACE]: EvmProviderApi;\n};\nexport type Provider = InstanceMap<ProviderObject>;\nexport function safepal(): Provider | null {\n const { safepalProvider: safePalEvm } = window;\n if (!safePalEvm) {\n return null;\n }\n const instances = new Map();\n if (safePalEvm) {\n instances.set(EVM_NAMESPACE, safePalEvm);\n }\n\n return instances;\n}\n\nexport function evmSafepal(): EvmProviderApi {\n const instances = safepal();\n const evmInstance = instances?.get(EVM_NAMESPACE);\n if (!evmInstance) {\n throw new Error(\n 'Safepal not injected or EVM not enabled. Please check your wallet.'\n );\n }\n return evmInstance;\n}\nexport function getInstanceOrThrow(): Provider {\n const instances = safepal();\n\n if (!instances) {\n throw new Error('Trust Wallet is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n/**\n * Return true if address is a valid EVM address.\n * Accepts:\n * - all-lowercase or all-uppercase 0x-prefixed hex (non-checksummed - allowed)\n * - checksummed (mixed-case according to EIP-55)\n */\nexport function isValidEvmAddress(address: string): boolean {\n // Pick wallet address.\n const walletAddress = address.split(':')[2];\n\n return isEvmAddress(walletAddress);\n}\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport {\n connectAndUpdateStateForMultiNetworks,\n intoConnecting,\n intoConnectionFinished,\n standardizeAndThrowError,\n} from '@hub3js/std/operators';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmSafepal, isValidEvmAddress } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(evmSafepal)\n .build();\n\n/**\n * Important: Keep this implementation in sync with wallets/core/src/namespaces/evm/builders\n */\nconst connect = new ActionBuilder<EvmActions, 'connect'>('connect')\n .action(actions.connect(evmSafepal))\n .before(changeAccountSubscriber)\n .before(intoConnecting)\n /*\n * Validate all accounts are valid EVM addresses\n * Sometimes wallets may return non-EVM addresses - this check prevents that\n */\n .and((_, args) => {\n if (args.accounts.some((account: string) => !isValidEvmAddress(account))) {\n throw new Error('Non valid EVM address returned from wallet');\n }\n\n return args;\n })\n .and(connectAndUpdateStateForMultiNetworks)\n .after(intoConnectionFinished)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmSafepal))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canSwitchNetwork)\n .action(getChainId)\n .build();\n\nexport { evm };\n"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "ProviderBuilder", "isEvmNamespace", "EVM_NAMESPACE", "DefaultSignerFactory", "TxType", "getSigners", "provider", "ethProvider", "EVM_NAMESPACE", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "TxType", "__name", "EVM_NAMESPACE", "isEvmAddress", "safepal", "safePalEvm", "instances", "EVM_NAMESPACE", "__name", "evmSafepal", "evmInstance", "getInstanceOrThrow", "isValidEvmAddress", "address", "walletAddress", "isEvmAddress", "WALLET_ID", "metadata", "isEvmNamespace", "getSigners", "getInstanceOrThrow", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "commonBuilders", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "builders", "evmSafepal", "connect", "ActionBuilder", "actions", "intoConnecting", "_", "args", "account", "isValidEvmAddress", "connectAndUpdateStateForMultiNetworks", "intoConnectionFinished", "standardizeAndThrowError", "disconnect", "canSwitchNetwork", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "WAIT_TO_LOAD_INSTANCE_DELAY", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "safepal", "setState", "metadata", "evm", "versions", "__name", "defineVersions", "buildProvider"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAMxB"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAQxB"}
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';
2
- export type Provider = Record<string, any>;
2
+ import type { InstanceMap } from '@hub3js/std/types';
3
+ import { EVM_NAMESPACE } from '@hub3js/namespaces';
4
+ export type ProviderObject = {
5
+ [EVM_NAMESPACE]: EvmProviderApi;
6
+ };
7
+ export type Provider = InstanceMap<ProviderObject>;
3
8
  export declare function safepal(): Provider | null;
4
9
  export declare function evmSafepal(): EvmProviderApi;
5
10
  export declare function getInstanceOrThrow(): Provider;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAMjE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C,wBAAgB,OAAO,IAAI,QAAQ,GAAG,IAAI,CAWzC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAS3C;AACD,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AACD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AACnD,wBAAgB,OAAO,IAAI,QAAQ,GAAG,IAAI,CAWzC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAS3C;AACD,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AACD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-safepal",
3
- "version": "0.64.1-next.2",
3
+ "version": "0.64.1-next.4",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -21,14 +21,14 @@
21
21
  "lint": "eslint \"**/*.{ts,tsx}\""
22
22
  },
23
23
  "dependencies": {
24
- "@hub3js/core": "^0.61.1",
25
- "@hub3js/evm": "^0.3.3",
26
- "@hub3js/namespaces": "^0.2.5",
27
- "@hub3js/std": "^0.2.3",
28
- "@rango-dev/signer-evm": "^0.45.0",
24
+ "@hub3js/core": "^0.62.0",
25
+ "@hub3js/evm": "^0.5.0",
26
+ "@hub3js/namespaces": "^0.4.0",
27
+ "@hub3js/std": "^0.4.0",
28
+ "@rango-dev/signer-evm": "^0.45.1-next.1",
29
29
  "@rango-dev/signer-solana": "^0.49.0",
30
- "@rango-dev/wallets-core": "^0.61.0",
31
- "@rango-dev/wallets-shared": "^0.62.1-next.2",
30
+ "@rango-dev/wallets-core": "^0.61.1-next.1",
31
+ "ethers": "^6.13.2",
32
32
  "rango-types": "^0.5.0"
33
33
  },
34
34
  "publishConfig": {
package/src/mod.ts CHANGED
@@ -6,3 +6,4 @@ const versions = () =>
6
6
  defineVersions().version('1.0.0', buildProvider()).build();
7
7
 
8
8
  export { versions };
9
+ export { WALLET_ID } from './constants.js';
package/src/signer.ts CHANGED
@@ -2,15 +2,16 @@ import type { Provider } from './utils.js';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
 
4
4
  import { EVM_NAMESPACE } from '@hub3js/namespaces';
5
- import { getNetworkInstance } from '@rango-dev/wallets-shared';
6
5
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
7
6
 
8
7
  export default async function getSigners(
9
8
  provider: Provider
10
9
  ): Promise<SignerFactory> {
11
- const ethProvider = getNetworkInstance(provider, EVM_NAMESPACE);
10
+ const ethProvider = provider.get(EVM_NAMESPACE);
12
11
  const signers = new DefaultSignerFactory();
13
12
  const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');
14
- signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));
13
+ if (!!ethProvider) {
14
+ signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));
15
+ }
15
16
  return signers;
16
17
  }
package/src/utils.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';
2
+ import type { InstanceMap } from '@hub3js/std/types';
2
3
 
3
4
  import { EVM_NAMESPACE } from '@hub3js/namespaces';
4
- import { isEvmAddress } from '@rango-dev/wallets-shared';
5
+ import { isAddress as isEvmAddress } from 'ethers';
5
6
 
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- export type Provider = Record<string, any>;
7
+ export type ProviderObject = {
8
+ [EVM_NAMESPACE]: EvmProviderApi;
9
+ };
10
+ export type Provider = InstanceMap<ProviderObject>;
8
11
  export function safepal(): Provider | null {
9
12
  const { safepalProvider: safePalEvm } = window;
10
13
  if (!safePalEvm) {
@@ -26,7 +29,7 @@ export function evmSafepal(): EvmProviderApi {
26
29
  'Safepal not injected or EVM not enabled. Please check your wallet.'
27
30
  );
28
31
  }
29
- return evmInstance as EvmProviderApi;
32
+ return evmInstance;
30
33
  }
31
34
  export function getInstanceOrThrow(): Provider {
32
35
  const instances = safepal();