@rango-dev/provider-xverse 0.7.1-next.1 → 0.7.1-next.2

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.js CHANGED
@@ -1,2 +1,2 @@
1
- var I=Object.defineProperty;var t=(r,e)=>I(r,"name",{value:e,configurable:!0});import{defineVersions as z}from"@hub3js/core/utils";import{ProviderBuilder as Y}from"@hub3js/core";import{Networks as R}from"@rango-dev/wallets-shared";import{LegacyNetworks as S}from"@rango-dev/wallets-core/legacy";import{getNetworkInstance as B}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as _,TransactionType as N}from"rango-types";import{Networks as T}from"@rango-dev/wallets-shared";import{SignerError as C}from"rango-types";var i=class{static{t(this,"BTCSigner")}provider;constructor(e){this.provider=e}async signMessage(){throw C.UnimplementedError("signMessage")}async signAndSendTx(e){let{asset:o,psbt:n}=e;if(!n)throw new Error("No PSBT found to sign. Ensure a valid PSBT is provided.");if(o.blockchain!==T.BTC)throw new Error(`Signing ${o.blockchain} transaction is not implemented by the signer.`);let u={};n.inputsToSign.forEach(({address:b,signingIndexes:x})=>{u[b]=x});let s=await this.provider.request("signPsbt",{psbt:n.unsignedPsbtBase64,signInputs:u,broadcast:!0});if(s?.error)throw new Error(s.error.message||"Error during transaction sign");if(!s?.result?.txid)throw new Error("Transaction not found!");return{hash:s.result.txid}}};async function p(r){let e=B(r,S.BTC),o=new _;return o.registerSigner(N.TRANSFER,new i(e)),o}t(p,"getSigners");import{LegacyNetworks as l}from"@rango-dev/wallets-core/legacy";function a(){let{XverseProviders:r}=window;if(!r)return null;let e=new Map;return r.BitcoinProvider&&e.set(l.BTC,r.BitcoinProvider),e}t(a,"xverse");function f(){let r=a();if(!r)throw new Error("Xverse is not injected. Please check your wallet.");return r}t(f,"getInstanceOrThrow");function c(){let e=a()?.get(l.BTC);if(!e)throw new Error("Xverse not injected. Please check your wallet.");return e}t(c,"bitcoinXverse");async function g(){let e=await c().request("wallet_connect",{addresses:["payment"],network:"Mainnet"});if(e.error?.message)throw new Error(e.error.message);return e}t(g,"getBitcoinAccounts");var v=1e3,w=-32002,m="xverse",h={name:"xverse",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xverse/icon.svg",extensions:{chrome:"https://chromewebstore.google.com/detail/idnnbdplmphpflfnlkomgpfbpcgelopg",homepage:"https://www.xverse.app/"},properties:[{name:"namespaces",value:{selection:"single",data:[{label:"BTC",value:"UTXO",id:"BTC",getSupportedChains:r=>r.filter(e=>e.name===R.BTC)}]}},{name:"signers",value:{getSigners:async()=>p(f())}}]};import{NamespaceBuilder as U}from"@hub3js/core";import*as E from"@hub3js/std/builders";import{standardizeAndThrowError as V}from"@hub3js/std/operators";import{CAIP_BITCOIN_CHAIN_ID as j,utils as q}from"@rango-dev/wallets-core/namespaces/utxo";import{builders as F}from"@rango-dev/wallets-core/namespaces/utxo";import{ActionBuilder as k}from"@hub3js/core";import{ChangeAccountSubscriberBuilder as D}from"@hub3js/std/hooks";import{CAIP_BITCOIN_CHAIN_ID as X,utils as L}from"@rango-dev/wallets-core/namespaces/utxo";var M=t(r=>new D().getInstance(r).onSwitchAccount(e=>{e.payload?.addresses?.length||e.preventDefault()}).format(async(e,o)=>L.formatAccountsToCAIP(o.addresses.filter(n=>n.purpose==="payment").map(n=>n.address),X)).addEventListener((e,o)=>e.addListener("accountChange",o)).removeEventListener((e,o)=>{}),"changeAccountSubscriber");function O(r){return new k("canEagerConnect").action(async()=>{let e=r();try{let o=await e.request("getAddresses",{purposes:["payment"]});return o.error?.code===w?!1:!!o.result?.addresses?.length}catch{return!1}})}t(O,"canEagerConnect");var d={changeAccountSubscriber:M,canEagerConnect:O};var[W,P]=d.changeAccountSubscriber(c).build(),G=d.canEagerConnect(c).build(),H=F.connect().action(async function(){let r=await g();if(r.result?.addresses?.length===0)throw new Error("Couldn't find any address!");return q.formatAccountsToCAIP(r.result.addresses.map(e=>e.address),j)}).before(W).or(P).or(V).build(),J=E.disconnect().after(P).build(),A=new U("UTXO",m).action(H).action(J).action(G).build();var y=t(()=>new Y(m).init(function(r){let[,e]=r.state();setTimeout(()=>{a()&&(e("installed",!0),console.debug("[xverse] instance detected.",r))},v)}).config("metadata",h).add("utxo",A).build(),"buildProvider");var Le=t(()=>z().version("1.0.0",y()).build(),"versions");export{Le as versions};
1
+ var I=Object.defineProperty;var t=(r,e)=>I(r,"name",{value:e,configurable:!0});import{defineVersions as z}from"@hub3js/core/utils";import{ProviderBuilder as Y}from"@hub3js/core";import{Networks as N}from"@rango-dev/wallets-shared";import{UTXO_NAMESPACE as C}from"@hub3js/namespaces";import{getNetworkInstance as _}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as B,TransactionType as R}from"rango-types";import{Networks as T}from"@rango-dev/wallets-shared";import{SignerError as S}from"rango-types";var i=class{static{t(this,"BTCSigner")}provider;constructor(e){this.provider=e}async signMessage(){throw S.UnimplementedError("signMessage")}async signAndSendTx(e){let{asset:o,psbt:n}=e;if(!n)throw new Error("No PSBT found to sign. Ensure a valid PSBT is provided.");if(o.blockchain!==T.BTC)throw new Error(`Signing ${o.blockchain} transaction is not implemented by the signer.`);let u={};n.inputsToSign.forEach(({address:x,signingIndexes:y})=>{u[x]=y});let s=await this.provider.request("signPsbt",{psbt:n.unsignedPsbtBase64,signInputs:u,broadcast:!0});if(s?.error)throw new Error(s.error.message||"Error during transaction sign");if(!s?.result?.txid)throw new Error("Transaction not found!");return{hash:s.result.txid}}};async function p(r){let e=_(r,C),o=new B;return o.registerSigner(R.TRANSFER,new i(e)),o}t(p,"getSigners");import{UTXO_NAMESPACE as l}from"@hub3js/namespaces";function a(){let{XverseProviders:r}=window;if(!r)return null;let e=new Map;return r.BitcoinProvider&&e.set(l,r.BitcoinProvider),e}t(a,"xverse");function f(){let r=a();if(!r)throw new Error("Xverse is not injected. Please check your wallet.");return r}t(f,"getInstanceOrThrow");function c(){let e=a()?.get(l);if(!e)throw new Error("Xverse not injected. Please check your wallet.");return e}t(c,"bitcoinXverse");async function g(){let e=await c().request("wallet_connect",{addresses:["payment"],network:"Mainnet"});if(e.error?.message)throw new Error(e.error.message);return e}t(g,"getBitcoinAccounts");var v=1e3,E=-32002,m="xverse",h={name:"xverse",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xverse/icon.svg",extensions:{chrome:"https://chromewebstore.google.com/detail/idnnbdplmphpflfnlkomgpfbpcgelopg",homepage:"https://www.xverse.app/"},properties:[{name:"namespaces",value:{selection:"single",data:[{label:"BTC",value:"UTXO",id:"BTC",getSupportedChains:r=>r.filter(e=>e.name===N.BTC)}]}},{name:"signers",value:{getSigners:async()=>p(f())}}]};import{NamespaceBuilder as U}from"@hub3js/core";import*as w from"@hub3js/std/builders";import{standardizeAndThrowError as V}from"@hub3js/std/operators";import{CAIP_BITCOIN_CHAIN_ID as j,utils as q}from"@rango-dev/wallets-core/namespaces/utxo";import{builders as F}from"@rango-dev/wallets-core/namespaces/utxo";import{ActionBuilder as X}from"@hub3js/core";import{ChangeAccountSubscriberBuilder as D}from"@hub3js/std/hooks";import{CAIP_BITCOIN_CHAIN_ID as M,utils as O}from"@rango-dev/wallets-core/namespaces/utxo";var k=t(r=>new D().getInstance(r).onSwitchAccount(e=>{e.payload?.addresses?.length||e.preventDefault()}).format(async(e,o)=>O.formatAccountsToCAIP(o.addresses.filter(n=>n.purpose==="payment").map(n=>n.address),M)).addEventListener((e,o)=>e.addListener("accountChange",o)).removeEventListener((e,o)=>{}),"changeAccountSubscriber");function L(r){return new X("canEagerConnect").action(async()=>{let e=r();try{let o=await e.request("getAddresses",{purposes:["payment"]});return o.error?.code===E?!1:!!o.result?.addresses?.length}catch{return!1}})}t(L,"canEagerConnect");var d={changeAccountSubscriber:k,canEagerConnect:L};var[W,P]=d.changeAccountSubscriber(c).build(),G=d.canEagerConnect(c).build(),H=F.connect().action(async function(){let r=await g();if(r.result?.addresses?.length===0)throw new Error("Couldn't find any address!");return q.formatAccountsToCAIP(r.result.addresses.map(e=>e.address),j)}).before(W).or(P).or(V).build(),J=w.disconnect().after(P).build(),A=new U("UTXO",m).action(H).action(J).action(G).build();var b=t(()=>new Y(m).init(function(r){let[,e]=r.state();setTimeout(()=>{a()&&(e("installed",!0),console.debug("[xverse] instance detected.",r))},v)}).config("metadata",h).add("utxo",A).build(),"buildProvider");var Oe=t(()=>z().version("1.0.0",b()).build(),"versions");export{Oe 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/signers/utxoSigner.ts", "../src/utils.ts", "../src/namespaces/utxo.ts", "../src/builders/utxo.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, XVERSE_INJECTION_DELAY_MS } from './constants.js';\nimport { utxo } from './namespaces/utxo.js';\nimport { xverse as unisatInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n // TODO: We should remove this after we solved not initiating issue.\n setTimeout(() => {\n if (unisatInstance()) {\n setState('installed', true);\n console.debug('[xverse] instance detected.', context);\n }\n }, XVERSE_INJECTION_DELAY_MS);\n })\n .config('metadata', metadata)\n .add('utxo', utxo)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\nimport type { BlockchainMeta, TransferBlockchainMeta } from 'rango-types';\n\nimport { Networks } from '@rango-dev/wallets-shared';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const XVERSE_INJECTION_DELAY_MS = 1000;\nexport const XVERSE_ACCESS_DENIED_ERROR_CODE = -32002;\nexport const WALLET_ID = 'xverse';\n\nexport const metadata: ProviderMetadata = {\n name: 'xverse',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xverse/icon.svg',\n extensions: {\n chrome:\n 'https://chromewebstore.google.com/detail/idnnbdplmphpflfnlkomgpfbpcgelopg',\n homepage: 'https://www.xverse.app/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'single',\n data: [\n {\n label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './types.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport { getNetworkInstance } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { BTCSigner } from './signers/utxoSigner.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const bitcoinInstance = getNetworkInstance(provider, Networks.BTC);\n\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.TRANSFER, new BTCSigner(bitcoinInstance));\n return signers;\n}\n", "import type { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';\nimport type { GenericSigner, Transfer } from 'rango-types';\n\nimport { Networks } from '@rango-dev/wallets-shared';\nimport { SignerError } from 'rango-types';\n\nexport class BTCSigner implements GenericSigner<Transfer> {\n private provider: ProviderAPI;\n constructor(provider: ProviderAPI) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { asset, psbt } = tx;\n if (!psbt) {\n throw new Error(\n 'No PSBT found to sign. Ensure a valid PSBT is provided.'\n );\n }\n\n if (asset.blockchain !== Networks.BTC) {\n throw new Error(\n `Signing ${asset.blockchain} transaction is not implemented by the signer.`\n );\n }\n\n // 2. Build sign inputs\n const signInputs: Record<string, number[]> = {};\n\n psbt.inputsToSign.forEach(({ address, signingIndexes }) => {\n signInputs[address] = signingIndexes;\n });\n\n // 3. Sign (& broadcast)\n const signPsbtResult = await this.provider.request('signPsbt', {\n psbt: psbt.unsignedPsbtBase64,\n signInputs,\n broadcast: true,\n });\n\n if (signPsbtResult?.error) {\n throw new Error(\n signPsbtResult.error.message || 'Error during transaction sign'\n );\n }\n if (!signPsbtResult?.result?.txid) {\n throw new Error('Transaction not found!');\n }\n\n return { hash: signPsbtResult.result.txid };\n }\n}\n", "import type { Provider, XVerseResponse } from './types.js';\nimport type { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport function xverse(): Provider | null {\n const { XverseProviders } = window;\n\n if (!XverseProviders) {\n return null;\n }\n\n const instances: Provider = new Map();\n\n if (XverseProviders.BitcoinProvider) {\n instances.set(LegacyNetworks.BTC, XverseProviders.BitcoinProvider);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = xverse();\n\n if (!instances) {\n throw new Error('Xverse is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function bitcoinXverse(): ProviderAPI {\n const instances = xverse();\n const bitcoinInstance = instances?.get(LegacyNetworks.BTC);\n\n if (!bitcoinInstance) {\n throw new Error('Xverse not injected. Please check your wallet.');\n }\n\n return bitcoinInstance;\n}\nexport async function getBitcoinAccounts(): Promise<XVerseResponse> {\n const instance = bitcoinXverse();\n const requestResult = await instance.request('wallet_connect', {\n addresses: ['payment'],\n network: 'Mainnet',\n });\n\n if (requestResult.error?.message) {\n throw new Error(requestResult.error.message);\n }\n\n return requestResult;\n}\n", "import { NamespaceBuilder } from '@hub3js/core';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\nimport { builders } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { utxoBuilders } from '../builders/utxo.js';\nimport { WALLET_ID } from '../constants.js';\nimport { bitcoinXverse, getBitcoinAccounts } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = utxoBuilders\n .changeAccountSubscriber(bitcoinXverse)\n .build();\n\nconst canEagerConnect = utxoBuilders.canEagerConnect(bitcoinXverse).build();\n\nconst connect = builders\n .connect()\n .action(async function () {\n const accountsResult = await getBitcoinAccounts();\n\n if (accountsResult.result?.addresses?.length === 0) {\n throw new Error(\"Couldn't find any address!\");\n }\n return utils.formatAccountsToCAIP(\n accountsResult.result.addresses.map((address) => address.address),\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<UtxoActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst utxo = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { utxo };\n", "import type { XVerseEvent } from '../types.js';\n\nimport { ActionBuilder } from '@hub3js/core';\nimport { ChangeAccountSubscriberBuilder } from '@hub3js/std/hooks';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n type ProviderAPI,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { XVERSE_ACCESS_DENIED_ERROR_CODE } from '../constants.js';\n\nexport const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>\n new ChangeAccountSubscriberBuilder<XVerseEvent, ProviderAPI, UtxoActions>()\n .getInstance(getInstance)\n /*\n * Xverse wallet may call the `changeAccount` event with `empty` value\n * but we shouldn't disconnect in this case.\n */\n .onSwitchAccount((event) => {\n if (!event.payload?.addresses?.length) {\n event.preventDefault();\n }\n })\n .format(async (_, event) => {\n return utils.formatAccountsToCAIP(\n event.addresses\n .filter((address) => address.purpose === 'payment')\n .map((address) => address.address),\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .addEventListener((instance, callback) => {\n return instance.addListener('accountChange', callback);\n })\n .removeEventListener((_, __) => {\n // it will be removed by the main class\n });\n\nfunction canEagerConnect(getInstance: () => ProviderAPI) {\n return new ActionBuilder<UtxoActions, 'canEagerConnect'>(\n 'canEagerConnect'\n ).action(async () => {\n const instance = getInstance();\n try {\n const addressesResponse = await instance.request('getAddresses', {\n purposes: ['payment'],\n });\n if (addressesResponse.error?.code === XVERSE_ACCESS_DENIED_ERROR_CODE) {\n return false;\n }\n return !!addressesResponse.result?.addresses?.length;\n } catch {\n return false;\n }\n });\n}\n\nexport const utxoBuilders = { changeAccountSubscriber, canEagerConnect };\n"],
5
- "mappings": "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",
6
- "names": ["defineVersions", "ProviderBuilder", "Networks", "Networks", "getNetworkInstance", "DefaultSignerFactory", "TxType", "Networks", "SignerError", "BTCSigner", "__name", "provider", "SignerError", "tx", "asset", "psbt", "Networks", "signInputs", "address", "signingIndexes", "signPsbtResult", "getSigners", "provider", "bitcoinInstance", "getNetworkInstance", "Networks", "signers", "DefaultSignerFactory", "TxType", "BTCSigner", "__name", "LegacyNetworks", "xverse", "XverseProviders", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "bitcoinXverse", "bitcoinInstance", "getBitcoinAccounts", "requestResult", "XVERSE_INJECTION_DELAY_MS", "XVERSE_ACCESS_DENIED_ERROR_CODE", "WALLET_ID", "metadata", "allBlockchains", "chain", "Networks", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "CAIP_BITCOIN_CHAIN_ID", "utils", "builders", "ActionBuilder", "ChangeAccountSubscriberBuilder", "CAIP_BITCOIN_CHAIN_ID", "utils", "changeAccountSubscriber", "__name", "getInstance", "ChangeAccountSubscriberBuilder", "event", "_", "utils", "address", "CAIP_BITCOIN_CHAIN_ID", "instance", "callback", "__", "canEagerConnect", "ActionBuilder", "addressesResponse", "XVERSE_ACCESS_DENIED_ERROR_CODE", "utxoBuilders", "changeAccountSubscriber", "changeAccountCleanup", "utxoBuilders", "bitcoinXverse", "canEagerConnect", "connect", "builders", "accountsResult", "getBitcoinAccounts", "utils", "address", "CAIP_BITCOIN_CHAIN_ID", "standardizeAndThrowError", "disconnect", "utxo", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "xverse", "XVERSE_INJECTION_DELAY_MS", "metadata", "utxo", "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 };\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID, XVERSE_INJECTION_DELAY_MS } from './constants.js';\nimport { utxo } from './namespaces/utxo.js';\nimport { xverse as unisatInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n // TODO: We should remove this after we solved not initiating issue.\n setTimeout(() => {\n if (unisatInstance()) {\n setState('installed', true);\n console.debug('[xverse] instance detected.', context);\n }\n }, XVERSE_INJECTION_DELAY_MS);\n })\n .config('metadata', metadata)\n .add('utxo', utxo)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\nimport type { BlockchainMeta, TransferBlockchainMeta } from 'rango-types';\n\nimport { Networks } from '@rango-dev/wallets-shared';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const XVERSE_INJECTION_DELAY_MS = 1000;\nexport const XVERSE_ACCESS_DENIED_ERROR_CODE = -32002;\nexport const WALLET_ID = 'xverse';\n\nexport const metadata: ProviderMetadata = {\n name: 'xverse',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xverse/icon.svg',\n extensions: {\n chrome:\n 'https://chromewebstore.google.com/detail/idnnbdplmphpflfnlkomgpfbpcgelopg',\n homepage: 'https://www.xverse.app/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'single',\n data: [\n {\n label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './types.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { UTXO_NAMESPACE } from '@hub3js/namespaces';\nimport { getNetworkInstance } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { BTCSigner } from './signers/utxoSigner.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const bitcoinInstance = getNetworkInstance(provider, UTXO_NAMESPACE);\n\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.TRANSFER, new BTCSigner(bitcoinInstance));\n return signers;\n}\n", "import type { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';\nimport type { GenericSigner, Transfer } from 'rango-types';\n\nimport { Networks } from '@rango-dev/wallets-shared';\nimport { SignerError } from 'rango-types';\n\nexport class BTCSigner implements GenericSigner<Transfer> {\n private provider: ProviderAPI;\n constructor(provider: ProviderAPI) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { asset, psbt } = tx;\n if (!psbt) {\n throw new Error(\n 'No PSBT found to sign. Ensure a valid PSBT is provided.'\n );\n }\n\n if (asset.blockchain !== Networks.BTC) {\n throw new Error(\n `Signing ${asset.blockchain} transaction is not implemented by the signer.`\n );\n }\n\n // 2. Build sign inputs\n const signInputs: Record<string, number[]> = {};\n\n psbt.inputsToSign.forEach(({ address, signingIndexes }) => {\n signInputs[address] = signingIndexes;\n });\n\n // 3. Sign (& broadcast)\n const signPsbtResult = await this.provider.request('signPsbt', {\n psbt: psbt.unsignedPsbtBase64,\n signInputs,\n broadcast: true,\n });\n\n if (signPsbtResult?.error) {\n throw new Error(\n signPsbtResult.error.message || 'Error during transaction sign'\n );\n }\n if (!signPsbtResult?.result?.txid) {\n throw new Error('Transaction not found!');\n }\n\n return { hash: signPsbtResult.result.txid };\n }\n}\n", "import type { Provider, XVerseResponse } from './types.js';\nimport type { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { UTXO_NAMESPACE } from '@hub3js/namespaces';\n\nexport function xverse(): Provider | null {\n const { XverseProviders } = window;\n\n if (!XverseProviders) {\n return null;\n }\n\n const instances: Provider = new Map();\n\n if (XverseProviders.BitcoinProvider) {\n instances.set(UTXO_NAMESPACE, XverseProviders.BitcoinProvider);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = xverse();\n\n if (!instances) {\n throw new Error('Xverse is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function bitcoinXverse(): ProviderAPI {\n const instances = xverse();\n const bitcoinInstance = instances?.get(UTXO_NAMESPACE);\n\n if (!bitcoinInstance) {\n throw new Error('Xverse not injected. Please check your wallet.');\n }\n\n return bitcoinInstance;\n}\nexport async function getBitcoinAccounts(): Promise<XVerseResponse> {\n const instance = bitcoinXverse();\n const requestResult = await instance.request('wallet_connect', {\n addresses: ['payment'],\n network: 'Mainnet',\n });\n\n if (requestResult.error?.message) {\n throw new Error(requestResult.error.message);\n }\n\n return requestResult;\n}\n", "import { NamespaceBuilder } from '@hub3js/core';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\nimport { builders } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { utxoBuilders } from '../builders/utxo.js';\nimport { WALLET_ID } from '../constants.js';\nimport { bitcoinXverse, getBitcoinAccounts } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = utxoBuilders\n .changeAccountSubscriber(bitcoinXverse)\n .build();\n\nconst canEagerConnect = utxoBuilders.canEagerConnect(bitcoinXverse).build();\n\nconst connect = builders\n .connect()\n .action(async function () {\n const accountsResult = await getBitcoinAccounts();\n\n if (accountsResult.result?.addresses?.length === 0) {\n throw new Error(\"Couldn't find any address!\");\n }\n return utils.formatAccountsToCAIP(\n accountsResult.result.addresses.map((address) => address.address),\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<UtxoActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst utxo = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { utxo };\n", "import type { XVerseEvent } from '../types.js';\n\nimport { ActionBuilder } from '@hub3js/core';\nimport { ChangeAccountSubscriberBuilder } from '@hub3js/std/hooks';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n type ProviderAPI,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { XVERSE_ACCESS_DENIED_ERROR_CODE } from '../constants.js';\n\nexport const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>\n new ChangeAccountSubscriberBuilder<XVerseEvent, ProviderAPI, UtxoActions>()\n .getInstance(getInstance)\n /*\n * Xverse wallet may call the `changeAccount` event with `empty` value\n * but we shouldn't disconnect in this case.\n */\n .onSwitchAccount((event) => {\n if (!event.payload?.addresses?.length) {\n event.preventDefault();\n }\n })\n .format(async (_, event) => {\n return utils.formatAccountsToCAIP(\n event.addresses\n .filter((address) => address.purpose === 'payment')\n .map((address) => address.address),\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .addEventListener((instance, callback) => {\n return instance.addListener('accountChange', callback);\n })\n .removeEventListener((_, __) => {\n // it will be removed by the main class\n });\n\nfunction canEagerConnect(getInstance: () => ProviderAPI) {\n return new ActionBuilder<UtxoActions, 'canEagerConnect'>(\n 'canEagerConnect'\n ).action(async () => {\n const instance = getInstance();\n try {\n const addressesResponse = await instance.request('getAddresses', {\n purposes: ['payment'],\n });\n if (addressesResponse.error?.code === XVERSE_ACCESS_DENIED_ERROR_CODE) {\n return false;\n }\n return !!addressesResponse.result?.addresses?.length;\n } catch {\n return false;\n }\n });\n}\n\nexport const utxoBuilders = { changeAccountSubscriber, canEagerConnect };\n"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "ProviderBuilder", "Networks", "UTXO_NAMESPACE", "getNetworkInstance", "DefaultSignerFactory", "TxType", "Networks", "SignerError", "BTCSigner", "__name", "provider", "SignerError", "tx", "asset", "psbt", "Networks", "signInputs", "address", "signingIndexes", "signPsbtResult", "getSigners", "provider", "bitcoinInstance", "getNetworkInstance", "UTXO_NAMESPACE", "signers", "DefaultSignerFactory", "TxType", "BTCSigner", "__name", "UTXO_NAMESPACE", "xverse", "XverseProviders", "instances", "UTXO_NAMESPACE", "__name", "getInstanceOrThrow", "bitcoinXverse", "bitcoinInstance", "getBitcoinAccounts", "requestResult", "XVERSE_INJECTION_DELAY_MS", "XVERSE_ACCESS_DENIED_ERROR_CODE", "WALLET_ID", "metadata", "allBlockchains", "chain", "Networks", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "CAIP_BITCOIN_CHAIN_ID", "utils", "builders", "ActionBuilder", "ChangeAccountSubscriberBuilder", "CAIP_BITCOIN_CHAIN_ID", "utils", "changeAccountSubscriber", "__name", "getInstance", "ChangeAccountSubscriberBuilder", "event", "_", "utils", "address", "CAIP_BITCOIN_CHAIN_ID", "instance", "callback", "__", "canEagerConnect", "ActionBuilder", "addressesResponse", "XVERSE_ACCESS_DENIED_ERROR_CODE", "utxoBuilders", "changeAccountSubscriber", "changeAccountCleanup", "utxoBuilders", "bitcoinXverse", "canEagerConnect", "connect", "builders", "accountsResult", "getBitcoinAccounts", "utils", "address", "CAIP_BITCOIN_CHAIN_ID", "standardizeAndThrowError", "disconnect", "utxo", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "xverse", "XVERSE_INJECTION_DELAY_MS", "metadata", "utxo", "versions", "__name", "defineVersions", "buildProvider"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/signers/utxoSigner.ts":{"bytes":1572,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":673,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signers/utxoSigner.ts","kind":"import-statement","original":"./signers/utxoSigner.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":1340,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/constants.ts":{"bytes":1311,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/builders/utxo.ts":{"bytes":1896,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/hooks","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/utxo.ts":{"bytes":1490,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"src/builders/utxo.ts","kind":"import-statement","original":"../builders/utxo.js"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/provider.ts":{"bytes":755,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/utxo.ts","kind":"import-statement","original":"./namespaces/utxo.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":209,"imports":[{"path":"@hub3js/core/utils","kind":"import-statement","external":true},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":15538},"dist/mod.js":{"imports":[{"path":"@hub3js/core/utils","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/hooks","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":110},"src/provider.ts":{"bytesInOutput":257},"src/constants.ts":{"bytesInOutput":529},"src/signer.ts":{"bytesInOutput":309},"src/signers/utxoSigner.ts":{"bytesInOutput":818},"src/utils.ts":{"bytesInOutput":673},"src/namespaces/utxo.ts":{"bytesInOutput":714},"src/builders/utxo.ts":{"bytesInOutput":822}},"bytes":4367}}}
1
+ {"inputs":{"src/signers/utxoSigner.ts":{"bytes":1572,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":651,"imports":[{"path":"@hub3js/namespaces","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signers/utxoSigner.ts","kind":"import-statement","original":"./signers/utxoSigner.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":1320,"imports":[{"path":"@hub3js/namespaces","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/constants.ts":{"bytes":1311,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/builders/utxo.ts":{"bytes":1896,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/hooks","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/utxo.ts":{"bytes":1490,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"src/builders/utxo.ts","kind":"import-statement","original":"../builders/utxo.js"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/provider.ts":{"bytes":755,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/utxo.ts","kind":"import-statement","original":"./namespaces/utxo.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":209,"imports":[{"path":"@hub3js/core/utils","kind":"import-statement","external":true},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":15493},"dist/mod.js":{"imports":[{"path":"@hub3js/core/utils","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@hub3js/namespaces","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@hub3js/namespaces","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/hooks","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":110},"src/provider.ts":{"bytesInOutput":257},"src/constants.ts":{"bytesInOutput":529},"src/signer.ts":{"bytesInOutput":293},"src/signers/utxoSigner.ts":{"bytesInOutput":818},"src/utils.ts":{"bytesInOutput":653},"src/namespaces/utxo.ts":{"bytesInOutput":714},"src/builders/utxo.ts":{"bytesInOutput":822}},"bytes":4331}}}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
1
+ import type { UTXO_NAMESPACE } from '@hub3js/namespaces';
2
2
  import type { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';
3
3
  type XVerseAddress = {
4
4
  address: string;
@@ -32,7 +32,7 @@ export type XVerseEvent = {
32
32
  type: 'accountChange';
33
33
  };
34
34
  export type ProviderObject = {
35
- [LegacyNetworks.BTC]: ProviderAPI;
35
+ [UTXO_NAMESPACE]: ProviderAPI;
36
36
  };
37
37
  export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
38
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,aAAa,EAAE,CAAC;QAE3B,OAAO,EAAE;YACP,OAAO,EAAE;gBAAE,IAAI,EAAE,SAAS,CAAA;aAAE,CAAC;YAC7B,KAAK,EAAE;gBAAE,IAAI,EAAE,SAAS,CAAA;aAAE,CAAC;YAC3B,MAAM,EAAE;gBAAE,IAAI,EAAE,SAAS,CAAA;aAAE,CAAC;SAC7B,CAAC;KACH,CAAC;CACH,CAAC;AACF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,aAAa,EAAE,CAAC;QAE3B,OAAO,EAAE;YACP,OAAO,EAAE;gBAAE,IAAI,EAAE,SAAS,CAAA;aAAE,CAAC;YAC7B,KAAK,EAAE;gBAAE,IAAI,EAAE,SAAS,CAAA;aAAE,CAAC;YAC3B,MAAM,EAAE;gBAAE,IAAI,EAAE,SAAS,CAAA;aAAE,CAAC;SAC7B,CAAC;KACH,CAAC;CACH,CAAC;AACF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-xverse",
3
- "version": "0.7.1-next.1",
3
+ "version": "0.7.1-next.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -22,9 +22,10 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@hub3js/core": "^0.61.0",
25
+ "@hub3js/namespaces": "^0.2.2",
25
26
  "@hub3js/std": "^0.2.0",
26
27
  "@rango-dev/wallets-core": "^0.60.1-next.1",
27
- "@rango-dev/wallets-shared": "^0.61.1-next.1",
28
+ "@rango-dev/wallets-shared": "^0.61.1-next.2",
28
29
  "rango-types": "^0.5.0"
29
30
  },
30
31
  "publishConfig": {
package/src/signer.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Provider } from './types.js';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
 
4
- import { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';
4
+ import { UTXO_NAMESPACE } from '@hub3js/namespaces';
5
5
  import { getNetworkInstance } from '@rango-dev/wallets-shared';
6
6
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
7
7
 
@@ -10,7 +10,7 @@ import { BTCSigner } from './signers/utxoSigner.js';
10
10
  export default async function getSigners(
11
11
  provider: Provider
12
12
  ): Promise<SignerFactory> {
13
- const bitcoinInstance = getNetworkInstance(provider, Networks.BTC);
13
+ const bitcoinInstance = getNetworkInstance(provider, UTXO_NAMESPACE);
14
14
 
15
15
  const signers = new DefaultSignerFactory();
16
16
  signers.registerSigner(TxType.TRANSFER, new BTCSigner(bitcoinInstance));
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
1
+ import type { UTXO_NAMESPACE } from '@hub3js/namespaces';
2
2
  import type { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';
3
3
 
4
4
  type XVerseAddress = {
@@ -29,7 +29,7 @@ export type XVerseEvent = {
29
29
  };
30
30
 
31
31
  export type ProviderObject = {
32
- [LegacyNetworks.BTC]: ProviderAPI;
32
+ [UTXO_NAMESPACE]: ProviderAPI;
33
33
  };
34
34
  export type Provider = Map<
35
35
  keyof ProviderObject,
package/src/utils.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Provider, XVerseResponse } from './types.js';
2
2
  import type { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';
3
3
 
4
- import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
4
+ import { UTXO_NAMESPACE } from '@hub3js/namespaces';
5
5
 
6
6
  export function xverse(): Provider | null {
7
7
  const { XverseProviders } = window;
@@ -13,7 +13,7 @@ export function xverse(): Provider | null {
13
13
  const instances: Provider = new Map();
14
14
 
15
15
  if (XverseProviders.BitcoinProvider) {
16
- instances.set(LegacyNetworks.BTC, XverseProviders.BitcoinProvider);
16
+ instances.set(UTXO_NAMESPACE, XverseProviders.BitcoinProvider);
17
17
  }
18
18
 
19
19
  return instances;
@@ -31,7 +31,7 @@ export function getInstanceOrThrow(): Provider {
31
31
 
32
32
  export function bitcoinXverse(): ProviderAPI {
33
33
  const instances = xverse();
34
- const bitcoinInstance = instances?.get(LegacyNetworks.BTC);
34
+ const bitcoinInstance = instances?.get(UTXO_NAMESPACE);
35
35
 
36
36
  if (!bitcoinInstance) {
37
37
  throw new Error('Xverse not injected. Please check your wallet.');