@rango-dev/provider-phantom 0.62.1-next.0 → 0.62.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.d.ts +1 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +1 -1
- package/dist/mod.js.map +4 -4
- package/dist/namespaces/sui.d.ts +1 -1
- package/dist/namespaces/sui.d.ts.map +1 -1
- package/dist/provider-phantom.build.json +1 -1
- package/dist/provider.d.ts +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +9 -8
- package/src/mod.ts +1 -5
- package/src/namespaces/sui.ts +2 -2
- package/src/signer.ts +1 -1
- package/src/utils.ts +1 -1
- package/dist/legacy/index.d.ts +0 -15
- package/dist/legacy/index.d.ts.map +0 -1
- package/src/legacy/index.ts +0 -175
package/dist/mod.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const versions: () => readonly [readonly ["
|
|
1
|
+
declare const versions: () => readonly [readonly ["1.0.0", import("@hub3js/core").Provider<Record<"solana", import("@hub3js/solana").SolanaActions> & Record<"evm", import("@hub3js/evm").EvmActions> & Record<"sui", import("@hub3js/sui").SuiActions>>]];
|
|
2
2
|
export { versions };
|
|
3
3
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,oOAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/mod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var B=Object.defineProperty;var r=(n,o)=>B(n,"name",{value:o,configurable:!0});var V=(n,o)=>()=>(n&&(o=n(n=0)),o);var z=(n,o)=>{for(var t in o)B(n,t,{get:o[t],enumerable:!0})};var k={};z(k,{BTCSigner:()=>P});import*as F from"@bitcoinerlab/secp256k1";import{Networks as $}from"@rango-dev/wallets-shared";import*as g from"bitcoinjs-lib";import{SignerError as G}from"rango-types";function Y(n){let o=atob(n),t=o.length,e=new Uint8Array(t);for(let a=0;a<t;a++)e[a]=o.charCodeAt(a);return e}var J,P,N=V(()=>{"use strict";J="https://go.getblock.io/f37bad28a991436483c0a3679a3acbee";r(Y,"base64ToUint8Array");P=class{static{r(this,"BTCSigner")}provider;constructor(o){this.provider=o}async signMessage(){throw G.UnimplementedError("signMessage")}async signAndSendTx(o){let{asset:t,psbt:e}=o;if(!e)throw new Error("No PSBT found to sign. Ensure a valid PSBT is provided.");if(t.blockchain!==$.BTC)throw new Error(`Signing ${t.blockchain} transaction is not implemented by the signer.`);g.initEccLib(F);let a=await this.provider.signPSBT(Y(e.unsignedPsbtBase64),{inputsToSign:e.inputsToSign}),i=g.Psbt.fromBuffer(Buffer.from(a));i.finalizeAllInputs();let w=i.extractTransaction().toHex(),u=await fetch(J,{method:"POST",body:JSON.stringify({method:"sendrawtransaction",params:[w]})});if(!u.ok){let c=await u.text();throw new Error(`Error broadcasting transaction: ${c}`)}let m=await u.json();if(!m.result)throw new Error(`Error broadcasting transaction. Error Code ${m.error.code}: ${m.error.message}`);return{hash:m.result}}}});import{defineVersions as Do}from"@hub3js/core/utils";import{ProviderBuilder as jo}from"@hub3js/core";import{LegacyNetworks as I}from"@rango-dev/wallets-core/legacy";import{isEvmBlockchain as Q,solanaBlockchain as X,TransactionType as Z}from"rango-types";import{getInstance as q}from"@hub3js/sui";import{LegacyNetworks as v}from"@rango-dev/wallets-core/legacy";import{dynamicImportWithRefinedError as A,getNetworkInstance as y}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as K,TransactionType as S}from"rango-types";async function T(n){let o=y(n,v.SOLANA),t=y(n,v.ETHEREUM),e=y(n,v.BTC),a=q(d),{DefaultEvmSigner:i}=await A(async()=>await import("@rango-dev/signer-evm")),{DefaultSolanaSigner:w}=await A(async()=>await import("@rango-dev/signer-solana")),{BTCSigner:u}=await A(async()=>await Promise.resolve().then(()=>(N(),k))),{DefaultSuiSigner:m}=await A(async()=>await import("@rango-dev/signer-sui")),c=new K;return c.registerSigner(S.SOLANA,new w(o)),c.registerSigner(S.EVM,new i(t)),c.registerSigner(S.TRANSFER,new u(e)),a&&c.registerSigner(S.SUI,new m(a)),c}r(T,"getSigners");import{LegacyNetworks as p}from"@rango-dev/wallets-core/legacy";function f(){let{phantom:n}=window;if(!n)return null;let{solana:o,ethereum:t,bitcoin:e,sui:a}=n,i=new Map;return t&&t.isPhantom&&i.set(p.ETHEREUM,t),o&&o.isPhantom&&i.set(p.SOLANA,o),e&&e.isPhantom&&i.set(p.BTC,e),a&&a.isPhantom&&i.set(p.SUI,a),i}r(f,"phantom");function C(){let n=f();if(!n)throw new Error("Phantom is not injected. Please check your wallet.");return n}r(C,"getInstanceOrThrow");function h(){let o=f()?.get(p.ETHEREUM);if(!o)throw new Error("Phantom not injected or EVM not enabled. Please check your wallet.");return o}r(h,"evmPhantom");function l(){let o=f()?.get(p.SOLANA);if(!o)throw new Error("Phantom not injected or Solana not enabled. Please check your wallet.");return o}r(l,"solanaPhantom");var oo=[I.ETHEREUM,I.POLYGON,I.BASE],s="phantom",d="Phantom",L={name:"Phantom",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa",homepage:"https://phantom.app/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:n=>n.filter(o=>Q(o)&&oo.includes(o.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:n=>X(n)},{label:"Sui",value:"Sui",id:"SUI",getSupportedChains:n=>n.filter(o=>o.type===Z.SUI)}]}},{name:"signers",value:{getSigners:async()=>T(C())}}]};import{NamespaceBuilder as no}from"@hub3js/core";import{actions as E,builders as b,hooks as to}from"@hub3js/evm";import*as x from"@hub3js/std/builders";import{standardizeAndThrowError as eo}from"@hub3js/std/operators";var[ro,M]=to.changeAccountSubscriber(h),ao=b.connect().action(E.connect(h)).before(ro).or(M).or(eo).build(),io=x.disconnect().after(M).build(),so=b.canEagerConnect().action(E.canEagerConnect(h)).build(),co=b.canSwitchNetwork().action(E.canSwitchNetwork()).build(),mo=b.getChainId().action(E.getChainId(h)).build(),_=new no("EVM",s).action(ao).action(io).action(so).action(co).action(mo).build();import{ActionBuilder as po,NamespaceBuilder as lo}from"@hub3js/core";import{actions as uo,builders as fo,CAIP_NAMESPACE as ho,CAIP_SOLANA_CHAIN_ID as go,hooks as Ao}from"@hub3js/solana";import*as j from"@hub3js/std/builders";import{standardizeAndThrowError as So}from"@hub3js/std/operators";import{getSolanaAccounts as Eo}from"@rango-dev/wallets-shared";import{AccountId as bo}from"caip";var[wo,D]=Ao.changeAccountSubscriber(l),Po=fo.connect().action(async function(){let n=l(),o=await Eo({instance:n,meta:[]});if(Array.isArray(o))throw new Error("Expecting solana response to be a single value, not an array.");return o.accounts.map(e=>bo.format({address:e,chainId:{namespace:ho,reference:go}}))}).before(wo).or(D).or(So).build(),vo=j.disconnect().after(D).build(),yo=new po("canEagerConnect").action(uo.canEagerConnect(l)).build(),U=new lo("Solana",s).action(Po).action(vo).action(yo).build();import{ActionBuilder as To,NamespaceBuilder as Io}from"@hub3js/core";import{actions as Bo}from"@hub3js/solana";import*as O from"@hub3js/std/builders";import{standardizeAndThrowError as ko}from"@hub3js/std/operators";import{builders as No,hooks as Co}from"@hub3js/sui";var[Lo,R]=Co.changeAccountSubscriber({name:d}),xo=No.connect({name:d}).before(Lo).or(R).or(ko).build(),Mo=O.disconnect().after(R).build(),_o=new To("canEagerConnect").action(Bo.canEagerConnect(l)).build(),W=new Io("Sui",s).action(xo).action(Mo).action(_o).build();var H=r(()=>new jo(s).init(function(n){let[,o]=n.state();f()&&(o("installed",!0),console.debug("[phantom] instance detected.",n))}).config("metadata",L).add("solana",U).add("evm",_).add("sui",W).build(),"buildProvider");var _n=r(()=>Do().version("1.0.0",H()).build(),"versions");export{_n 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
|
-
"sources": ["../src/signers/utxoSigner.ts", "../src/mod.ts", "../src/
|
|
4
|
-
"sourcesContent": ["import type { GenericSigner, Transfer } from 'rango-types';\n\nimport * as secp256k1 from '@bitcoinerlab/secp256k1';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport * as bitcoin from 'bitcoinjs-lib';\nimport { SignerError } from 'rango-types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TransferExternalProvider = any;\n\nconst BTC_RPC_URL = 'https://go.getblock.io/f37bad28a991436483c0a3679a3acbee';\n\n// TODO: use Uint8Array.fromBase64() static method and use this function as a polyfill after updating TypeScript DOM lib\nfunction base64ToUint8Array(base64String: string) {\n const binaryString = atob(base64String);\n const length = binaryString.length;\n const uint8Array = new Uint8Array(length);\n\n for (let i = 0; i < length; i++) {\n uint8Array[i] = binaryString.charCodeAt(i);\n }\n\n return uint8Array;\n}\n\nexport class BTCSigner implements GenericSigner<Transfer> {\n private provider: TransferExternalProvider;\n constructor(provider: TransferExternalProvider) {\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\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 // Initialize ECC library\n bitcoin.initEccLib(secp256k1);\n\n const signedPSBTBytes = await this.provider.signPSBT(\n base64ToUint8Array(psbt.unsignedPsbtBase64),\n {\n inputsToSign: psbt.inputsToSign,\n }\n );\n\n // Finalize PSBT\n const finalPsbt = bitcoin.Psbt.fromBuffer(Buffer.from(signedPSBTBytes));\n finalPsbt.finalizeAllInputs();\n\n const finalPsbtBaseHex = finalPsbt.extractTransaction().toHex();\n\n // Broadcast PSBT to rpc node\n const response = await fetch(BTC_RPC_URL, {\n method: 'POST',\n body: JSON.stringify({\n method: 'sendrawtransaction',\n params: [finalPsbtBaseHex],\n }),\n });\n\n if (!response.ok) {\n // Handle network and fetch errors\n const errorText = await response.text();\n throw new Error(`Error broadcasting transaction: ${errorText}`);\n }\n\n const data = await response.json();\n\n if (!data.result) {\n // Handle Bitcoin specific errors\n throw new Error(\n `Error broadcasting transaction. Error Code ${data.error.code}: ${data.error.message}`\n );\n }\n\n return { hash: data.result };\n }\n}\n", "import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildLegacyProvider } from './legacy/index.js';\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions()\n .version('0.0.0', buildLegacyProvider())\n .version('1.0.0', buildProvider())\n .build();\n\nexport { versions };\n", "import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n Subscribe,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type {\n BlockchainMeta,\n EvmBlockchainMeta,\n SignerFactory,\n SuiBlockchainMeta,\n TransferBlockchainMeta,\n} from 'rango-types';\n\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport {\n chooseInstance,\n getSolanaAccounts,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport {\n isEvmBlockchain,\n solanaBlockchain,\n TransactionType,\n} from 'rango-types';\n\nimport { EVM_SUPPORTED_CHAINS } from '../constants.js';\nimport signer from '../signer.js';\nimport { phantom as phantom_instance, type Provider } from '../utils.js';\n\nconst WALLET = WalletTypes.PHANTOM;\n\nexport const config = {\n type: WALLET,\n};\n\nexport const getInstance = phantom_instance;\n\n/*\n * NOTE: Phantom's Hub version has support for EVM as well since we are deprecating the legacy,\n * we just want to keep the implementation for some time and then legacy provider will be removed soon.\n * So we don't add new namespaces (like EVM) to legacy.\n */\nconst connect: Connect = async ({ instance, meta }) => {\n const solanaInstance = instance.get(Networks.SOLANA);\n const result = await getSolanaAccounts({\n instance: solanaInstance,\n meta,\n });\n\n return result;\n};\n\nexport const subscribe: Subscribe = ({ instance, updateAccounts, connect }) => {\n const handleAccountsChanged = async (publicKey: string) => {\n const network = Networks.SOLANA;\n if (publicKey) {\n const account = publicKey.toString();\n updateAccounts([account]);\n } else {\n connect(network);\n }\n };\n instance?.on?.('accountChanged', handleAccountsChanged);\n\n return () => {\n instance?.off?.('accountChanged', handleAccountsChanged);\n };\n};\nconst canSwitchNetworkTo: CanSwitchNetwork = ({ network }) => {\n return EVM_SUPPORTED_CHAINS.includes(network as Networks);\n};\nexport const getSigners: (provider: Provider) => Promise<SignerFactory> =\n signer;\n\nconst canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const solanaInstance = chooseInstance(instance, meta, Networks.SOLANA);\n try {\n const result = await solanaInstance.connect({ onlyIfTrusted: true });\n return !!result;\n } catch {\n return false;\n }\n};\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n let supportedChains: BlockchainMeta[] = [];\n const sui = allBlockChains.filter(\n (blockchain) => blockchain.type === TransactionType.SUI\n );\n const solana = solanaBlockchain(allBlockChains);\n const evms = allBlockChains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n );\n const btc = allBlockChains.find((chain) => chain.name === Networks.BTC);\n supportedChains = supportedChains.concat(solana, evms, sui);\n if (btc) {\n supportedChains.push(btc);\n }\n\n return {\n name: 'Phantom',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n\n DEFAULT: 'https://phantom.app/',\n },\n color: '#4d40c6',\n // if you are adding a new namespace, don't forget to also update `properties`\n needsNamespace: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\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 label: 'Sui',\n value: 'Sui',\n id: 'SUI',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is SuiBlockchainMeta =>\n chain.type === TransactionType.SUI\n ),\n },\n ],\n },\n supportedChains,\n };\n};\n\nconst buildLegacyProvider: () => LegacyProviderInterface = () => ({\n config,\n getInstance,\n connect,\n subscribe,\n getSigners,\n getWalletInfo,\n canSwitchNetworkTo,\n canEagerConnect,\n});\n\nexport { buildLegacyProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\nimport type { Networks } from '@rango-dev/wallets-shared';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport {\n type BlockchainMeta,\n type EvmBlockchainMeta,\n isEvmBlockchain,\n solanaBlockchain,\n type SuiBlockchainMeta,\n TransactionType,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const EVM_SUPPORTED_CHAINS = [\n LegacyNetworks.ETHEREUM,\n LegacyNetworks.POLYGON,\n LegacyNetworks.BASE,\n];\n\nexport const WALLET_ID = 'phantom';\nexport const WALLET_NAME_IN_WALLET_STANDARD = 'Phantom';\n\nexport const metadata: ProviderMetadata = {\n name: 'Phantom',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n homepage: 'https://phantom.app/',\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 getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n {\n label: 'Sui',\n value: 'Sui',\n id: 'SUI',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is SuiBlockchainMeta =>\n chain.type === TransactionType.SUI\n ),\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 { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport { getInstance as getSuiInstance } from '@rango-dev/wallets-core/namespaces/sui';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { WALLET_NAME_IN_WALLET_STANDARD } from './constants.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const evmProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const bitcoinInstance = getNetworkInstance(provider, Networks.BTC);\n\n const suiProvider = getSuiInstance(WALLET_NAME_IN_WALLET_STANDARD);\n\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n const { DefaultSolanaSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-solana')\n );\n const { BTCSigner } = await dynamicImportWithRefinedError(\n async () => await import('./signers/utxoSigner.js')\n );\n const { DefaultSuiSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-sui')\n );\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));\n signers.registerSigner(TxType.TRANSFER, new BTCSigner(bitcoinInstance));\n if (!!suiProvider) {\n signers.registerSigner(TxType.SUI, new DefaultSuiSigner(suiProvider));\n }\n return signers;\n}\n", "import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';\nimport type { ProviderAPI as SuiProviderApi } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport type Provider = Map<string, unknown>;\n\nexport function phantom(): Provider | null {\n const { phantom } = window;\n\n if (!phantom) {\n return null;\n }\n\n const { solana, ethereum, bitcoin, sui } = phantom;\n\n const instances: Provider = new Map();\n\n if (ethereum && ethereum.isPhantom) {\n instances.set(LegacyNetworks.ETHEREUM, ethereum);\n }\n\n if (solana && solana.isPhantom) {\n instances.set(LegacyNetworks.SOLANA, solana);\n }\n\n if (bitcoin && bitcoin.isPhantom) {\n instances.set(LegacyNetworks.BTC, bitcoin);\n }\n if (sui && sui.isPhantom) {\n instances.set(LegacyNetworks.SUI, sui);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = phantom();\n\n if (!instances) {\n throw new Error('Phantom is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmPhantom(): EvmProviderApi {\n const instances = phantom();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Phantom not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaPhantom(): SolanaProviderApi {\n const instance = phantom();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'Phantom not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance;\n}\n\nexport function bitcoinPhantom(): SolanaProviderApi {\n const instance = phantom();\n const bitcoinInstance = instance?.get(LegacyNetworks.BTC);\n\n if (!bitcoinInstance) {\n throw new Error(\n 'Phantom not injected or Bitcoin not enabled. Please check your wallet.'\n );\n }\n\n return bitcoinInstance;\n}\nexport function suiPhantom(): SuiProviderApi {\n const instance = phantom();\n const suiInstance = instance?.get(LegacyNetworks.SUI);\n\n if (!suiInstance) {\n throw new Error(\n 'Phantom not injected or Sui not enabled. Please check your wallet.'\n );\n }\n\n return suiInstance as SuiProviderApi;\n}\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { sui } from './namespaces/sui.js';\nimport { phantom as phantomInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (phantomInstance()) {\n setState('installed', true);\n console.debug('[phantom] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('solana', solana)\n .add('evm', evm)\n .add('sui', sui)\n .build();\n\nexport { buildProvider };\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, hooks } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(evmPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(actions.connect(evmPhantom))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmPhantom))\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmPhantom))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .action(canSwitchNetwork)\n .action(getChainId)\n .build();\n\nexport { evm };\n", "import type { SolanaActions } from '@hub3js/solana';\nimport type { CaipAccount } from '@hub3js/std/types';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport {\n actions,\n builders,\n CAIP_NAMESPACE,\n CAIP_SOLANA_CHAIN_ID,\n hooks,\n} from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport { getSolanaAccounts } from '@rango-dev/wallets-shared';\nimport { AccountId } from 'caip';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(solanaPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(async function () {\n const solanaInstance = solanaPhantom();\n const result = await getSolanaAccounts({\n instance: solanaInstance,\n meta: [],\n });\n if (Array.isArray(result)) {\n throw new Error(\n 'Expecting solana response to be a single value, not an array.'\n );\n }\n\n const formatAccounts = result.accounts.map(\n (account) =>\n AccountId.format({\n address: account,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_SOLANA_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n return formatAccounts;\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(actions.canEagerConnect(solanaPhantom))\n .build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { solana };\n", "import type { SolanaActions } from '@hub3js/solana';\nimport type { SuiActions } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions as solanaActions } from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport { builders, hooks } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { WALLET_ID, WALLET_NAME_IN_WALLET_STANDARD } from '../constants.js';\nimport { solanaPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n });\n\nconst connect = builders\n .connect({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SuiActions>()\n .after(changeAccountCleanup)\n .build();\n\n/*\n * TODO: We are currently using `solanaCanEagerConnectAction` to establish an eager connection to the Sui instance.\n * This is a temporary workaround due to Phantom's limitation in silently connecting to a Sui account.\n * Once Phantom introduces support for silent Sui connections, this implementation should be updated accordingly.\n */\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaActions.canEagerConnect(solanaPhantom))\n .build();\n\nconst sui = new NamespaceBuilder<SuiActions>('Sui', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { sui };\n"],
|
|
5
|
-
"mappings": "gLAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAEA,UAAYC,MAAe,0BAC3B,OAAS,YAAAC,MAAgB,4BACzB,UAAYC,MAAa,gBACzB,OAAS,eAAAC,MAAmB,cAQ5B,SAASC,
|
|
6
|
-
"names": ["utxoSigner_exports", "__export", "BTCSigner", "secp256k1", "Networks", "bitcoin", "SignerError", "base64ToUint8Array", "base64String", "binaryString", "length", "uint8Array", "BTC_RPC_URL", "init_utxoSigner", "__esmMin", "__name", "provider", "tx", "asset", "psbt", "signedPSBTBytes", "finalPsbt", "finalPsbtBaseHex", "response", "errorText", "data", "defineVersions", "
|
|
3
|
+
"sources": ["../src/signers/utxoSigner.ts", "../src/mod.ts", "../src/provider.ts", "../src/constants.ts", "../src/signer.ts", "../src/utils.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts", "../src/namespaces/sui.ts"],
|
|
4
|
+
"sourcesContent": ["import type { GenericSigner, Transfer } from 'rango-types';\n\nimport * as secp256k1 from '@bitcoinerlab/secp256k1';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport * as bitcoin from 'bitcoinjs-lib';\nimport { SignerError } from 'rango-types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TransferExternalProvider = any;\n\nconst BTC_RPC_URL = 'https://go.getblock.io/f37bad28a991436483c0a3679a3acbee';\n\n// TODO: use Uint8Array.fromBase64() static method and use this function as a polyfill after updating TypeScript DOM lib\nfunction base64ToUint8Array(base64String: string) {\n const binaryString = atob(base64String);\n const length = binaryString.length;\n const uint8Array = new Uint8Array(length);\n\n for (let i = 0; i < length; i++) {\n uint8Array[i] = binaryString.charCodeAt(i);\n }\n\n return uint8Array;\n}\n\nexport class BTCSigner implements GenericSigner<Transfer> {\n private provider: TransferExternalProvider;\n constructor(provider: TransferExternalProvider) {\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\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 // Initialize ECC library\n bitcoin.initEccLib(secp256k1);\n\n const signedPSBTBytes = await this.provider.signPSBT(\n base64ToUint8Array(psbt.unsignedPsbtBase64),\n {\n inputsToSign: psbt.inputsToSign,\n }\n );\n\n // Finalize PSBT\n const finalPsbt = bitcoin.Psbt.fromBuffer(Buffer.from(signedPSBTBytes));\n finalPsbt.finalizeAllInputs();\n\n const finalPsbtBaseHex = finalPsbt.extractTransaction().toHex();\n\n // Broadcast PSBT to rpc node\n const response = await fetch(BTC_RPC_URL, {\n method: 'POST',\n body: JSON.stringify({\n method: 'sendrawtransaction',\n params: [finalPsbtBaseHex],\n }),\n });\n\n if (!response.ok) {\n // Handle network and fetch errors\n const errorText = await response.text();\n throw new Error(`Error broadcasting transaction: ${errorText}`);\n }\n\n const data = await response.json();\n\n if (!data.result) {\n // Handle Bitcoin specific errors\n throw new Error(\n `Error broadcasting transaction. Error Code ${data.error.code}: ${data.error.message}`\n );\n }\n\n return { hash: data.result };\n }\n}\n", "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 { solana } from './namespaces/solana.js';\nimport { sui } from './namespaces/sui.js';\nimport { phantom as phantomInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (phantomInstance()) {\n setState('installed', true);\n console.debug('[phantom] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('solana', solana)\n .add('evm', evm)\n .add('sui', sui)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\nimport type { Networks } from '@rango-dev/wallets-shared';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport {\n type BlockchainMeta,\n type EvmBlockchainMeta,\n isEvmBlockchain,\n solanaBlockchain,\n type SuiBlockchainMeta,\n TransactionType,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const EVM_SUPPORTED_CHAINS = [\n LegacyNetworks.ETHEREUM,\n LegacyNetworks.POLYGON,\n LegacyNetworks.BASE,\n];\n\nexport const WALLET_ID = 'phantom';\nexport const WALLET_NAME_IN_WALLET_STANDARD = 'Phantom';\n\nexport const metadata: ProviderMetadata = {\n name: 'Phantom',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n homepage: 'https://phantom.app/',\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 getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n {\n label: 'Sui',\n value: 'Sui',\n id: 'SUI',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is SuiBlockchainMeta =>\n chain.type === TransactionType.SUI\n ),\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 { getInstance as getSuiInstance } from '@hub3js/sui';\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { WALLET_NAME_IN_WALLET_STANDARD } from './constants.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const evmProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const bitcoinInstance = getNetworkInstance(provider, Networks.BTC);\n\n const suiProvider = getSuiInstance(WALLET_NAME_IN_WALLET_STANDARD);\n\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n const { DefaultSolanaSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-solana')\n );\n const { BTCSigner } = await dynamicImportWithRefinedError(\n async () => await import('./signers/utxoSigner.js')\n );\n const { DefaultSuiSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-sui')\n );\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));\n signers.registerSigner(TxType.TRANSFER, new BTCSigner(bitcoinInstance));\n if (!!suiProvider) {\n signers.registerSigner(TxType.SUI, new DefaultSuiSigner(suiProvider));\n }\n return signers;\n}\n", "import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';\nimport type { ProviderAPI as SuiProviderApi } from '@hub3js/sui';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport type Provider = Map<string, unknown>;\n\nexport function phantom(): Provider | null {\n const { phantom } = window;\n\n if (!phantom) {\n return null;\n }\n\n const { solana, ethereum, bitcoin, sui } = phantom;\n\n const instances: Provider = new Map();\n\n if (ethereum && ethereum.isPhantom) {\n instances.set(LegacyNetworks.ETHEREUM, ethereum);\n }\n\n if (solana && solana.isPhantom) {\n instances.set(LegacyNetworks.SOLANA, solana);\n }\n\n if (bitcoin && bitcoin.isPhantom) {\n instances.set(LegacyNetworks.BTC, bitcoin);\n }\n if (sui && sui.isPhantom) {\n instances.set(LegacyNetworks.SUI, sui);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = phantom();\n\n if (!instances) {\n throw new Error('Phantom is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmPhantom(): EvmProviderApi {\n const instances = phantom();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Phantom not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaPhantom(): SolanaProviderApi {\n const instance = phantom();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'Phantom not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance;\n}\n\nexport function bitcoinPhantom(): SolanaProviderApi {\n const instance = phantom();\n const bitcoinInstance = instance?.get(LegacyNetworks.BTC);\n\n if (!bitcoinInstance) {\n throw new Error(\n 'Phantom not injected or Bitcoin not enabled. Please check your wallet.'\n );\n }\n\n return bitcoinInstance;\n}\nexport function suiPhantom(): SuiProviderApi {\n const instance = phantom();\n const suiInstance = instance?.get(LegacyNetworks.SUI);\n\n if (!suiInstance) {\n throw new Error(\n 'Phantom not injected or Sui not enabled. Please check your wallet.'\n );\n }\n\n return suiInstance as SuiProviderApi;\n}\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, hooks } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(evmPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(actions.connect(evmPhantom))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmPhantom))\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmPhantom))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .action(canSwitchNetwork)\n .action(getChainId)\n .build();\n\nexport { evm };\n", "import type { SolanaActions } from '@hub3js/solana';\nimport type { CaipAccount } from '@hub3js/std/types';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport {\n actions,\n builders,\n CAIP_NAMESPACE,\n CAIP_SOLANA_CHAIN_ID,\n hooks,\n} from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport { getSolanaAccounts } from '@rango-dev/wallets-shared';\nimport { AccountId } from 'caip';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(solanaPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(async function () {\n const solanaInstance = solanaPhantom();\n const result = await getSolanaAccounts({\n instance: solanaInstance,\n meta: [],\n });\n if (Array.isArray(result)) {\n throw new Error(\n 'Expecting solana response to be a single value, not an array.'\n );\n }\n\n const formatAccounts = result.accounts.map(\n (account) =>\n AccountId.format({\n address: account,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_SOLANA_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n return formatAccounts;\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(actions.canEagerConnect(solanaPhantom))\n .build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { solana };\n", "import type { SolanaActions } from '@hub3js/solana';\nimport type { SuiActions } from '@hub3js/sui';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions as solanaActions } from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport { builders, hooks } from '@hub3js/sui';\n\nimport { WALLET_ID, WALLET_NAME_IN_WALLET_STANDARD } from '../constants.js';\nimport { solanaPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n });\n\nconst connect = builders\n .connect({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SuiActions>()\n .after(changeAccountCleanup)\n .build();\n\n/*\n * TODO: We are currently using `solanaCanEagerConnectAction` to establish an eager connection to the Sui instance.\n * This is a temporary workaround due to Phantom's limitation in silently connecting to a Sui account.\n * Once Phantom introduces support for silent Sui connections, this implementation should be updated accordingly.\n */\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaActions.canEagerConnect(solanaPhantom))\n .build();\n\nconst sui = new NamespaceBuilder<SuiActions>('Sui', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { sui };\n"],
|
|
5
|
+
"mappings": "gLAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAEA,UAAYC,MAAe,0BAC3B,OAAS,YAAAC,MAAgB,4BACzB,UAAYC,MAAa,gBACzB,OAAS,eAAAC,MAAmB,cAQ5B,SAASC,EAAmBC,EAAsB,CAChD,IAAMC,EAAe,KAAKD,CAAY,EAChCE,EAASD,EAAa,OACtBE,EAAa,IAAI,WAAWD,CAAM,EAExC,QAASE,EAAI,EAAGA,EAAIF,EAAQE,IAC1BD,EAAWC,CAAC,EAAIH,EAAa,WAAWG,CAAC,EAG3C,OAAOD,CACT,CAvBA,IAUME,EAeOX,EAzBbY,EAAAC,EAAA,kBAUMF,EAAc,0DAGXG,EAAAT,EAAA,sBAYIL,EAAN,KAAmD,CAzB1D,MAyB0D,CAAAc,EAAA,kBAChD,SACR,YAAYC,EAAoC,CAC9C,KAAK,SAAWA,CAClB,CAEA,MAAM,aAA+B,CACnC,MAAMX,EAAY,mBAAmB,aAAa,CACpD,CAEA,MAAM,cAAcY,EAAyC,CAC3D,GAAM,CAAE,MAAAC,EAAO,KAAAC,CAAK,EAAIF,EAExB,GAAI,CAACE,EACH,MAAM,IAAI,MACR,yDACF,EAGF,GAAID,EAAM,aAAef,EAAS,IAChC,MAAM,IAAI,MACR,WAAWe,EAAM,UAAU,gDAC7B,EAGM,aAAWhB,CAAS,EAE5B,IAAMkB,EAAkB,MAAM,KAAK,SAAS,SAC1Cd,EAAmBa,EAAK,kBAAkB,EAC1C,CACE,aAAcA,EAAK,YACrB,CACF,EAGME,EAAoB,OAAK,WAAW,OAAO,KAAKD,CAAe,CAAC,EACtEC,EAAU,kBAAkB,EAE5B,IAAMC,EAAmBD,EAAU,mBAAmB,EAAE,MAAM,EAGxDE,EAAW,MAAM,MAAMX,EAAa,CACxC,OAAQ,OACR,KAAM,KAAK,UAAU,CACnB,OAAQ,qBACR,OAAQ,CAACU,CAAgB,CAC3B,CAAC,CACH,CAAC,EAED,GAAI,CAACC,EAAS,GAAI,CAEhB,IAAMC,EAAY,MAAMD,EAAS,KAAK,EACtC,MAAM,IAAI,MAAM,mCAAmCC,CAAS,EAAE,CAChE,CAEA,IAAMC,EAAO,MAAMF,EAAS,KAAK,EAEjC,GAAI,CAACE,EAAK,OAER,MAAM,IAAI,MACR,8CAA8CA,EAAK,MAAM,IAAI,KAAKA,EAAK,MAAM,OAAO,EACtF,EAGF,MAAO,CAAE,KAAMA,EAAK,MAAO,CAC7B,CACF,IC3FA,OAAS,kBAAAC,OAAsB,qBCA/B,OAAS,mBAAAC,OAAuB,eCGhC,OAAS,kBAAAC,MAAsB,iCAC/B,OAGE,mBAAAC,EACA,oBAAAC,EAEA,mBAAAC,MACK,cCRP,OAAS,eAAeC,MAAsB,cAC9C,OAAS,kBAAkBC,MAAgB,iCAC3C,OACE,iCAAAC,EACA,sBAAAC,MACK,4BACP,OAAS,wBAAAC,EAAsB,mBAAmBC,MAAc,cAIhE,eAAOC,EACLC,EACwB,CACxB,IAAMC,EAAcC,EAAmBF,EAAUG,EAAS,MAAM,EAC1DC,EAAcF,EAAmBF,EAAUG,EAAS,QAAQ,EAC5DE,EAAkBH,EAAmBF,EAAUG,EAAS,GAAG,EAE3DG,EAAcC,EAAeC,CAA8B,EAE3D,CAAE,iBAAAC,CAAiB,EAAI,MAAMC,EACjC,SAAY,KAAM,QAAO,uBAAuB,CAClD,EACM,CAAE,oBAAAC,CAAoB,EAAI,MAAMD,EACpC,SAAY,KAAM,QAAO,0BAA0B,CACrD,EACM,CAAE,UAAAE,CAAU,EAAI,MAAMF,EAC1B,SAAY,KAAM,oCACpB,EACM,CAAE,iBAAAG,CAAiB,EAAI,MAAMH,EACjC,SAAY,KAAM,QAAO,uBAAuB,CAClD,EACMI,EAAU,IAAIC,EACpB,OAAAD,EAAQ,eAAeE,EAAO,OAAQ,IAAIL,EAAoBV,CAAW,CAAC,EAC1Ea,EAAQ,eAAeE,EAAO,IAAK,IAAIP,EAAiBL,CAAW,CAAC,EACpEU,EAAQ,eAAeE,EAAO,SAAU,IAAIJ,EAAUP,CAAe,CAAC,EAChEC,GACJQ,EAAQ,eAAeE,EAAO,IAAK,IAAIH,EAAiBP,CAAW,CAAC,EAE/DQ,CACT,CA7B8BG,EAAAlB,EAAA,cCT9B,OAAS,kBAAAmB,MAAsB,iCAIxB,SAASC,GAA2B,CACzC,GAAM,CAAE,QAAAA,CAAQ,EAAI,OAEpB,GAAI,CAACA,EACH,OAAO,KAGT,GAAM,CAAE,OAAAC,EAAQ,SAAAC,EAAU,QAAAC,EAAS,IAAAC,CAAI,EAAIJ,EAErCK,EAAsB,IAAI,IAEhC,OAAIH,GAAYA,EAAS,WACvBG,EAAU,IAAIC,EAAe,SAAUJ,CAAQ,EAG7CD,GAAUA,EAAO,WACnBI,EAAU,IAAIC,EAAe,OAAQL,CAAM,EAGzCE,GAAWA,EAAQ,WACrBE,EAAU,IAAIC,EAAe,IAAKH,CAAO,EAEvCC,GAAOA,EAAI,WACbC,EAAU,IAAIC,EAAe,IAAKF,CAAG,EAGhCC,CACT,CA3BgBE,EAAAP,EAAA,WA6BT,SAASQ,GAA+B,CAC7C,IAAMH,EAAYL,EAAQ,EAE1B,GAAI,CAACK,EACH,MAAM,IAAI,MAAM,oDAAoD,EAGtE,OAAOA,CACT,CARgBE,EAAAC,EAAA,sBAUT,SAASC,GAA6B,CAG3C,IAAMC,EAFYV,EAAQ,GAEK,IAAIM,EAAe,QAAQ,EAE1D,GAAI,CAACI,EACH,MAAM,IAAI,MACR,oEACF,EAGF,OAAOA,CACT,CAZgBH,EAAAE,EAAA,cAcT,SAASE,GAAmC,CAEjD,IAAMC,EADWZ,EAAQ,GACQ,IAAIM,EAAe,MAAM,EAE1D,GAAI,CAACM,EACH,MAAM,IAAI,MACR,uEACF,EAGF,OAAOA,CACT,CAXgBL,EAAAI,EAAA,iBF7CT,IAAME,GAAuB,CAClCC,EAAe,SACfA,EAAe,QACfA,EAAe,IACjB,EAEaC,EAAY,UACZC,EAAiC,UAEjCC,EAA6B,CACxC,KAAM,UACN,KAAM,wFACN,WAAY,CACV,OACE,qFACF,SAAU,sBACZ,EACA,WAAY,CACV,CACE,KAAM,aACN,MAAO,CACL,UAAW,WACX,KAAM,CACJ,CACE,MAAO,MACP,MAAO,MACP,GAAI,MACJ,mBAAqBC,GACnBA,EAAe,OACZC,GACCC,EAAgBD,CAAK,GACrBN,GAAqB,SAASM,EAAM,IAAgB,CACxD,CACJ,EACA,CACE,MAAO,SACP,MAAO,SACP,GAAI,SACJ,mBAAqBD,GACnBG,EAAiBH,CAAc,CACnC,EACA,CACE,MAAO,MACP,MAAO,MACP,GAAI,MACJ,mBAAqBA,GACnBA,EAAe,OACZC,GACCA,EAAM,OAASG,EAAgB,GACnC,CACJ,CACF,CACF,CACF,EACA,CACE,KAAM,UACN,MAAO,CAAE,WAAY,SAAYC,EAAWC,EAAmB,CAAC,CAAE,CACpE,CACF,CACF,EGzEA,OAAS,oBAAAC,OAAwB,eACjC,OAAS,WAAAC,EAAS,YAAAC,EAAU,SAAAC,OAAa,cACzC,UAAYC,MAAoB,uBAChC,OAAS,4BAAAC,OAAgC,wBAKzC,GAAM,CAACC,GAAyBC,CAAoB,EAClDC,GAAM,wBAAwBC,CAAU,EAQpCC,GAAUC,EACb,QAAQ,EACR,OAAOC,EAAQ,QAAQH,CAAU,CAAC,EAClC,OAAOH,EAAuB,EAC9B,GAAGC,CAAoB,EACvB,GAAGM,EAAwB,EAC3B,MAAM,EAEHC,GACH,aAAuB,EACvB,MAAMP,CAAoB,EAC1B,MAAM,EAEHQ,GAAkBJ,EACrB,gBAAgB,EAChB,OAAOC,EAAQ,gBAAgBH,CAAU,CAAC,EAC1C,MAAM,EAEHO,GAAmBL,EACtB,iBAAiB,EACjB,OAAOC,EAAQ,iBAAiB,CAAC,EACjC,MAAM,EAEHK,GAAaN,EAChB,WAAW,EACX,OAAOC,EAAQ,WAAWH,CAAU,CAAC,EACrC,MAAM,EAEHS,EAAM,IAAIC,GAA6B,MAAOC,CAAS,EAC1D,OAAOV,EAAO,EACd,OAAOI,EAAU,EACjB,OAAOC,EAAe,EACtB,OAAOC,EAAgB,EACvB,OAAOC,EAAU,EACjB,MAAM,EClDT,OAAS,iBAAAI,GAAe,oBAAAC,OAAwB,eAChD,OACE,WAAAC,GACA,YAAAC,GACA,kBAAAC,GACA,wBAAAC,GACA,SAAAC,OACK,iBACP,UAAYC,MAAoB,uBAChC,OAAS,4BAAAC,OAAgC,wBACzC,OAAS,qBAAAC,OAAyB,4BAClC,OAAS,aAAAC,OAAiB,OAK1B,GAAM,CAACC,GAAyBC,CAAoB,EAClDC,GAAM,wBAAwBC,CAAa,EAQvCC,GAAUC,GACb,QAAQ,EACR,OAAO,gBAAkB,CACxB,IAAMC,EAAiBH,EAAc,EAC/BI,EAAS,MAAMC,GAAkB,CACrC,SAAUF,EACV,KAAM,CAAC,CACT,CAAC,EACD,GAAI,MAAM,QAAQC,CAAM,EACtB,MAAM,IAAI,MACR,+DACF,EAcF,OAXuBA,EAAO,SAAS,IACpCE,GACCC,GAAU,OAAO,CACf,QAASD,EACT,QAAS,CACP,UAAWE,GACX,UAAWC,EACb,CACF,CAAC,CACL,CAGF,CAAC,EACA,OAAOZ,EAAuB,EAC9B,GAAGC,CAAoB,EACvB,GAAGY,EAAwB,EAC3B,MAAM,EAEHC,GACH,aAA0B,EAC1B,MAAMb,CAAoB,EAC1B,MAAM,EAEHc,GAAkB,IAAIC,GAC1B,iBACF,EACG,OAAOC,GAAQ,gBAAgBd,CAAa,CAAC,EAC7C,MAAM,EAEHe,EAAS,IAAIC,GAAgC,SAAUC,CAAS,EACnE,OAAOhB,EAAO,EACd,OAAOU,EAAU,EACjB,OAAOC,EAAe,EACtB,MAAM,ECxET,OAAS,iBAAAM,GAAe,oBAAAC,OAAwB,eAChD,OAAS,WAAWC,OAAqB,iBACzC,UAAYC,MAAoB,uBAChC,OAAS,4BAAAC,OAAgC,wBACzC,OAAS,YAAAC,GAAU,SAAAC,OAAa,cAKhC,GAAM,CAACC,GAAyBC,CAAoB,EAClDC,GAAM,wBAAwB,CAC5B,KAAMC,CACR,CAAC,EAEGC,GAAUC,GACb,QAAQ,CACP,KAAMF,CACR,CAAC,EACA,OAAOH,EAAuB,EAC9B,GAAGC,CAAoB,EACvB,GAAGK,EAAwB,EAC3B,MAAM,EAEHC,GACH,aAAuB,EACvB,MAAMN,CAAoB,EAC1B,MAAM,EAOHO,GAAkB,IAAIC,GAC1B,iBACF,EACG,OAAOC,GAAc,gBAAgBC,CAAa,CAAC,EACnD,MAAM,EAEHC,EAAM,IAAIC,GAA6B,MAAOC,CAAS,EAC1D,OAAOV,EAAO,EACd,OAAOG,EAAU,EACjB,OAAOC,EAAe,EACtB,MAAM,ENtCT,IAAMO,EAAgBC,EAAA,IACpB,IAAIC,GAAgBC,CAAS,EAC1B,KAAK,SAAUC,EAAS,CACvB,GAAM,CAAC,CAAEC,CAAQ,EAAID,EAAQ,MAAM,EAE/BE,EAAgB,IAClBD,EAAS,YAAa,EAAI,EAC1B,QAAQ,MAAM,+BAAgCD,CAAO,EAEzD,CAAC,EACA,OAAO,WAAYG,CAAQ,EAC3B,IAAI,SAAUC,CAAM,EACpB,IAAI,MAAOC,CAAG,EACd,IAAI,MAAOC,CAAG,EACd,MAAM,EAdW,iBDJtB,IAAMC,GAAWC,EAAA,IACfC,GAAe,EAAE,QAAQ,QAASC,EAAc,CAAC,EAAE,MAAM,EAD1C",
|
|
6
|
+
"names": ["utxoSigner_exports", "__export", "BTCSigner", "secp256k1", "Networks", "bitcoin", "SignerError", "base64ToUint8Array", "base64String", "binaryString", "length", "uint8Array", "i", "BTC_RPC_URL", "init_utxoSigner", "__esmMin", "__name", "provider", "tx", "asset", "psbt", "signedPSBTBytes", "finalPsbt", "finalPsbtBaseHex", "response", "errorText", "data", "defineVersions", "ProviderBuilder", "LegacyNetworks", "isEvmBlockchain", "solanaBlockchain", "TransactionType", "getSuiInstance", "Networks", "dynamicImportWithRefinedError", "getNetworkInstance", "DefaultSignerFactory", "TxType", "getSigners", "provider", "solProvider", "getNetworkInstance", "Networks", "evmProvider", "bitcoinInstance", "suiProvider", "getSuiInstance", "WALLET_NAME_IN_WALLET_STANDARD", "DefaultEvmSigner", "dynamicImportWithRefinedError", "DefaultSolanaSigner", "BTCSigner", "DefaultSuiSigner", "signers", "DefaultSignerFactory", "TxType", "__name", "LegacyNetworks", "phantom", "solana", "ethereum", "bitcoin", "sui", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmPhantom", "evmInstance", "solanaPhantom", "solanaInstance", "EVM_SUPPORTED_CHAINS", "LegacyNetworks", "WALLET_ID", "WALLET_NAME_IN_WALLET_STANDARD", "metadata", "allBlockchains", "chain", "isEvmBlockchain", "solanaBlockchain", "TransactionType", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "actions", "builders", "hooks", "commonBuilders", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "evmPhantom", "connect", "builders", "actions", "standardizeAndThrowError", "disconnect", "canEagerConnect", "canSwitchNetwork", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "CAIP_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "hooks", "commonBuilders", "standardizeAndThrowError", "getSolanaAccounts", "AccountId", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "solanaPhantom", "connect", "builders", "solanaInstance", "result", "getSolanaAccounts", "account", "AccountId", "CAIP_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "standardizeAndThrowError", "disconnect", "canEagerConnect", "ActionBuilder", "actions", "solana", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "solanaActions", "commonBuilders", "standardizeAndThrowError", "builders", "hooks", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "WALLET_NAME_IN_WALLET_STANDARD", "connect", "builders", "standardizeAndThrowError", "disconnect", "canEagerConnect", "ActionBuilder", "solanaActions", "solanaPhantom", "sui", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "phantom", "metadata", "solana", "evm", "sui", "versions", "__name", "defineVersions", "buildProvider"]
|
|
7
7
|
}
|
package/dist/namespaces/sui.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../src/namespaces/sui.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../src/namespaces/sui.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyC9C,QAAA,MAAM,GAAG,qDAIC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/signers/utxoSigner.ts":{"bytes":2672,"imports":[{"path":"@bitcoinerlab/secp256k1","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"bitcoinjs-lib","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":
|
|
1
|
+
{"inputs":{"src/signers/utxoSigner.ts":{"bytes":2672,"imports":[{"path":"@bitcoinerlab/secp256k1","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"bitcoinjs-lib","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":1756,"imports":[{"path":"@hub3js/sui","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":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-solana","kind":"dynamic-import","external":true},{"path":"src/signers/utxoSigner.ts","kind":"dynamic-import","original":"./signers/utxoSigner.js"},{"path":"@rango-dev/signer-sui","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":2362,"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":2177,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"rango-types","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/namespaces/evm.ts":{"bytes":1613,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/evm","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/namespaces/solana.ts":{"bytes":2236,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/solana","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-shared","kind":"import-statement","external":true},{"path":"caip","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/namespaces/sui.ts":{"bytes":1623,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/solana","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@hub3js/sui","kind":"import-statement","external":true},{"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":724,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/evm.ts","kind":"import-statement","original":"./namespaces/evm.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./namespaces/solana.js"},{"path":"src/namespaces/sui.ts","kind":"import-statement","original":"./namespaces/sui.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":25084},"dist/mod.js":{"imports":[{"path":"@bitcoinerlab/secp256k1","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"bitcoinjs-lib","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@hub3js/core/utils","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@hub3js/sui","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/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-solana","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-sui","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/evm","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/solana","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-shared","kind":"import-statement","external":true},{"path":"caip","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/solana","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@hub3js/sui","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/signers/utxoSigner.ts":{"bytesInOutput":1343},"src/mod.ts":{"bytesInOutput":112},"src/provider.ts":{"bytesInOutput":268},"src/constants.ts":{"bytesInOutput":836},"src/signer.ts":{"bytesInOutput":843},"src/utils.ts":{"bytesInOutput":782},"src/namespaces/evm.ts":{"bytesInOutput":613},"src/namespaces/solana.ts":{"bytesInOutput":895},"src/namespaces/sui.ts":{"bytesInOutput":532}},"bytes":6456}}}
|
package/dist/provider.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const buildProvider: () => import("@hub3js/core").Provider<Record<"solana", import("@hub3js/solana").SolanaActions> & Record<"evm", import("@hub3js/evm").EvmActions> & Record<"sui", import("@
|
|
1
|
+
declare const buildProvider: () => import("@hub3js/core").Provider<Record<"solana", import("@hub3js/solana").SolanaActions> & Record<"evm", import("@hub3js/evm").EvmActions> & Record<"sui", import("@hub3js/sui").SuiActions>>;
|
|
2
2
|
export { buildProvider };
|
|
3
3
|
//# sourceMappingURL=provider.d.ts.map
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,aAAa,qMAcP,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';
|
|
2
2
|
import type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';
|
|
3
|
-
import type { ProviderAPI as SuiProviderApi } from '@
|
|
3
|
+
import type { ProviderAPI as SuiProviderApi } from '@hub3js/sui';
|
|
4
4
|
export type Provider = Map<string, unknown>;
|
|
5
5
|
export declare function phantom(): Provider | null;
|
|
6
6
|
export declare function getInstanceOrThrow(): Provider;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -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;AACjE,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,
|
|
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,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAIjE,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,wBAAgB,OAAO,IAAI,QAAQ,GAAG,IAAI,CA2BzC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,UAAU,IAAI,cAAc,CAY3C;AAED,wBAAgB,aAAa,IAAI,iBAAiB,CAWjD;AAED,wBAAgB,cAAc,IAAI,iBAAiB,CAWlD;AACD,wBAAgB,UAAU,IAAI,cAAc,CAW3C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rango-dev/provider-phantom",
|
|
3
|
-
"version": "0.62.1-next.
|
|
3
|
+
"version": "0.62.1-next.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"source": "./src/mod.ts",
|
|
@@ -22,16 +22,17 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@bitcoinerlab/secp256k1": "^1.2.0",
|
|
25
|
-
"@hub3js/core": "^0.
|
|
26
|
-
"@hub3js/evm": "^0.
|
|
27
|
-
"@hub3js/solana": "^0.
|
|
28
|
-
"@hub3js/std": "^0.
|
|
25
|
+
"@hub3js/core": "^0.61.0",
|
|
26
|
+
"@hub3js/evm": "^0.3.0",
|
|
27
|
+
"@hub3js/solana": "^0.3.0",
|
|
28
|
+
"@hub3js/std": "^0.2.0",
|
|
29
|
+
"@hub3js/sui": "^0.2.0",
|
|
29
30
|
"@mysten/sui": "^1.21.2",
|
|
30
31
|
"@mysten/wallet-standard": "^0.13.26",
|
|
31
32
|
"@rango-dev/signer-solana": "^0.48.0",
|
|
32
33
|
"@rango-dev/signer-sui": "^0.10.0",
|
|
33
|
-
"@rango-dev/wallets-core": "^0.60.1-next.
|
|
34
|
-
"@rango-dev/wallets-shared": "^0.61.1-next.
|
|
34
|
+
"@rango-dev/wallets-core": "^0.60.1-next.1",
|
|
35
|
+
"@rango-dev/wallets-shared": "^0.61.1-next.1",
|
|
35
36
|
"bitcoinjs-lib": "^6.1.7",
|
|
36
37
|
"caip": "^1.1.1",
|
|
37
38
|
"rango-types": "^0.5.0"
|
|
@@ -39,4 +40,4 @@
|
|
|
39
40
|
"publishConfig": {
|
|
40
41
|
"access": "public"
|
|
41
42
|
}
|
|
42
|
-
}
|
|
43
|
+
}
|
package/src/mod.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { defineVersions } from '@hub3js/core/utils';
|
|
2
2
|
|
|
3
|
-
import { buildLegacyProvider } from './legacy/index.js';
|
|
4
3
|
import { buildProvider } from './provider.js';
|
|
5
4
|
|
|
6
5
|
const versions = () =>
|
|
7
|
-
defineVersions()
|
|
8
|
-
.version('0.0.0', buildLegacyProvider())
|
|
9
|
-
.version('1.0.0', buildProvider())
|
|
10
|
-
.build();
|
|
6
|
+
defineVersions().version('1.0.0', buildProvider()).build();
|
|
11
7
|
|
|
12
8
|
export { versions };
|
package/src/namespaces/sui.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { SolanaActions } from '@hub3js/solana';
|
|
2
|
-
import type { SuiActions } from '@
|
|
2
|
+
import type { SuiActions } from '@hub3js/sui';
|
|
3
3
|
|
|
4
4
|
import { ActionBuilder, NamespaceBuilder } from '@hub3js/core';
|
|
5
5
|
import { actions as solanaActions } from '@hub3js/solana';
|
|
6
6
|
import * as commonBuilders from '@hub3js/std/builders';
|
|
7
7
|
import { standardizeAndThrowError } from '@hub3js/std/operators';
|
|
8
|
-
import { builders, hooks } from '@
|
|
8
|
+
import { builders, hooks } from '@hub3js/sui';
|
|
9
9
|
|
|
10
10
|
import { WALLET_ID, WALLET_NAME_IN_WALLET_STANDARD } from '../constants.js';
|
|
11
11
|
import { solanaPhantom } from '../utils.js';
|
package/src/signer.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Provider } from './utils.js';
|
|
2
2
|
import type { SignerFactory } from 'rango-types';
|
|
3
3
|
|
|
4
|
+
import { getInstance as getSuiInstance } from '@hub3js/sui';
|
|
4
5
|
import { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';
|
|
5
|
-
import { getInstance as getSuiInstance } from '@rango-dev/wallets-core/namespaces/sui';
|
|
6
6
|
import {
|
|
7
7
|
dynamicImportWithRefinedError,
|
|
8
8
|
getNetworkInstance,
|
package/src/utils.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';
|
|
2
2
|
import type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';
|
|
3
|
-
import type { ProviderAPI as SuiProviderApi } from '@
|
|
3
|
+
import type { ProviderAPI as SuiProviderApi } from '@hub3js/sui';
|
|
4
4
|
|
|
5
5
|
import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
6
6
|
|
package/dist/legacy/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';
|
|
2
|
-
import type { Subscribe, WalletInfo } from '@rango-dev/wallets-shared';
|
|
3
|
-
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
4
|
-
import { WalletTypes } from '@rango-dev/wallets-shared';
|
|
5
|
-
import { phantom as phantom_instance, type Provider } from '../utils.js';
|
|
6
|
-
export declare const config: {
|
|
7
|
-
type: WalletTypes;
|
|
8
|
-
};
|
|
9
|
-
export declare const getInstance: typeof phantom_instance;
|
|
10
|
-
export declare const subscribe: Subscribe;
|
|
11
|
-
export declare const getSigners: (provider: Provider) => Promise<SignerFactory>;
|
|
12
|
-
export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
|
|
13
|
-
declare const buildLegacyProvider: () => LegacyProviderInterface;
|
|
14
|
-
export { buildLegacyProvider };
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/legacy/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAIV,SAAS,EACT,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAGd,MAAM,aAAa,CAAC;AAGrB,OAAO,EAGL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AASnC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIzE,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,eAAO,MAAM,WAAW,yBAAmB,CAAC;AAiB5C,eAAO,MAAM,SAAS,EAAE,SAevB,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,aAAa,CAC9D,CAAC;AAWT,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UA2EjE,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,MAAM,uBAS/B,CAAC;AAEH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
package/src/legacy/index.ts
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';
|
|
2
|
-
import type {
|
|
3
|
-
CanEagerConnect,
|
|
4
|
-
CanSwitchNetwork,
|
|
5
|
-
Connect,
|
|
6
|
-
Subscribe,
|
|
7
|
-
WalletInfo,
|
|
8
|
-
} from '@rango-dev/wallets-shared';
|
|
9
|
-
import type {
|
|
10
|
-
BlockchainMeta,
|
|
11
|
-
EvmBlockchainMeta,
|
|
12
|
-
SignerFactory,
|
|
13
|
-
SuiBlockchainMeta,
|
|
14
|
-
TransferBlockchainMeta,
|
|
15
|
-
} from 'rango-types';
|
|
16
|
-
|
|
17
|
-
import { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';
|
|
18
|
-
import {
|
|
19
|
-
chooseInstance,
|
|
20
|
-
getSolanaAccounts,
|
|
21
|
-
WalletTypes,
|
|
22
|
-
} from '@rango-dev/wallets-shared';
|
|
23
|
-
import {
|
|
24
|
-
isEvmBlockchain,
|
|
25
|
-
solanaBlockchain,
|
|
26
|
-
TransactionType,
|
|
27
|
-
} from 'rango-types';
|
|
28
|
-
|
|
29
|
-
import { EVM_SUPPORTED_CHAINS } from '../constants.js';
|
|
30
|
-
import signer from '../signer.js';
|
|
31
|
-
import { phantom as phantom_instance, type Provider } from '../utils.js';
|
|
32
|
-
|
|
33
|
-
const WALLET = WalletTypes.PHANTOM;
|
|
34
|
-
|
|
35
|
-
export const config = {
|
|
36
|
-
type: WALLET,
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export const getInstance = phantom_instance;
|
|
40
|
-
|
|
41
|
-
/*
|
|
42
|
-
* NOTE: Phantom's Hub version has support for EVM as well since we are deprecating the legacy,
|
|
43
|
-
* we just want to keep the implementation for some time and then legacy provider will be removed soon.
|
|
44
|
-
* So we don't add new namespaces (like EVM) to legacy.
|
|
45
|
-
*/
|
|
46
|
-
const connect: Connect = async ({ instance, meta }) => {
|
|
47
|
-
const solanaInstance = instance.get(Networks.SOLANA);
|
|
48
|
-
const result = await getSolanaAccounts({
|
|
49
|
-
instance: solanaInstance,
|
|
50
|
-
meta,
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
return result;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export const subscribe: Subscribe = ({ instance, updateAccounts, connect }) => {
|
|
57
|
-
const handleAccountsChanged = async (publicKey: string) => {
|
|
58
|
-
const network = Networks.SOLANA;
|
|
59
|
-
if (publicKey) {
|
|
60
|
-
const account = publicKey.toString();
|
|
61
|
-
updateAccounts([account]);
|
|
62
|
-
} else {
|
|
63
|
-
connect(network);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
instance?.on?.('accountChanged', handleAccountsChanged);
|
|
67
|
-
|
|
68
|
-
return () => {
|
|
69
|
-
instance?.off?.('accountChanged', handleAccountsChanged);
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
const canSwitchNetworkTo: CanSwitchNetwork = ({ network }) => {
|
|
73
|
-
return EVM_SUPPORTED_CHAINS.includes(network as Networks);
|
|
74
|
-
};
|
|
75
|
-
export const getSigners: (provider: Provider) => Promise<SignerFactory> =
|
|
76
|
-
signer;
|
|
77
|
-
|
|
78
|
-
const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {
|
|
79
|
-
const solanaInstance = chooseInstance(instance, meta, Networks.SOLANA);
|
|
80
|
-
try {
|
|
81
|
-
const result = await solanaInstance.connect({ onlyIfTrusted: true });
|
|
82
|
-
return !!result;
|
|
83
|
-
} catch {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
export const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (
|
|
88
|
-
allBlockChains
|
|
89
|
-
) => {
|
|
90
|
-
let supportedChains: BlockchainMeta[] = [];
|
|
91
|
-
const sui = allBlockChains.filter(
|
|
92
|
-
(blockchain) => blockchain.type === TransactionType.SUI
|
|
93
|
-
);
|
|
94
|
-
const solana = solanaBlockchain(allBlockChains);
|
|
95
|
-
const evms = allBlockChains.filter(
|
|
96
|
-
(chain): chain is EvmBlockchainMeta =>
|
|
97
|
-
isEvmBlockchain(chain) &&
|
|
98
|
-
EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)
|
|
99
|
-
);
|
|
100
|
-
const btc = allBlockChains.find((chain) => chain.name === Networks.BTC);
|
|
101
|
-
supportedChains = supportedChains.concat(solana, evms, sui);
|
|
102
|
-
if (btc) {
|
|
103
|
-
supportedChains.push(btc);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return {
|
|
107
|
-
name: 'Phantom',
|
|
108
|
-
img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',
|
|
109
|
-
installLink: {
|
|
110
|
-
CHROME:
|
|
111
|
-
'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',
|
|
112
|
-
|
|
113
|
-
DEFAULT: 'https://phantom.app/',
|
|
114
|
-
},
|
|
115
|
-
color: '#4d40c6',
|
|
116
|
-
// if you are adding a new namespace, don't forget to also update `properties`
|
|
117
|
-
needsNamespace: {
|
|
118
|
-
selection: 'multiple',
|
|
119
|
-
data: [
|
|
120
|
-
{
|
|
121
|
-
label: 'EVM',
|
|
122
|
-
value: 'EVM',
|
|
123
|
-
id: 'ETH',
|
|
124
|
-
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
125
|
-
allBlockchains.filter(
|
|
126
|
-
(chain): chain is EvmBlockchainMeta =>
|
|
127
|
-
isEvmBlockchain(chain) &&
|
|
128
|
-
EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)
|
|
129
|
-
),
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
label: 'Solana',
|
|
133
|
-
value: 'Solana',
|
|
134
|
-
id: 'SOLANA',
|
|
135
|
-
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
136
|
-
solanaBlockchain(allBlockchains),
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
label: 'BTC',
|
|
140
|
-
value: 'UTXO',
|
|
141
|
-
id: 'BTC',
|
|
142
|
-
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
143
|
-
allBlockchains.filter(
|
|
144
|
-
(chain): chain is TransferBlockchainMeta =>
|
|
145
|
-
chain.name === Networks.BTC
|
|
146
|
-
),
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
label: 'Sui',
|
|
150
|
-
value: 'Sui',
|
|
151
|
-
id: 'SUI',
|
|
152
|
-
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
153
|
-
allBlockchains.filter(
|
|
154
|
-
(chain): chain is SuiBlockchainMeta =>
|
|
155
|
-
chain.type === TransactionType.SUI
|
|
156
|
-
),
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
},
|
|
160
|
-
supportedChains,
|
|
161
|
-
};
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
const buildLegacyProvider: () => LegacyProviderInterface = () => ({
|
|
165
|
-
config,
|
|
166
|
-
getInstance,
|
|
167
|
-
connect,
|
|
168
|
-
subscribe,
|
|
169
|
-
getSigners,
|
|
170
|
-
getWalletInfo,
|
|
171
|
-
canSwitchNetworkTo,
|
|
172
|
-
canEagerConnect,
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
export { buildLegacyProvider };
|