@rango-dev/provider-coinbase 0.63.1-next.1 → 0.63.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.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYrD,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,eAAO,MAAM,QAAQ,EAAE,gBAwCtB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAQrD,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,eAAO,MAAM,QAAQ,EAAE,gBAoCtB,CAAC"}
package/dist/mod.js CHANGED
@@ -1,2 +1,2 @@
1
- var k=Object.defineProperty;var e=(n,o)=>k(n,"name",{value:o,configurable:!0});import{defineVersions as un}from"@hub3js/core/utils";import{ProviderBuilder as dn}from"@hub3js/core";import{evmBlockchains as V,hyperliquidBlockchain as D,solanaBlockchain as F}from"rango-types";import{EVM_NAMESPACE as B,SOLANA_NAMESPACE as L}from"@hub3js/namespaces";import{dynamicImportWithRefinedError as _,getNetworkInstance as p}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as j,TransactionType as f}from"rango-types";import{DefaultSolanaSigner as N}from"@rango-dev/signer-solana";import T from"bs58";var s=class extends N{static{e(this,"CustomSolanaSigner")}constructor(o){super(o)}async signMessage(o){let{signature:t}=await this.provider.signMessage(o);return T.encode(t)}};async function u(n){let o=p(n,B),t=p(n,L),d=new j,{DefaultEvmSigner:M}=await _(async()=>await import("@rango-dev/signer-evm"));return d.registerSigner(f.EVM,new M(o)),d.registerSigner(f.SOLANA,new s(t)),d}e(u,"getSigners");import{EVM_NAMESPACE as b,SOLANA_NAMESPACE as g}from"@hub3js/namespaces";function c(){let{coinbaseWalletExtension:n,coinbaseSolana:o}=window;if(!o&&!n)return null;let t=new Map;return n&&t.set(b,n),o&&t.set(g,o),t}e(c,"coinbase");function r(){let o=c()?.get(b);if(!o)throw new Error("Coinbase not injected or EVM not enabled. Please check your wallet.");return o}e(r,"evmCoinbase");function a(){let o=c()?.get(g);if(!o)throw new Error("Coinbase not injected or Solana not enabled. Please check your wallet.");return o}e(a,"solanaCoinbase");function h(){let n=c();if(!n)throw new Error("Coinbase is not injected. Please check your wallet.");return n}e(h,"getInstanceOrThrow");var i="coinbase",w={name:"Coinbase",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coinbase/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",brave:"https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",homepage:"https://www.coinbase.com/wallet"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:n=>[...V(n),...D(n)]},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:n=>F(n)}]}},{name:"signers",value:{getSigners:async()=>u(h())}}]};import{ActionBuilder as O,NamespaceBuilder as W}from"@hub3js/core";import{actions as m,builders as l,utils as q}from"@hub3js/evm";import*as A from"@hub3js/std/builders";import{connectAndUpdateStateForMultiNetworks as z,intoConnecting as U,intoConnectionFinished as H,standardizeAndThrowError as R}from"@hub3js/std/operators";var[G,v]=l.changeAccountSubscriber(r).format(async(n,o)=>{let t=await n.request({method:"eth_chainId"});return q.formatAccountsToCAIP([o[0]],t)}).build(),J=new O("connect").action(m.connect(r)).and((n,o)=>({...o,accounts:[o.accounts[0]]})).and(z).before(U).before(G).or(v).or(R).after(H).build(),K=A.disconnect().before(()=>{r().disconnect()}).after(v).build(),Q=l.canEagerConnect().action(m.canEagerConnect(r)).build(),X=l.canSwitchNetwork().action(m.canSwitchNetwork()).build(),Y=l.getChainId().action(m.getChainId(r)).build(),E=new W("EVM",i).action(J).action(K).action(Q).action(X).action(Y).build();import{ActionBuilder as y,NamespaceBuilder as $}from"@hub3js/core";import{actions as nn,builders as on}from"@hub3js/solana";import*as C from"@hub3js/std/builders";import{connectAndUpdateStateForSingleNetwork as en,intoConnecting as tn,intoConnectionFinished as rn,standardizeAndThrowError as an}from"@hub3js/std/operators";var Z=e(async()=>{let n=r();if(!a())throw new Error("Trying to eagerly connect to your wallet, but seems its solana instance is not available.");if(!n)throw new Error("Trying to eagerly connect to your EVM wallet, but seems its instance is not available.");try{return!!(await n.request({method:"eth_accounts"})).length}catch{return!1}},"canEagerConnectAction"),S={canEagerConnectAction:Z};var[cn,P]=on.changeAccountSubscriber(a).build(),sn=new y("connect").action(nn.connect(a)).and((n,o)=>[o[0]]).and(en).before(tn).before(cn).after(rn).or(P).or(an).build(),mn=C.disconnect().before(()=>{a().disconnect()}).after(P).build(),ln=new y("canEagerConnect").action(S.canEagerConnectAction).build(),x=new $("Solana",i).action(sn).action(mn).action(ln).build();var I=e(()=>new dn(i).init(function(n){let[,o]=n.state();c()&&(o("installed",!0),console.debug("[coinbase] instance detected.",n))}).config("metadata",w).add("solana",x).add("evm",E).build(),"buildProvider");var eo=e(()=>un().version("1.0.0",I()).build(),"versions");export{eo as versions};
1
+ var N=Object.defineProperty;var e=(o,n)=>N(o,"name",{value:n,configurable:!0});import{defineVersions as dn}from"@hub3js/core/utils";import{ProviderBuilder as ln}from"@hub3js/core";import{isEvmNamespace as V}from"@hub3js/evm";import{isSolanaNamespace as D}from"@hub3js/solana";import{EVM_NAMESPACE as L,SOLANA_NAMESPACE as _}from"@hub3js/namespaces";import{dynamicImportWithRefinedError as j,getNetworkInstance as p}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as B,TransactionType as f}from"rango-types";import{DefaultSolanaSigner as T}from"@rango-dev/signer-solana";import k from"bs58";var s=class extends T{static{e(this,"CustomSolanaSigner")}constructor(n){super(n)}async signMessage(n){let{signature:t}=await this.provider.signMessage(n);return k.encode(t)}};async function u(o){let n=p(o,L),t=p(o,_),d=new B,{DefaultEvmSigner:M}=await j(async()=>await import("@rango-dev/signer-evm"));return d.registerSigner(f.EVM,new M(n)),d.registerSigner(f.SOLANA,new s(t)),d}e(u,"getSigners");import{EVM_NAMESPACE as b,SOLANA_NAMESPACE as g}from"@hub3js/namespaces";function c(){let{coinbaseWalletExtension:o,coinbaseSolana:n}=window;if(!n&&!o)return null;let t=new Map;return o&&t.set(b,o),n&&t.set(g,n),t}e(c,"coinbase");function r(){let n=c()?.get(b);if(!n)throw new Error("Coinbase not injected or EVM not enabled. Please check your wallet.");return n}e(r,"evmCoinbase");function a(){let n=c()?.get(g);if(!n)throw new Error("Coinbase not injected or Solana not enabled. Please check your wallet.");return n}e(a,"solanaCoinbase");function h(){let o=c();if(!o)throw new Error("Coinbase is not injected. Please check your wallet.");return o}e(h,"getInstanceOrThrow");var i="coinbase",w={name:"Coinbase",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coinbase/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",brave:"https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",homepage:"https://www.coinbase.com/wallet"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",isChainSupported:V},{label:"Solana",value:"Solana",id:"SOLANA",isChainSupported:D}]}},{name:"signers",value:{getSigners:async()=>u(h())}}]};import{ActionBuilder as F,NamespaceBuilder as O}from"@hub3js/core";import{actions as m,builders as l,utils as W}from"@hub3js/evm";import*as A from"@hub3js/std/builders";import{connectAndUpdateStateForMultiNetworks as q,intoConnecting as z,intoConnectionFinished as U,standardizeAndThrowError as H}from"@hub3js/std/operators";var[R,v]=l.changeAccountSubscriber(r).format(async(o,n)=>{let t=await o.request({method:"eth_chainId"});return W.formatAccountsToCAIP([n[0]],t)}).build(),G=new F("connect").action(m.connect(r)).and((o,n)=>({...n,accounts:[n.accounts[0]]})).and(q).before(z).before(R).or(v).or(H).after(U).build(),J=A.disconnect().before(()=>{r().disconnect()}).after(v).build(),K=l.canEagerConnect().action(m.canEagerConnect(r)).build(),Q=l.canSwitchNetwork().action(m.canSwitchNetwork()).build(),X=l.getChainId().action(m.getChainId(r)).build(),E=new O("EVM",i).action(G).action(J).action(K).action(Q).action(X).build();import{ActionBuilder as y,NamespaceBuilder as Z}from"@hub3js/core";import{actions as $,builders as nn}from"@hub3js/solana";import*as C from"@hub3js/std/builders";import{connectAndUpdateStateForSingleNetwork as on,intoConnecting as en,intoConnectionFinished as tn,standardizeAndThrowError as rn}from"@hub3js/std/operators";var Y=e(async()=>{let o=r();if(!a())throw new Error("Trying to eagerly connect to your wallet, but seems its solana instance is not available.");if(!o)throw new Error("Trying to eagerly connect to your EVM wallet, but seems its instance is not available.");try{return!!(await o.request({method:"eth_accounts"})).length}catch{return!1}},"canEagerConnectAction"),S={canEagerConnectAction:Y};var[an,P]=nn.changeAccountSubscriber(a).build(),cn=new y("connect").action($.connect(a)).and((o,n)=>[n[0]]).and(on).before(en).before(an).after(tn).or(P).or(rn).build(),sn=C.disconnect().before(()=>{a().disconnect()}).after(P).build(),mn=new y("canEagerConnect").action(S.canEagerConnectAction).build(),x=new Z("Solana",i).action(cn).action(sn).action(mn).build();var I=e(()=>new ln(i).init(function(o){let[,n]=o.state();c()&&(n("installed",!0),console.debug("[coinbase] instance detected.",o))}).config("metadata",w).add("solana",x).add("evm",E).build(),"buildProvider");var eo=e(()=>dn().version("1.0.0",I()).build(),"versions");export{eo 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/solana-signer.ts", "../src/utils.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts", "../src/actions/solana.ts"],
4
- "sourcesContent": ["import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { coinbase as coinbaseInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (coinbaseInstance()) {\n setState('installed', true);\n console.debug('[coinbase] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('solana', solana)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport {\n type BlockchainMeta,\n evmBlockchains,\n hyperliquidBlockchain,\n solanaBlockchain,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'coinbase';\n\nexport const metadata: ProviderMetadata = {\n name: 'Coinbase',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coinbase/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad',\n brave:\n 'https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad',\n homepage: 'https://www.coinbase.com/wallet',\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 ...evmBlockchains(allBlockchains),\n ...hyperliquidBlockchain(allBlockchains),\n ],\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { EVM_NAMESPACE, SOLANA_NAMESPACE } from '@hub3js/namespaces';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { CustomSolanaSigner } from './signers/solana-signer.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, EVM_NAMESPACE);\n const solProvider = getNetworkInstance(provider, SOLANA_NAMESPACE);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n return signers;\n}\n", "import { DefaultSolanaSigner } from '@rango-dev/signer-solana';\nimport base58 from 'bs58';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SolanaExternalProvider = any;\n\nexport class CustomSolanaSigner extends DefaultSolanaSigner {\n constructor(provider: SolanaExternalProvider) {\n super(provider);\n }\n\n async signMessage(msg: string): Promise<string> {\n const { signature } = await this.provider.signMessage(msg);\n return base58.encode(signature);\n }\n}\n", "import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';\n\nimport { EVM_NAMESPACE, SOLANA_NAMESPACE } from '@hub3js/namespaces';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Provider = Record<string, any>;\n\nexport function coinbase(): Provider | null {\n const { coinbaseWalletExtension, coinbaseSolana } = window;\n\n if (!coinbaseSolana && !coinbaseWalletExtension) {\n return null;\n }\n\n const instances = new Map();\n\n if (coinbaseWalletExtension) {\n instances.set(EVM_NAMESPACE, coinbaseWalletExtension);\n }\n\n if (coinbaseSolana) {\n instances.set(SOLANA_NAMESPACE, coinbaseSolana);\n }\n\n return instances;\n}\n\nexport function evmCoinbase(): EvmProviderApi {\n const instances = coinbase();\n\n const evmInstance = instances?.get(EVM_NAMESPACE);\n\n if (!evmInstance) {\n throw new Error(\n 'Coinbase not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaCoinbase(): SolanaProviderApi {\n const instance = coinbase();\n const solanaInstance = instance?.get(SOLANA_NAMESPACE);\n\n if (!solanaInstance) {\n throw new Error(\n 'Coinbase not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance as SolanaProviderApi;\n}\nexport function getInstanceOrThrow(): Provider {\n const instances = coinbase();\n\n if (!instances) {\n throw new Error('Coinbase is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, utils } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport {\n connectAndUpdateStateForMultiNetworks,\n intoConnecting,\n intoConnectionFinished,\n standardizeAndThrowError,\n} from '@hub3js/std/operators';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmCoinbase } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(evmCoinbase)\n /*\n * Coinbase returns an array of connected accounts with the active one first.\n * Since we only need the active account, we take the first element as a workaround.\n */\n .format(async (instance, accounts) => {\n const chainId = await instance.request({ method: 'eth_chainId' });\n return utils.formatAccountsToCAIP([accounts[0]], chainId);\n })\n .build();\n\nconst connect = new ActionBuilder<EvmActions, 'connect'>('connect')\n .action(actions.connect(evmCoinbase))\n /*\n * Coinbase Wallet's `connect` returns a list where the currently selected account\n * is always the first item. We're directly taking this first item as the active account.\n *\n * ***NOTE***: Please keep it synced with `wallets/core/src/namespaces/solana/builders.ts`.\n *\n */\n .and((_, connectResult) => ({\n ...connectResult,\n accounts: [connectResult.accounts[0]],\n }))\n .and(connectAndUpdateStateForMultiNetworks)\n .before(intoConnecting)\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .after(intoConnectionFinished)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .before(() => {\n /*\n * Coinbase sometimes stays connected and causes the page to refresh.\n * This ensures we also disconnect from the wallet to prevent that behavior.\n */\n evmCoinbase().disconnect();\n })\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmCoinbase))\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmCoinbase))\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';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders } from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport {\n connectAndUpdateStateForSingleNetwork,\n intoConnecting,\n intoConnectionFinished,\n standardizeAndThrowError,\n} from '@hub3js/std/operators';\n\nimport { solanaActions } from '../actions/solana.js';\nimport { WALLET_ID } from '../constants.js';\nimport { solanaCoinbase } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(solanaCoinbase)\n .build();\n\nconst connect = new ActionBuilder<SolanaActions, 'connect'>('connect')\n .action(actions.connect(solanaCoinbase))\n /*\n * Coinbase Wallet's `connect` returns a list where the currently selected account\n * is always the first item. We're directly taking this first item as the active account.\n */\n .and((_, connectResult) => [connectResult[0]])\n .and(connectAndUpdateStateForSingleNetwork)\n .before(intoConnecting)\n .before(changeAccountSubscriber)\n .after(intoConnectionFinished)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .before(() => {\n /*\n * Coinbase sometimes stays connected and causes the page to refresh.\n * This ensures we also disconnect from the wallet to prevent that behavior.\n */\n solanaCoinbase().disconnect();\n })\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaActions.canEagerConnectAction)\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 { evmCoinbase, solanaCoinbase } from '../utils.js';\n\n/*\n * Coinbase does not provide an eager connection mechanism for its Solana wallet.\n * The only workaround is to use the EVM-based eager connect approach.\n * However, this will only work if the EVM namespace has been connected at least once before.\n * If either wallet instance is unavailable, we throw an error.\n */\nconst canEagerConnectAction = async () => {\n const evmInstance = evmCoinbase();\n const solanaInstance = solanaCoinbase();\n // Making sure that the Solana instance is available first to prevent errors.\n if (!solanaInstance) {\n throw new Error(\n 'Trying to eagerly connect to your wallet, but seems its solana instance is not available.'\n );\n }\n if (!evmInstance) {\n throw new Error(\n 'Trying to eagerly connect to your EVM wallet, but seems its instance is not available.'\n );\n }\n\n try {\n const accounts: string[] = await evmInstance.request({\n method: 'eth_accounts',\n });\n if (accounts.length) {\n return true;\n }\n return false;\n } catch {\n return false;\n }\n};\nexport const solanaActions = { canEagerConnectAction };\n"],
5
- "mappings": "+EAAA,OAAS,kBAAAA,OAAsB,qBCA/B,OAAS,mBAAAC,OAAuB,eCEhC,OAEE,kBAAAC,EACA,yBAAAC,EACA,oBAAAC,MACK,cCJP,OAAS,iBAAAC,EAAe,oBAAAC,MAAwB,qBAChD,OACE,iCAAAC,EACA,sBAAAC,MACK,4BACP,OAAS,wBAAAC,EAAsB,mBAAmBC,MAAc,cCRhE,OAAS,uBAAAC,MAA2B,2BACpC,OAAOC,MAAY,OAKZ,IAAMC,EAAN,cAAiCC,CAAoB,CAN5D,MAM4D,CAAAC,EAAA,2BAC1D,YAAYC,EAAkC,CAC5C,MAAMA,CAAQ,CAChB,CAEA,MAAM,YAAYC,EAA8B,CAC9C,GAAM,CAAE,UAAAC,CAAU,EAAI,MAAM,KAAK,SAAS,YAAYD,CAAG,EACzD,OAAOE,EAAO,OAAOD,CAAS,CAChC,CACF,EDHA,eAAOE,EACLC,EACwB,CACxB,IAAMC,EAAcC,EAAmBF,EAAUG,CAAa,EACxDC,EAAcF,EAAmBF,EAAUK,CAAgB,EAC3DC,EAAU,IAAIC,EACd,CAAE,iBAAAC,CAAiB,EAAI,MAAMC,EACjC,SAAY,KAAM,QAAO,uBAAuB,CAClD,EACA,OAAAH,EAAQ,eAAeI,EAAO,IAAK,IAAIF,EAAiBP,CAAW,CAAC,EACpEK,EAAQ,eAAeI,EAAO,OAAQ,IAAIC,EAAmBP,CAAW,CAAC,EAClEE,CACT,CAZ8BM,EAAAb,EAAA,cET9B,OAAS,iBAAAc,EAAe,oBAAAC,MAAwB,qBAKzC,SAASC,GAA4B,CAC1C,GAAM,CAAE,wBAAAC,EAAyB,eAAAC,CAAe,EAAI,OAEpD,GAAI,CAACA,GAAkB,CAACD,EACtB,OAAO,KAGT,IAAME,EAAY,IAAI,IAEtB,OAAIF,GACFE,EAAU,IAAIC,EAAeH,CAAuB,EAGlDC,GACFC,EAAU,IAAIE,EAAkBH,CAAc,EAGzCC,CACT,CAlBgBG,EAAAN,EAAA,YAoBT,SAASO,GAA8B,CAG5C,IAAMC,EAFYR,EAAS,GAEI,IAAII,CAAa,EAEhD,GAAI,CAACI,EACH,MAAM,IAAI,MACR,qEACF,EAGF,OAAOA,CACT,CAZgBF,EAAAC,EAAA,eAcT,SAASE,GAAoC,CAElD,IAAMC,EADWV,EAAS,GACO,IAAIK,CAAgB,EAErD,GAAI,CAACK,EACH,MAAM,IAAI,MACR,wEACF,EAGF,OAAOA,CACT,CAXgBJ,EAAAG,EAAA,kBAYT,SAASE,GAA+B,CAC7C,IAAMR,EAAYH,EAAS,EAE3B,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,qDAAqD,EAGvE,OAAOA,CACT,CARgBG,EAAAK,EAAA,sBH1CT,IAAMC,EAAY,WAEZC,EAA6B,CACxC,KAAM,WACN,KAAM,yFACN,WAAY,CACV,OACE,uGACF,MACE,uGACF,SAAU,iCACZ,EACA,WAAY,CACV,CACE,KAAM,aACN,MAAO,CACL,UAAW,WACX,KAAM,CACJ,CACE,MAAO,MACP,MAAO,MACP,GAAI,MACJ,mBAAqBC,GAAqC,CACxD,GAAGC,EAAeD,CAAc,EAChC,GAAGE,EAAsBF,CAAc,CACzC,CACF,EACA,CACE,MAAO,SACP,MAAO,SACP,GAAI,SACJ,mBAAqBA,GACnBG,EAAiBH,CAAc,CACnC,CACF,CACF,CACF,EACA,CACE,KAAM,UACN,MAAO,CAAE,WAAY,SAAYI,EAAWC,EAAmB,CAAC,CAAE,CACpE,CACF,CACF,EIpDA,OAAS,iBAAAC,EAAe,oBAAAC,MAAwB,eAChD,OAAS,WAAAC,EAAS,YAAAC,EAAU,SAAAC,MAAa,cACzC,UAAYC,MAAoB,uBAChC,OACE,yCAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,4BAAAC,MACK,wBAKP,GAAM,CAACC,EAAyBC,CAAoB,EAAIC,EACrD,wBAAwBC,CAAW,EAKnC,OAAO,MAAOC,EAAUC,IAAa,CACpC,IAAMC,EAAU,MAAMF,EAAS,QAAQ,CAAE,OAAQ,aAAc,CAAC,EAChE,OAAOG,EAAM,qBAAqB,CAACF,EAAS,CAAC,CAAC,EAAGC,CAAO,CAC1D,CAAC,EACA,MAAM,EAEHE,EAAU,IAAIC,EAAqC,SAAS,EAC/D,OAAOC,EAAQ,QAAQP,CAAW,CAAC,EAQnC,IAAI,CAACQ,EAAGC,KAAmB,CAC1B,GAAGA,EACH,SAAU,CAACA,EAAc,SAAS,CAAC,CAAC,CACtC,EAAE,EACD,IAAIC,CAAqC,EACzC,OAAOC,CAAc,EACrB,OAAOd,CAAuB,EAC9B,GAAGC,CAAoB,EACvB,GAAGc,CAAwB,EAC3B,MAAMC,CAAsB,EAC5B,MAAM,EAEHC,EACH,aAAuB,EACvB,OAAO,IAAM,CAKZd,EAAY,EAAE,WAAW,CAC3B,CAAC,EACA,MAAMF,CAAoB,EAC1B,MAAM,EAEHiB,EAAkBhB,EACrB,gBAAgB,EAChB,OAAOQ,EAAQ,gBAAgBP,CAAW,CAAC,EAC3C,MAAM,EAEHgB,EAAmBjB,EACtB,iBAAiB,EACjB,OAAOQ,EAAQ,iBAAiB,CAAC,EACjC,MAAM,EAEHU,EAAalB,EAChB,WAAW,EACX,OAAOQ,EAAQ,WAAWP,CAAW,CAAC,EACtC,MAAM,EAEHkB,EAAM,IAAIC,EAA6B,MAAOC,CAAS,EAC1D,OAAOf,CAAO,EACd,OAAOS,CAAU,EACjB,OAAOC,CAAe,EACtB,OAAOC,CAAgB,EACvB,OAAOC,CAAU,EACjB,MAAM,EC/ET,OAAS,iBAAAI,EAAe,oBAAAC,MAAwB,eAChD,OAAS,WAAAC,GAAS,YAAAC,OAAgB,iBAClC,UAAYC,MAAoB,uBAChC,OACE,yCAAAC,GACA,kBAAAC,GACA,0BAAAC,GACA,4BAAAC,OACK,wBCFP,IAAMC,EAAwBC,EAAA,SAAY,CACxC,IAAMC,EAAcC,EAAY,EAGhC,GAAI,CAFmBC,EAAe,EAGpC,MAAM,IAAI,MACR,2FACF,EAEF,GAAI,CAACF,EACH,MAAM,IAAI,MACR,wFACF,EAGF,GAAI,CAIF,MAAI,GAHuB,MAAMA,EAAY,QAAQ,CACnD,OAAQ,cACV,CAAC,GACY,MAIf,MAAQ,CACN,MAAO,EACT,CACF,EA1B8B,yBA2BjBG,EAAgB,CAAE,sBAAAL,CAAsB,EDnBrD,GAAM,CAACM,GAAyBC,CAAoB,EAAIC,GACrD,wBAAwBC,CAAc,EACtC,MAAM,EAEHC,GAAU,IAAIC,EAAwC,SAAS,EAClE,OAAOC,GAAQ,QAAQH,CAAc,CAAC,EAKtC,IAAI,CAACI,EAAGC,IAAkB,CAACA,EAAc,CAAC,CAAC,CAAC,EAC5C,IAAIC,EAAqC,EACzC,OAAOC,EAAc,EACrB,OAAOV,EAAuB,EAC9B,MAAMW,EAAsB,EAC5B,GAAGV,CAAoB,EACvB,GAAGW,EAAwB,EAC3B,MAAM,EAEHC,GACH,aAA0B,EAC1B,OAAO,IAAM,CAKZV,EAAe,EAAE,WAAW,CAC9B,CAAC,EACA,MAAMF,CAAoB,EAC1B,MAAM,EAEHa,GAAkB,IAAIT,EAC1B,iBACF,EACG,OAAOU,EAAc,qBAAqB,EAC1C,MAAM,EAEHC,EAAS,IAAIC,EAAgC,SAAUC,CAAS,EACnE,OAAOd,EAAO,EACd,OAAOS,EAAU,EACjB,OAAOC,EAAe,EACtB,MAAM,ENlDT,IAAMK,EAAgBC,EAAA,IACpB,IAAIC,GAAgBC,CAAS,EAC1B,KAAK,SAAUC,EAAS,CACvB,GAAM,CAAC,CAAEC,CAAQ,EAAID,EAAQ,MAAM,EAE/BE,EAAiB,IACnBD,EAAS,YAAa,EAAI,EAC1B,QAAQ,MAAM,gCAAiCD,CAAO,EAE1D,CAAC,EACA,OAAO,WAAYG,CAAQ,EAC3B,IAAI,SAAUC,CAAM,EACpB,IAAI,MAAOC,CAAG,EACd,MAAM,EAbW,iBDHtB,IAAMC,GAAWC,EAAA,IACfC,GAAe,EAAE,QAAQ,QAASC,EAAc,CAAC,EAAE,MAAM,EAD1C",
6
- "names": ["defineVersions", "ProviderBuilder", "evmBlockchains", "hyperliquidBlockchain", "solanaBlockchain", "EVM_NAMESPACE", "SOLANA_NAMESPACE", "dynamicImportWithRefinedError", "getNetworkInstance", "DefaultSignerFactory", "TxType", "DefaultSolanaSigner", "base58", "CustomSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "signature", "base58", "getSigners", "provider", "ethProvider", "getNetworkInstance", "EVM_NAMESPACE", "solProvider", "SOLANA_NAMESPACE", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "CustomSolanaSigner", "__name", "EVM_NAMESPACE", "SOLANA_NAMESPACE", "coinbase", "coinbaseWalletExtension", "coinbaseSolana", "instances", "EVM_NAMESPACE", "SOLANA_NAMESPACE", "__name", "evmCoinbase", "evmInstance", "solanaCoinbase", "solanaInstance", "getInstanceOrThrow", "WALLET_ID", "metadata", "allBlockchains", "evmBlockchains", "hyperliquidBlockchain", "solanaBlockchain", "getSigners", "getInstanceOrThrow", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "utils", "commonBuilders", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "builders", "evmCoinbase", "instance", "accounts", "chainId", "utils", "connect", "ActionBuilder", "actions", "_", "connectResult", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "standardizeAndThrowError", "intoConnectionFinished", "disconnect", "canEagerConnect", "canSwitchNetwork", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "commonBuilders", "connectAndUpdateStateForSingleNetwork", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "canEagerConnectAction", "__name", "evmInstance", "evmCoinbase", "solanaCoinbase", "solanaActions", "changeAccountSubscriber", "changeAccountCleanup", "builders", "solanaCoinbase", "connect", "ActionBuilder", "actions", "_", "connectResult", "connectAndUpdateStateForSingleNetwork", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "disconnect", "canEagerConnect", "solanaActions", "solana", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "coinbase", "metadata", "solana", "evm", "versions", "__name", "defineVersions", "buildProvider"]
4
+ "sourcesContent": ["import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\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 { coinbase as coinbaseInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (coinbaseInstance()) {\n setState('installed', true);\n console.debug('[coinbase] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('solana', solana)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport { isEvmNamespace } from '@hub3js/evm';\nimport { isSolanaNamespace } from '@hub3js/solana';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'coinbase';\n\nexport const metadata: ProviderMetadata = {\n name: 'Coinbase',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coinbase/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad',\n brave:\n 'https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad',\n homepage: 'https://www.coinbase.com/wallet',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n isChainSupported: isEvmNamespace,\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n isChainSupported: isSolanaNamespace,\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { EVM_NAMESPACE, SOLANA_NAMESPACE } from '@hub3js/namespaces';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { CustomSolanaSigner } from './signers/solana-signer.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, EVM_NAMESPACE);\n const solProvider = getNetworkInstance(provider, SOLANA_NAMESPACE);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n return signers;\n}\n", "import { DefaultSolanaSigner } from '@rango-dev/signer-solana';\nimport base58 from 'bs58';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SolanaExternalProvider = any;\n\nexport class CustomSolanaSigner extends DefaultSolanaSigner {\n constructor(provider: SolanaExternalProvider) {\n super(provider);\n }\n\n async signMessage(msg: string): Promise<string> {\n const { signature } = await this.provider.signMessage(msg);\n return base58.encode(signature);\n }\n}\n", "import type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';\n\nimport { EVM_NAMESPACE, SOLANA_NAMESPACE } from '@hub3js/namespaces';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Provider = Record<string, any>;\n\nexport function coinbase(): Provider | null {\n const { coinbaseWalletExtension, coinbaseSolana } = window;\n\n if (!coinbaseSolana && !coinbaseWalletExtension) {\n return null;\n }\n\n const instances = new Map();\n\n if (coinbaseWalletExtension) {\n instances.set(EVM_NAMESPACE, coinbaseWalletExtension);\n }\n\n if (coinbaseSolana) {\n instances.set(SOLANA_NAMESPACE, coinbaseSolana);\n }\n\n return instances;\n}\n\nexport function evmCoinbase(): EvmProviderApi {\n const instances = coinbase();\n\n const evmInstance = instances?.get(EVM_NAMESPACE);\n\n if (!evmInstance) {\n throw new Error(\n 'Coinbase not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaCoinbase(): SolanaProviderApi {\n const instance = coinbase();\n const solanaInstance = instance?.get(SOLANA_NAMESPACE);\n\n if (!solanaInstance) {\n throw new Error(\n 'Coinbase not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance as SolanaProviderApi;\n}\nexport function getInstanceOrThrow(): Provider {\n const instances = coinbase();\n\n if (!instances) {\n throw new Error('Coinbase is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, utils } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport {\n connectAndUpdateStateForMultiNetworks,\n intoConnecting,\n intoConnectionFinished,\n standardizeAndThrowError,\n} from '@hub3js/std/operators';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmCoinbase } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(evmCoinbase)\n /*\n * Coinbase returns an array of connected accounts with the active one first.\n * Since we only need the active account, we take the first element as a workaround.\n */\n .format(async (instance, accounts) => {\n const chainId = await instance.request({ method: 'eth_chainId' });\n return utils.formatAccountsToCAIP([accounts[0]], chainId);\n })\n .build();\n\nconst connect = new ActionBuilder<EvmActions, 'connect'>('connect')\n .action(actions.connect(evmCoinbase))\n /*\n * Coinbase Wallet's `connect` returns a list where the currently selected account\n * is always the first item. We're directly taking this first item as the active account.\n *\n * ***NOTE***: Please keep it synced with `wallets/core/src/namespaces/solana/builders.ts`.\n *\n */\n .and((_, connectResult) => ({\n ...connectResult,\n accounts: [connectResult.accounts[0]],\n }))\n .and(connectAndUpdateStateForMultiNetworks)\n .before(intoConnecting)\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .after(intoConnectionFinished)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .before(() => {\n /*\n * Coinbase sometimes stays connected and causes the page to refresh.\n * This ensures we also disconnect from the wallet to prevent that behavior.\n */\n evmCoinbase().disconnect();\n })\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmCoinbase))\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmCoinbase))\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';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders } from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport {\n connectAndUpdateStateForSingleNetwork,\n intoConnecting,\n intoConnectionFinished,\n standardizeAndThrowError,\n} from '@hub3js/std/operators';\n\nimport { solanaActions } from '../actions/solana.js';\nimport { WALLET_ID } from '../constants.js';\nimport { solanaCoinbase } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(solanaCoinbase)\n .build();\n\nconst connect = new ActionBuilder<SolanaActions, 'connect'>('connect')\n .action(actions.connect(solanaCoinbase))\n /*\n * Coinbase Wallet's `connect` returns a list where the currently selected account\n * is always the first item. We're directly taking this first item as the active account.\n */\n .and((_, connectResult) => [connectResult[0]])\n .and(connectAndUpdateStateForSingleNetwork)\n .before(intoConnecting)\n .before(changeAccountSubscriber)\n .after(intoConnectionFinished)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .before(() => {\n /*\n * Coinbase sometimes stays connected and causes the page to refresh.\n * This ensures we also disconnect from the wallet to prevent that behavior.\n */\n solanaCoinbase().disconnect();\n })\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaActions.canEagerConnectAction)\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 { evmCoinbase, solanaCoinbase } from '../utils.js';\n\n/*\n * Coinbase does not provide an eager connection mechanism for its Solana wallet.\n * The only workaround is to use the EVM-based eager connect approach.\n * However, this will only work if the EVM namespace has been connected at least once before.\n * If either wallet instance is unavailable, we throw an error.\n */\nconst canEagerConnectAction = async () => {\n const evmInstance = evmCoinbase();\n const solanaInstance = solanaCoinbase();\n // Making sure that the Solana instance is available first to prevent errors.\n if (!solanaInstance) {\n throw new Error(\n 'Trying to eagerly connect to your wallet, but seems its solana instance is not available.'\n );\n }\n if (!evmInstance) {\n throw new Error(\n 'Trying to eagerly connect to your EVM wallet, but seems its instance is not available.'\n );\n }\n\n try {\n const accounts: string[] = await evmInstance.request({\n method: 'eth_accounts',\n });\n if (accounts.length) {\n return true;\n }\n return false;\n } catch {\n return false;\n }\n};\nexport const solanaActions = { canEagerConnectAction };\n"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "ProviderBuilder", "isEvmNamespace", "isSolanaNamespace", "EVM_NAMESPACE", "SOLANA_NAMESPACE", "dynamicImportWithRefinedError", "getNetworkInstance", "DefaultSignerFactory", "TxType", "DefaultSolanaSigner", "base58", "CustomSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "signature", "base58", "getSigners", "provider", "ethProvider", "getNetworkInstance", "EVM_NAMESPACE", "solProvider", "SOLANA_NAMESPACE", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "CustomSolanaSigner", "__name", "EVM_NAMESPACE", "SOLANA_NAMESPACE", "coinbase", "coinbaseWalletExtension", "coinbaseSolana", "instances", "EVM_NAMESPACE", "SOLANA_NAMESPACE", "__name", "evmCoinbase", "evmInstance", "solanaCoinbase", "solanaInstance", "getInstanceOrThrow", "WALLET_ID", "metadata", "isEvmNamespace", "isSolanaNamespace", "getSigners", "getInstanceOrThrow", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "utils", "commonBuilders", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "builders", "evmCoinbase", "instance", "accounts", "chainId", "utils", "connect", "ActionBuilder", "actions", "_", "connectResult", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "standardizeAndThrowError", "intoConnectionFinished", "disconnect", "canEagerConnect", "canSwitchNetwork", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "commonBuilders", "connectAndUpdateStateForSingleNetwork", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "canEagerConnectAction", "__name", "evmInstance", "evmCoinbase", "solanaCoinbase", "solanaActions", "changeAccountSubscriber", "changeAccountCleanup", "builders", "solanaCoinbase", "connect", "ActionBuilder", "actions", "_", "connectResult", "connectAndUpdateStateForSingleNetwork", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "disconnect", "canEagerConnect", "solanaActions", "solana", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "coinbase", "metadata", "solana", "evm", "versions", "__name", "defineVersions", "buildProvider"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-coinbase",
3
- "version": "0.63.1-next.1",
3
+ "version": "0.63.1-next.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -21,15 +21,15 @@
21
21
  "lint": "eslint \"**/*.{ts,tsx}\""
22
22
  },
23
23
  "dependencies": {
24
- "@hub3js/core": "^0.61.0",
25
- "@hub3js/evm": "^0.3.0",
26
- "@hub3js/namespaces": "^0.2.2",
27
- "@hub3js/solana": "^0.3.0",
28
- "@hub3js/std": "^0.2.0",
24
+ "@hub3js/core": "^0.61.1",
25
+ "@hub3js/evm": "^0.3.3",
26
+ "@hub3js/namespaces": "^0.2.5",
27
+ "@hub3js/solana": "^0.3.3",
28
+ "@hub3js/std": "^0.2.3",
29
29
  "@rango-dev/signer-evm": "^0.44.1-next.0",
30
30
  "@rango-dev/signer-solana": "^0.48.1-next.0",
31
- "@rango-dev/wallets-core": "^0.60.1-next.3",
32
- "@rango-dev/wallets-shared": "^0.61.1-next.4",
31
+ "@rango-dev/wallets-core": "^0.60.1-next.4",
32
+ "@rango-dev/wallets-shared": "^0.61.1-next.5",
33
33
  "bs58": "^5.0.0",
34
34
  "rango-types": "^0.5.0"
35
35
  },
package/src/constants.ts CHANGED
@@ -1,11 +1,7 @@
1
1
  import type { ProviderMetadata } from '@hub3js/core';
2
2
 
3
- import {
4
- type BlockchainMeta,
5
- evmBlockchains,
6
- hyperliquidBlockchain,
7
- solanaBlockchain,
8
- } from 'rango-types';
3
+ import { isEvmNamespace } from '@hub3js/evm';
4
+ import { isSolanaNamespace } from '@hub3js/solana';
9
5
 
10
6
  import getSigners from './signer.js';
11
7
  import { getInstanceOrThrow } from './utils.js';
@@ -32,17 +28,13 @@ export const metadata: ProviderMetadata = {
32
28
  label: 'EVM',
33
29
  value: 'EVM',
34
30
  id: 'ETH',
35
- getSupportedChains: (allBlockchains: BlockchainMeta[]) => [
36
- ...evmBlockchains(allBlockchains),
37
- ...hyperliquidBlockchain(allBlockchains),
38
- ],
31
+ isChainSupported: isEvmNamespace,
39
32
  },
40
33
  {
41
34
  label: 'Solana',
42
35
  value: 'Solana',
43
36
  id: 'SOLANA',
44
- getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
45
- solanaBlockchain(allBlockchains),
37
+ isChainSupported: isSolanaNamespace,
46
38
  },
47
39
  ],
48
40
  },