@rango-dev/provider-rabby 0.30.1-next.2 → 0.30.1-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mod.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  declare const versions: () => readonly [readonly ["1.0.0", import("@hub3js/core").Provider<Record<"evm", import("@hub3js/evm").EvmActions>>]];
2
2
  export { versions };
3
+ export { WALLET_ID } from './constants.js';
3
4
  //# sourceMappingURL=mod.d.ts.map
package/dist/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,uHAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,uHAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/mod.js CHANGED
@@ -1,2 +1,2 @@
1
- var y=Object.defineProperty;var t=(o,e)=>y(o,"name",{value:e,configurable:!0});import{defineVersions as D}from"@hub3js/core/utils";import{ProviderBuilder as T}from"@hub3js/core";import{isEvmNamespace as N}from"@hub3js/evm";import{EVM_NAMESPACE as E}from"@hub3js/namespaces";import{getNetworkInstance as w}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as A,TransactionType as P}from"rango-types";async function m(o){let e=w(o,E),r=new A,{DefaultEvmSigner:i}=await import("@rango-dev/signer-evm");return r.registerSigner(P.EVM,new i(e)),r}t(m,"getSigners");import{utils as p}from"@hub3js/evm";import{EVM_NAMESPACE as b}from"@hub3js/namespaces";function d(){let{ethereum:o}=window;if(!o?.isRabby)return null;let e=new Map;return e.set(b,o),e}t(d,"rabby");function n(){let e=d()?.get(b);if(!e)throw new Error("Rabby not injected or EVM not enabled. Please check your wallet.");return e}t(n,"evmRabby");async function l(o,e){try{let r=typeof e=="string"?e:e.chainId;await p.switchNetwork(o,r)}catch(r){let i=r;if(typeof e!="string"&&i.code===-32603&&i.message.includes("Unrecognized chain ID")){await p.suggestNetwork(o,e);return}throw r}}t(l,"switchOrAddNetwork");var a="rabby",u={name:"Rabby",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/rabby/icon.svg",extensions:{chrome:"https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch",brave:"https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch",firefox:"https://addons.mozilla.org/en-US/firefox/addon/rabby-wallet",homepage:"https://rabby.io/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",isChainSupported:N}]}},{name:"signers",value:{getSigners:async()=>m(n())}}]};import{NamespaceBuilder as S}from"@hub3js/core";import{actions as c,builders as s,hooks as I}from"@hub3js/evm";import*as g from"@hub3js/std/builders";import{standardizeAndThrowError as R}from"@hub3js/std/operators";var[_,f]=I.changeAccountSubscriber(n),C=s.connect().action(c.connect(n,{switchOrAddNetwork:l})).before(_).or(f).or(R).build(),O=g.disconnect().after(f).build(),k=s.canSwitchNetwork().action(c.canSwitchNetwork()).build(),x=s.canEagerConnect().action(c.canEagerConnect(n)).build(),M=s.getChainId().action(c.getChainId(n)).build(),v=new S("EVM",a).action(C).action(O).action(x).action(k).action(M).build();var h=t(()=>new T(a).init(function(o){let[,e]=o.state();d()&&(e("installed",!0),console.debug("[rabby] instance detected.",o))}).config("metadata",u).add("evm",v).build(),"buildProvider");var be=t(()=>D().version("1.0.0",h()).build(),"versions");export{be as versions};
1
+ var y=Object.defineProperty;var o=(t,e)=>y(t,"name",{value:e,configurable:!0});import{defineVersions as D}from"@hub3js/core/utils";import{ProviderBuilder as k}from"@hub3js/core";import{isEvmNamespace as I}from"@hub3js/evm";import{EVM_NAMESPACE as w}from"@hub3js/namespaces";import{DefaultSignerFactory as A,TransactionType as P}from"rango-types";async function d(t){let e=t.get(w),r=new A,{DefaultEvmSigner:a}=await import("@rango-dev/signer-evm");return e&&r.registerSigner(P.EVM,new a(e)),r}o(d,"getSigners");import{utils as p}from"@hub3js/evm";import{EVM_NAMESPACE as b}from"@hub3js/namespaces";function c(){let{ethereum:t}=window;if(!t?.isRabby)return null;let e=new Map;return e.set(b,t),e}o(c,"rabby");function l(){let t=c();if(!t)throw new Error("Rabby is not injected. Please check your wallet.");return t}o(l,"getInstanceOrThrow");function n(){let e=c()?.get(b);if(!e)throw new Error("Rabby not injected or EVM not enabled. Please check your wallet.");return e}o(n,"evmRabby");async function u(t,e){try{let r=typeof e=="string"?e:e.chainId;await p.switchNetwork(t,r)}catch(r){let a=r;if(typeof e!="string"&&a.code===-32603&&a.message.includes("Unrecognized chain ID")){await p.suggestNetwork(t,e);return}throw r}}o(u,"switchOrAddNetwork");var i="rabby",f={name:"Rabby",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/rabby/icon.svg",extensions:{chrome:"https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch",brave:"https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch",firefox:"https://addons.mozilla.org/en-US/firefox/addon/rabby-wallet",homepage:"https://rabby.io/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",isChainSupported:I}]}},{name:"signers",value:{getSigners:async()=>d(l())}}]};import{NamespaceBuilder as S}from"@hub3js/core";import{actions as s,builders as m,hooks as N}from"@hub3js/evm";import*as g from"@hub3js/std/builders";import{standardizeAndThrowError as _}from"@hub3js/std/operators";var[O,h]=N.changeAccountSubscriber(n),C=m.connect().action(s.connect(n,{switchOrAddNetwork:u})).before(O).or(h).or(_).build(),M=g.disconnect().after(h).build(),R=m.canSwitchNetwork().action(s.canSwitchNetwork()).build(),x=m.canEagerConnect().action(s.canEagerConnect(n)).build(),T=m.getChainId().action(s.getChainId(n)).build(),E=new S("EVM",i).action(C).action(M).action(x).action(R).action(T).build();var v=o(()=>new k(i).init(function(t){let[,e]=t.state();c()&&(e("installed",!0),console.debug("[rabby] instance detected.",t))}).config("metadata",f).add("evm",E).build(),"buildProvider");var pe=o(()=>D().version("1.0.0",v()).build(),"versions");export{i as WALLET_ID,pe as versions};
2
2
  //# sourceMappingURL=mod.js.map
package/dist/mod.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/mod.ts", "../src/provider.ts", "../src/constants.ts", "../src/signer.ts", "../src/utils.ts", "../src/namespaces/evm.ts"],
4
- "sourcesContent": ["import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { rabby as rabbyInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n if (rabbyInstance()) {\n setState('installed', true);\n console.debug('[rabby] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport { isEvmNamespace } from '@hub3js/evm';\n\nimport getSigners from './signer.js';\nimport { evmRabby } from './utils.js';\n\nexport const WALLET_ID = 'rabby';\n\nexport const metadata: ProviderMetadata = {\n name: 'Rabby',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/rabby/icon.svg',\n extensions: {\n chrome:\n 'https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch',\n brave:\n 'https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch',\n firefox: 'https://addons.mozilla.org/en-US/firefox/addon/rabby-wallet',\n homepage: 'https://rabby.io/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n isChainSupported: isEvmNamespace,\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(evmRabby()) },\n },\n ],\n};\n", "import type { Provider } from './utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\nimport { getNetworkInstance } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const evmProvider = getNetworkInstance(provider, EVM_NAMESPACE);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));\n return signers;\n}\n", "import {\n type Chain,\n type ChainId,\n type ProviderAPI as EvmProviderApi,\n type ProviderAPI,\n utils,\n} from '@hub3js/evm';\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Provider = Record<string, any>;\nexport function rabby(): Provider | null {\n const { ethereum } = window;\n\n if (!ethereum?.isRabby) {\n return null;\n }\n\n const instances = new Map();\n\n instances.set(EVM_NAMESPACE, ethereum);\n\n return instances;\n}\n\nexport function evmRabby(): EvmProviderApi {\n const instances = rabby();\n\n const evmInstance = instances?.get(EVM_NAMESPACE);\n\n if (!evmInstance) {\n throw new Error(\n 'Rabby not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\nexport async function switchOrAddNetwork(\n instance: ProviderAPI,\n chain: ChainId | Chain\n) {\n try {\n const chainId = typeof chain === 'string' ? chain : chain.chainId;\n await utils.switchNetwork(instance, chainId);\n } catch (switchError) {\n const error = switchError as { code: number; message: string };\n\n /*\n * Workaround for handling unrecognized chain errors in rabby where error code -32603\n * (defined in EIP-1474 as an internal RPC error) is used instead of the metamask chain-not-found code.\n * Combine the code check with the specific error message \"Unrecognized chain ID\"\n * to reliably identify this scenario.\n */\n const NOT_FOUND_CHAIN_ERROR_CODE = -32603;\n const NOT_FOUND_ERROR_MESSAGE = 'Unrecognized chain ID';\n if (\n typeof chain !== 'string' &&\n error.code === NOT_FOUND_CHAIN_ERROR_CODE &&\n error.message.includes(NOT_FOUND_ERROR_MESSAGE)\n ) {\n await utils.suggestNetwork(instance, chain);\n return;\n }\n throw switchError;\n }\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 { evmRabby, switchOrAddNetwork } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(evmRabby);\n\nconst connect = builders\n .connect()\n .action(actions.connect(evmRabby, { switchOrAddNetwork }))\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 canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmRabby))\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmRabby))\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"],
5
- "mappings": "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",
6
- "names": ["defineVersions", "ProviderBuilder", "isEvmNamespace", "EVM_NAMESPACE", "getNetworkInstance", "DefaultSignerFactory", "TxType", "getSigners", "provider", "evmProvider", "getNetworkInstance", "EVM_NAMESPACE", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "TxType", "__name", "utils", "EVM_NAMESPACE", "rabby", "ethereum", "instances", "EVM_NAMESPACE", "__name", "evmRabby", "evmInstance", "switchOrAddNetwork", "instance", "chain", "chainId", "utils", "switchError", "error", "WALLET_ID", "metadata", "isEvmNamespace", "getSigners", "evmRabby", "NamespaceBuilder", "actions", "builders", "hooks", "commonBuilders", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "evmRabby", "connect", "builders", "actions", "switchOrAddNetwork", "standardizeAndThrowError", "disconnect", "canSwitchNetwork", "canEagerConnect", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "rabby", "metadata", "evm", "versions", "__name", "defineVersions", "buildProvider"]
4
+ "sourcesContent": ["import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\nexport { WALLET_ID } from './constants.js';\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { rabby as rabbyInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n if (rabbyInstance()) {\n setState('installed', true);\n console.debug('[rabby] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport { isEvmNamespace } from '@hub3js/evm';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'rabby';\n\nexport const metadata: ProviderMetadata = {\n name: 'Rabby',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/rabby/icon.svg',\n extensions: {\n chrome:\n 'https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch',\n brave:\n 'https://chromewebstore.google.com/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch',\n firefox: 'https://addons.mozilla.org/en-US/firefox/addon/rabby-wallet',\n homepage: 'https://rabby.io/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n isChainSupported: isEvmNamespace,\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const evmProvider = provider.get(EVM_NAMESPACE);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');\n if (!!evmProvider) {\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));\n }\n return signers;\n}\n", "import type { InstanceMap } from '@hub3js/std/types';\n\nimport {\n type Chain,\n type ChainId,\n type ProviderAPI as EvmProviderApi,\n type ProviderAPI,\n utils,\n} from '@hub3js/evm';\nimport { EVM_NAMESPACE } from '@hub3js/namespaces';\n\nexport type ProviderObject = {\n [EVM_NAMESPACE]: EvmProviderApi;\n};\nexport type Provider = InstanceMap<ProviderObject>;\nexport function rabby(): Provider | null {\n const { ethereum } = window;\n\n if (!ethereum?.isRabby) {\n return null;\n }\n\n const instances = new Map();\n\n instances.set(EVM_NAMESPACE, ethereum);\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = rabby();\n\n if (!instances) {\n throw new Error('Rabby is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmRabby(): EvmProviderApi {\n const instances = rabby();\n\n const evmInstance = instances?.get(EVM_NAMESPACE);\n\n if (!evmInstance) {\n throw new Error(\n 'Rabby not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance;\n}\nexport async function switchOrAddNetwork(\n instance: ProviderAPI,\n chain: ChainId | Chain\n) {\n try {\n const chainId = typeof chain === 'string' ? chain : chain.chainId;\n await utils.switchNetwork(instance, chainId);\n } catch (switchError) {\n const error = switchError as { code: number; message: string };\n\n /*\n * Workaround for handling unrecognized chain errors in rabby where error code -32603\n * (defined in EIP-1474 as an internal RPC error) is used instead of the metamask chain-not-found code.\n * Combine the code check with the specific error message \"Unrecognized chain ID\"\n * to reliably identify this scenario.\n */\n const NOT_FOUND_CHAIN_ERROR_CODE = -32603;\n const NOT_FOUND_ERROR_MESSAGE = 'Unrecognized chain ID';\n if (\n typeof chain !== 'string' &&\n error.code === NOT_FOUND_CHAIN_ERROR_CODE &&\n error.message.includes(NOT_FOUND_ERROR_MESSAGE)\n ) {\n await utils.suggestNetwork(instance, chain);\n return;\n }\n throw switchError;\n }\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 { evmRabby, switchOrAddNetwork } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(evmRabby);\n\nconst connect = builders\n .connect()\n .action(actions.connect(evmRabby, { switchOrAddNetwork }))\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 canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmRabby))\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmRabby))\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"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "ProviderBuilder", "isEvmNamespace", "EVM_NAMESPACE", "DefaultSignerFactory", "TxType", "getSigners", "provider", "evmProvider", "EVM_NAMESPACE", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "TxType", "__name", "utils", "EVM_NAMESPACE", "rabby", "ethereum", "instances", "EVM_NAMESPACE", "__name", "getInstanceOrThrow", "evmRabby", "evmInstance", "switchOrAddNetwork", "instance", "chain", "chainId", "utils", "switchError", "error", "WALLET_ID", "metadata", "isEvmNamespace", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "actions", "builders", "hooks", "commonBuilders", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "evmRabby", "connect", "builders", "actions", "switchOrAddNetwork", "standardizeAndThrowError", "disconnect", "canSwitchNetwork", "canEagerConnect", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "rabby", "metadata", "evm", "versions", "__name", "defineVersions", "buildProvider"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAMxB"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAQxB"}
package/dist/utils.d.ts CHANGED
@@ -1,6 +1,12 @@
1
+ import type { InstanceMap } from '@hub3js/std/types';
1
2
  import { type Chain, type ChainId, type ProviderAPI as EvmProviderApi, type ProviderAPI } from '@hub3js/evm';
2
- export type Provider = Record<string, any>;
3
+ import { EVM_NAMESPACE } from '@hub3js/namespaces';
4
+ export type ProviderObject = {
5
+ [EVM_NAMESPACE]: EvmProviderApi;
6
+ };
7
+ export type Provider = InstanceMap<ProviderObject>;
3
8
  export declare function rabby(): Provider | null;
9
+ export declare function getInstanceOrThrow(): Provider;
4
10
  export declare function evmRabby(): EvmProviderApi;
5
11
  export declare function switchOrAddNetwork(instance: ProviderAPI, chain: ChainId | Chain): Promise<void>;
6
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,WAAW,IAAI,cAAc,EAClC,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAIrB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C,wBAAgB,KAAK,IAAI,QAAQ,GAAG,IAAI,CAYvC;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAYzC;AACD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,OAAO,GAAG,KAAK,iBA0BvB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,WAAW,IAAI,cAAc,EAClC,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AACnD,wBAAgB,KAAK,IAAI,QAAQ,GAAG,IAAI,CAYvC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAYzC;AACD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,OAAO,GAAG,KAAK,iBA0BvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-rabby",
3
- "version": "0.30.1-next.2",
3
+ "version": "0.30.1-next.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -22,12 +22,11 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@hub3js/core": "^0.61.1",
25
- "@hub3js/evm": "^0.3.3",
26
- "@hub3js/namespaces": "^0.2.5",
27
- "@hub3js/std": "^0.2.3",
28
- "@rango-dev/signer-evm": "^0.45.0",
29
- "@rango-dev/wallets-core": "^0.61.0",
30
- "@rango-dev/wallets-shared": "^0.62.1-next.2",
25
+ "@hub3js/evm": "^0.4.0",
26
+ "@hub3js/namespaces": "^0.3.0",
27
+ "@hub3js/std": "^0.3.0",
28
+ "@rango-dev/signer-evm": "^0.45.1-next.0",
29
+ "@rango-dev/wallets-core": "^0.61.1-next.0",
31
30
  "rango-types": "^0.5.0"
32
31
  },
33
32
  "publishConfig": {
package/src/constants.ts CHANGED
@@ -3,7 +3,7 @@ import type { ProviderMetadata } from '@hub3js/core';
3
3
  import { isEvmNamespace } from '@hub3js/evm';
4
4
 
5
5
  import getSigners from './signer.js';
6
- import { evmRabby } from './utils.js';
6
+ import { getInstanceOrThrow } from './utils.js';
7
7
 
8
8
  export const WALLET_ID = 'rabby';
9
9
 
@@ -35,7 +35,7 @@ export const metadata: ProviderMetadata = {
35
35
  },
36
36
  {
37
37
  name: 'signers',
38
- value: { getSigners: async () => getSigners(evmRabby()) },
38
+ value: { getSigners: async () => getSigners(getInstanceOrThrow()) },
39
39
  },
40
40
  ],
41
41
  };
package/src/mod.ts CHANGED
@@ -6,3 +6,4 @@ const versions = () =>
6
6
  defineVersions().version('1.0.0', buildProvider()).build();
7
7
 
8
8
  export { versions };
9
+ export { WALLET_ID } from './constants.js';
package/src/signer.ts CHANGED
@@ -2,15 +2,16 @@ import type { Provider } from './utils.js';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
 
4
4
  import { EVM_NAMESPACE } from '@hub3js/namespaces';
5
- import { getNetworkInstance } from '@rango-dev/wallets-shared';
6
5
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
7
6
 
8
7
  export default async function getSigners(
9
8
  provider: Provider
10
9
  ): Promise<SignerFactory> {
11
- const evmProvider = getNetworkInstance(provider, EVM_NAMESPACE);
10
+ const evmProvider = provider.get(EVM_NAMESPACE);
12
11
  const signers = new DefaultSignerFactory();
13
12
  const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');
14
- signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));
13
+ if (!!evmProvider) {
14
+ signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));
15
+ }
15
16
  return signers;
16
17
  }
package/src/utils.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { InstanceMap } from '@hub3js/std/types';
2
+
1
3
  import {
2
4
  type Chain,
3
5
  type ChainId,
@@ -7,8 +9,10 @@ import {
7
9
  } from '@hub3js/evm';
8
10
  import { EVM_NAMESPACE } from '@hub3js/namespaces';
9
11
 
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- export type Provider = Record<string, any>;
12
+ export type ProviderObject = {
13
+ [EVM_NAMESPACE]: EvmProviderApi;
14
+ };
15
+ export type Provider = InstanceMap<ProviderObject>;
12
16
  export function rabby(): Provider | null {
13
17
  const { ethereum } = window;
14
18
 
@@ -23,6 +27,16 @@ export function rabby(): Provider | null {
23
27
  return instances;
24
28
  }
25
29
 
30
+ export function getInstanceOrThrow(): Provider {
31
+ const instances = rabby();
32
+
33
+ if (!instances) {
34
+ throw new Error('Rabby is not injected. Please check your wallet.');
35
+ }
36
+
37
+ return instances;
38
+ }
39
+
26
40
  export function evmRabby(): EvmProviderApi {
27
41
  const instances = rabby();
28
42
 
@@ -34,7 +48,7 @@ export function evmRabby(): EvmProviderApi {
34
48
  );
35
49
  }
36
50
 
37
- return evmInstance as EvmProviderApi;
51
+ return evmInstance;
38
52
  }
39
53
  export async function switchOrAddNetwork(
40
54
  instance: ProviderAPI,