@rango-dev/provider-brave 0.0.0-experimental-936229e8-20251208

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/CHANGELOG.md ADDED
@@ -0,0 +1,248 @@
1
+ # [0.57.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.56.1...provider-brave@0.57.0) (2025-12-02)
2
+
3
+
4
+ ### Features
5
+
6
+ * migrate brave to the hub ([7b68649](https://github.com/rango-exchange/rango-client/commit/7b686493dc463f9e5fa0510838da74a55b8bc63c))
7
+
8
+
9
+
10
+ ## [0.56.1](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.56.0...provider-brave@0.56.1) (2025-11-22)
11
+
12
+
13
+
14
+ # [0.54.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.53.0...provider-brave@0.54.0) (2025-10-29)
15
+
16
+
17
+
18
+ # [0.53.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.52.0...provider-brave@0.53.0) (2025-09-29)
19
+
20
+
21
+
22
+ # [0.52.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.51.0...provider-brave@0.52.0) (2025-09-06)
23
+
24
+
25
+
26
+ # [0.51.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.50.0...provider-brave@0.51.0) (2025-08-19)
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * add rango-dev/wallets-core to dependencies of providers ([84b4b2b](https://github.com/rango-exchange/rango-client/commit/84b4b2b7c3a7f5631228fb6ebf04617c3c4428e9))
32
+ * remove retry dynamic import and throw refined error on dynamic import failure ([a2944ac](https://github.com/rango-exchange/rango-client/commit/a2944ac3c05a0e945f6e5621fa5693ab89625485))
33
+
34
+
35
+ ### Features
36
+
37
+ * implement retry mechanism for lazy imports ([9a8e191](https://github.com/rango-exchange/rango-client/commit/9a8e191711d2319990ca4d0613e8188a5f86842f))
38
+
39
+
40
+
41
+ # [0.50.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.49.0...provider-brave@0.50.0) (2025-08-05)
42
+
43
+
44
+
45
+ # [0.49.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.48.0...provider-brave@0.49.0) (2025-07-22)
46
+
47
+
48
+ ### Reverts
49
+
50
+ * Revert "chore(release): publish" ([064ce15](https://github.com/rango-exchange/rango-client/commit/064ce157a2f819856f647f83aeb1c0410542e8d7))
51
+
52
+
53
+
54
+ # [0.47.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.46.1...provider-brave@0.47.0) (2025-06-09)
55
+
56
+
57
+
58
+ ## [0.46.1](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.46.0...provider-brave@0.46.1) (2025-05-04)
59
+
60
+
61
+
62
+ # [0.46.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.45.0...provider-brave@0.46.0) (2025-04-30)
63
+
64
+
65
+ ### Bug Fixes
66
+
67
+ * rename pbt to ptb for sui ([3d6d89f](https://github.com/rango-exchange/rango-client/commit/3d6d89f2265766607a15d61e0df92643fb33072b))
68
+
69
+
70
+ ### Features
71
+
72
+ * update sui to consider recent api changes ([d764b25](https://github.com/rango-exchange/rango-client/commit/d764b2501df9bb295f63cdbc0b05acd4a3abb4b9))
73
+
74
+
75
+
76
+ # [0.45.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.44.0...provider-brave@0.45.0) (2025-03-11)
77
+
78
+
79
+
80
+ # [0.44.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.43.0...provider-brave@0.44.0) (2025-02-23)
81
+
82
+
83
+
84
+ # [0.43.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.42.0...provider-brave@0.43.0) (2025-01-20)
85
+
86
+
87
+
88
+ # [0.42.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.41.0...provider-brave@0.42.0) (2024-12-30)
89
+
90
+
91
+
92
+ # [0.41.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.40.0...provider-brave@0.41.0) (2024-11-27)
93
+
94
+
95
+ ### Features
96
+
97
+ * add ton connect provider ([2a2dbb7](https://github.com/rango-exchange/rango-client/commit/2a2dbb79022263f19446ced49d298e04d63f927f))
98
+
99
+
100
+
101
+ # [0.40.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.39.0...provider-brave@0.40.0) (2024-11-12)
102
+
103
+
104
+
105
+ # [0.39.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.38.0...provider-brave@0.39.0) (2024-10-12)
106
+
107
+
108
+ ### Bug Fixes
109
+
110
+ * bump sdk and fix type issues ([d442208](https://github.com/rango-exchange/rango-client/commit/d4422083bf5dd27d5f509ce1db7f9560d05428c8))
111
+ * resolve issues with the sign message method for certain solana providers ([cbe83a3](https://github.com/rango-exchange/rango-client/commit/cbe83a3da8b48560b206fc2a7fa7cf062cdeaa23))
112
+
113
+
114
+ ### Performance Improvements
115
+
116
+ * lazy load signer packages ([7b88f18](https://github.com/rango-exchange/rango-client/commit/7b88f1834f7b29b4b81ab6c81a07bb88e8ccf55c))
117
+
118
+
119
+
120
+ # [0.38.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.37.0...provider-brave@0.38.0) (2024-09-10)
121
+
122
+
123
+
124
+ # [0.37.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.36.1...provider-brave@0.37.0) (2024-08-11)
125
+
126
+
127
+
128
+ ## [0.36.1](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.36.0...provider-brave@0.36.1) (2024-07-14)
129
+
130
+
131
+
132
+ # [0.36.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.34.2...provider-brave@0.36.0) (2024-07-09)
133
+
134
+
135
+
136
+ # [0.35.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.34.2...provider-brave@0.35.0) (2024-06-01)
137
+
138
+
139
+
140
+ ## [0.34.2](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.34.1...provider-brave@0.34.2) (2024-05-26)
141
+
142
+
143
+
144
+ ## [0.34.1](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.34.0...provider-brave@0.34.1) (2024-05-25)
145
+
146
+
147
+
148
+ # [0.34.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.33.0...provider-brave@0.34.0) (2024-05-14)
149
+
150
+
151
+
152
+ # [0.33.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.32.0...provider-brave@0.33.0) (2024-04-24)
153
+
154
+
155
+
156
+ # [0.32.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.31.0...provider-brave@0.32.0) (2024-04-23)
157
+
158
+
159
+
160
+ # [0.31.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.30.0...provider-brave@0.31.0) (2024-04-09)
161
+
162
+
163
+ ### Bug Fixes
164
+
165
+ * fix the connection problem that happens when another wallet takes over the requested one ([42df212](https://github.com/rango-exchange/rango-client/commit/42df2120aadd84c95045b0bf76844c19305fb59a))
166
+
167
+
168
+
169
+ # [0.30.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.29.0...provider-brave@0.30.0) (2024-03-12)
170
+
171
+
172
+
173
+ # [0.29.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.28.0...provider-brave@0.29.0) (2024-02-20)
174
+
175
+
176
+
177
+ # [0.28.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.27.0...provider-brave@0.28.0) (2024-02-07)
178
+
179
+
180
+
181
+ # [0.27.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.26.0...provider-brave@0.27.0) (2024-01-22)
182
+
183
+
184
+ ### Bug Fixes
185
+
186
+ * cleanup wallets' subscriber when setProvider get null ([88d6a42](https://github.com/rango-exchange/rango-client/commit/88d6a423c49b34b3d9ff567e22df36c3b009bb76))
187
+
188
+
189
+
190
+ # [0.26.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.24.0...provider-brave@0.26.0) (2023-12-24)
191
+
192
+
193
+ ### Bug Fixes
194
+
195
+ * fix HMR for widget and playground ([8524820](https://github.com/rango-exchange/rango-client/commit/8524820f10cf0b8921f3db0c4f620ff98daa4103))
196
+
197
+
198
+
199
+ # [0.14.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.13.0...provider-brave@0.14.0) (2023-08-03)
200
+
201
+
202
+
203
+ # [0.13.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.12.0...provider-brave@0.13.0) (2023-08-01)
204
+
205
+
206
+
207
+ # [0.9.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.8.0...provider-brave@0.9.0) (2023-07-31)
208
+
209
+
210
+
211
+ # [0.7.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.6.0...provider-brave@0.7.0) (2023-07-11)
212
+
213
+
214
+
215
+ # [0.6.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.5.0...provider-brave@0.6.0) (2023-07-11)
216
+
217
+
218
+ ### Reverts
219
+
220
+ * Revert "support for rango-types cjs format" ([ed4e050](https://github.com/rango-exchange/rango-client/commit/ed4e050bfc0dcde7aeffa6b0d73b02080a5721eb))
221
+
222
+
223
+
224
+ # [0.5.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.4.0...provider-brave@0.5.0) (2023-05-31)
225
+
226
+
227
+
228
+ # [0.4.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.3.0...provider-brave@0.4.0) (2023-05-31)
229
+
230
+
231
+
232
+ # [0.3.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.2.0...provider-brave@0.3.0) (2023-05-30)
233
+
234
+
235
+
236
+ # [0.2.0](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.1.15...provider-brave@0.2.0) (2023-05-30)
237
+
238
+
239
+
240
+ ## [0.1.14](https://github.com/rango-exchange/rango-client/compare/provider-brave@0.1.13...provider-brave@0.1.14) (2023-05-15)
241
+
242
+
243
+ ### Bug Fixes
244
+
245
+ * update rango-types and fix notification bugs ([993f185](https://github.com/rango-exchange/rango-client/commit/993f185e0b8c5e5e15a2c65ba2d85d1f9c8daa90))
246
+
247
+
248
+
@@ -0,0 +1,4 @@
1
+ import { type ProviderMetadata } from '@rango-dev/wallets-core';
2
+ export declare const WALLET_ID = "brave";
3
+ export declare const metadata: ProviderMetadata;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAUhE,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,QAAQ,EAAE,gBAkCtB,CAAC"}
package/dist/mod.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const versions: () => import("@rango-dev/wallets-core/utils").VersionedProviders;
2
+ export { versions };
3
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,kEAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/mod.js ADDED
@@ -0,0 +1,2 @@
1
+ var x=Object.defineProperty;var r=(e,o)=>x(e,"name",{value:o,configurable:!0});import{defineVersions as oe}from"@rango-dev/wallets-core/utils";import{ProviderBuilder as ee}from"@rango-dev/wallets-core";import"@rango-dev/wallets-core";import{evmBlockchains as L,solanaBlockchain as N}from"rango-types";import{dynamicImportWithRefinedError as I,getNetworkInstance as v,Networks as g}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as C,TransactionType as f}from"rango-types";import{DefaultSolanaSigner as T}from"@rango-dev/signer-solana";import{SignerError as M,SignerErrorCode as k}from"rango-types";var s=class extends T{static{r(this,"BraveSolanaSigner")}constructor(o){super(o)}async signMessage(o){try{let n=new TextEncoder().encode(o),{signature:a}=await this.provider.request({method:"signMessage",params:{message:n}});return a}catch(n){throw new M(k.SIGN_TX_ERROR,void 0,n)}}};async function u(e){let o=v(e,g.ETHEREUM),n=v(e,g.SOLANA),a=new C,{DefaultEvmSigner:B}=await I(async()=>await import("@rango-dev/signer-evm"));return a.registerSigner(f.EVM,new B(o)),a.registerSigner(f.SOLANA,new s(n)),a}r(u,"getSigners");import{LegacyNetworks as m}from"@rango-dev/wallets-core/legacy";function i(){let{braveEthereum:e,braveSolana:o}=window;if(!e||!o)return null;let n=new Map;return e&&n.set(m.ETHEREUM,e),o&&n.set(m.SOLANA,o),n}r(i,"brave");function E(){let e=i();if(!e)throw new Error("Brave Wallet is not injected. Please check your wallet.");return e}r(E,"getInstanceOrThrow");function c(){let o=i()?.get(m.ETHEREUM);if(!o)throw new Error("Brave Wallet not injected or EVM not enabled. Please check your wallet.");return o}r(c,"evmBrave");function l(){let o=i()?.get(m.SOLANA);if(!o)throw new Error("Brave Wallet not injected or Solana not enabled. Please check your wallet.");return o}r(l,"solanaBrave");var t="brave",w={name:"Brave",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/brave/icon.svg",extensions:{homepage:"https://brave.com/wallet/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:e=>L(e)},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:e=>N(e)}]}},{name:"signers",value:{getSigners:async()=>u(E())}}]};import{NamespaceBuilder as O}from"@rango-dev/wallets-core";import{builders as W,standardizeAndThrowError as D}from"@rango-dev/wallets-core/namespaces/common";import{actions as d,builders as p,hooks as R}from"@rango-dev/wallets-core/namespaces/evm";var[V,h]=R.changeAccountSubscriber(c),_=p.connect().action(d.connect(c)).before(V).or(h).or(D).build(),j=W.disconnect().after(h).build(),H=p.canSwitchNetwork().action(d.canSwitchNetwork()).build(),F=p.canEagerConnect().action(d.canEagerConnect(c)).build(),U=p.getChainId().action(d.getChainId(c)).build(),S=new O("EVM",t).action(_).action(j).action(F).action(H).action(U).build();import{ActionBuilder as z,NamespaceBuilder as q}from"@rango-dev/wallets-core";import{builders as G,standardizeAndThrowError as X}from"@rango-dev/wallets-core/namespaces/common";import{actions as b,builders as J,hooks as K}from"@rango-dev/wallets-core/namespaces/solana";var[Q,A]=K.changeAccountSubscriber(l),Y=J.connect().action(b.connect(l)).before(Q).or(A).or(X).build(),Z=G.disconnect().after(A).build(),$=new z("canEagerConnect").action(b.canEagerConnect(l)).build(),P=new q("Solana",t).action(Y).action(Z).action($).build();var y=r(()=>new ee(t).init(function(e){let[,o]=e.state();i()&&(o("installed",!0),console.debug("[brave] instance detected.",e))}).config("metadata",w).add("solana",P).add("evm",S).build(),"buildProvider");var He=r(()=>oe().version("1.0.0",y()).build(),"versions");export{He as versions};
2
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/mod.ts", "../src/provider.ts", "../src/constants.ts", "../src/signer.ts", "../src/signers/solana.ts", "../src/utils.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts"],
4
+ "sourcesContent": ["import { defineVersions } from '@rango-dev/wallets-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 '@rango-dev/wallets-core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { brave } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (brave()) {\n setState('installed', true);\n console.debug('[brave] 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 '@rango-dev/wallets-core';\nimport {\n type BlockchainMeta,\n evmBlockchains,\n solanaBlockchain,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'brave';\nexport const metadata: ProviderMetadata = {\n name: 'Brave',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/brave/icon.svg',\n extensions: {\n homepage: 'https://brave.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 },\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 './types.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { BraveSolanaSigner } from './signers/solana.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\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 BraveSolanaSigner(solProvider));\n return signers;\n}\n", "import {\n DefaultSolanaSigner,\n type SolanaExternalProvider,\n} from '@rango-dev/signer-solana';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nexport class BraveSolanaSigner extends DefaultSolanaSigner {\n constructor(provider: SolanaExternalProvider) {\n super(provider);\n }\n\n async signMessage(msg: string): Promise<string> {\n try {\n const encodedMessage = new TextEncoder().encode(msg);\n const { signature } = await this.provider.request({\n method: 'signMessage',\n params: {\n message: encodedMessage,\n },\n });\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n}\n", "import type { Provider } from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport function brave(): Provider | null {\n const { braveEthereum, braveSolana } = window;\n if (!braveEthereum || !braveSolana) {\n return null;\n }\n const instances: Provider = new Map();\n if (braveEthereum) {\n instances.set(LegacyNetworks.ETHEREUM, braveEthereum);\n }\n if (braveSolana) {\n instances.set(LegacyNetworks.SOLANA, braveSolana);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = brave();\n\n if (!instances) {\n throw new Error('Brave Wallet is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmBrave(): EvmProviderApi {\n const instances = brave();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Brave Wallet not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaBrave(): SolanaProviderApi {\n const instance = brave();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'Brave Wallet not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance as SolanaProviderApi;\n}\n", "import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n hooks,\n} from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmBrave } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(evmBrave);\nconst connect = builders\n .connect()\n .action(actions.connect(evmBrave))\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(evmBrave))\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmBrave))\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 '@rango-dev/wallets-core/namespaces/solana';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n hooks,\n} from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaBrave } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(solanaBrave);\n\nconst connect = builders\n .connect()\n .action(actions.connect(solanaBrave))\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(solanaBrave))\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"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "ProviderBuilder", "evmBlockchains", "solanaBlockchain", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "DefaultSolanaSigner", "SignerError", "SignerErrorCode", "BraveSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "encodedMessage", "signature", "error", "SignerError", "SignerErrorCode", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "BraveSolanaSigner", "__name", "LegacyNetworks", "brave", "braveEthereum", "braveSolana", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmBrave", "evmInstance", "solanaBrave", "solanaInstance", "WALLET_ID", "metadata", "allBlockchains", "evmBlockchains", "solanaBlockchain", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "hooks", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "evmBrave", "connect", "builders", "actions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canSwitchNetwork", "canEagerConnect", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "hooks", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "solanaBrave", "connect", "builders", "actions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "ActionBuilder", "solana", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "brave", "metadata", "solana", "evm", "versions", "__name", "defineVersions", "buildProvider"]
7
+ }
@@ -0,0 +1,4 @@
1
+ import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';
2
+ declare const evm: import("@rango-dev/wallets-core").ProxiedNamespace<EvmActions>;
3
+ export { evm };
4
+ //# sourceMappingURL=evm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/namespaces/evm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AA8CzE,QAAA,MAAM,GAAG,gEAMC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
2
+ declare const solana: import("@rango-dev/wallets-core").ProxiedNamespace<SolanaActions>;
3
+ export { solana };
4
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/namespaces/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAsC/E,QAAA,MAAM,MAAM,mEAIF,CAAC;AAEX,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"inputs":{"src/signers/solana.ts":{"bytes":717,"imports":[{"path":"@rango-dev/signer-solana","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":919,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signers/solana.ts","kind":"import-statement","original":"./signers/solana.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":1543,"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":1199,"imports":[{"path":"@rango-dev/wallets-core","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":1345,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","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":1188,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","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":638,"imports":[{"path":"@rango-dev/wallets-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/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":220,"imports":[{"path":"@rango-dev/wallets-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":13620},"dist/mod.js":{"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","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/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":123},"src/provider.ts":{"bytesInOutput":264},"src/constants.ts":{"bytesInOutput":525},"src/signer.ts":{"bytesInOutput":423},"src/signers/solana.ts":{"bytesInOutput":410},"src/utils.ts":{"bytesInOutput":688},"src/namespaces/evm.ts":{"bytesInOutput":628},"src/namespaces/solana.ts":{"bytesInOutput":529}},"bytes":3725}}}
@@ -0,0 +1,3 @@
1
+ declare const buildProvider: () => import("@rango-dev/wallets-core").Provider;
2
+ export { buildProvider };
3
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,aAAa,kDAaP,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Provider } from './types.js';
2
+ import type { SignerFactory } from 'rango-types';
3
+ export default function getSigners(provider: Provider): Promise<SignerFactory>;
4
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +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;AAWjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAUxB"}
@@ -0,0 +1,6 @@
1
+ import { DefaultSolanaSigner, type SolanaExternalProvider } from '@rango-dev/signer-solana';
2
+ export declare class BraveSolanaSigner extends DefaultSolanaSigner {
3
+ constructor(provider: SolanaExternalProvider);
4
+ signMessage(msg: string): Promise<string>;
5
+ }
6
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/signers/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAGlC,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAC5C,QAAQ,EAAE,sBAAsB;IAItC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAchD"}
@@ -0,0 +1,9 @@
1
+ import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+ export type ProviderObject = {
5
+ [LegacyNetworks.ETHEREUM]: EvmProviderApi;
6
+ [LegacyNetworks.SOLANA]: SolanaProviderApi;
7
+ };
8
+ export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAElG,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1C,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5C,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Provider } from './types.js';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+ export declare function brave(): Provider | null;
5
+ export declare function getInstanceOrThrow(): Provider;
6
+ export declare function evmBrave(): EvmProviderApi;
7
+ export declare function solanaBrave(): SolanaProviderApi;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAIlG,wBAAgB,KAAK,IAAI,QAAQ,GAAG,IAAI,CAcvC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAYzC;AAED,wBAAgB,WAAW,IAAI,iBAAiB,CAW/C"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@rango-dev/provider-brave",
3
+ "version": "0.0.0-experimental-936229e8-20251208",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "source": "./src/mod.ts",
7
+ "main": "./dist/mod.js",
8
+ "exports": {
9
+ ".": "./dist/mod.js"
10
+ },
11
+ "typings": "dist/mod.d.ts",
12
+ "files": [
13
+ "dist",
14
+ "src"
15
+ ],
16
+ "scripts": {
17
+ "build": "node ../../scripts/build/command.mjs --path wallets/provider-brave --inputs src/mod.ts",
18
+ "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
19
+ "clean": "rimraf dist",
20
+ "format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
21
+ "lint": "eslint \"**/*.{ts,tsx}\""
22
+ },
23
+ "dependencies": {
24
+ "@rango-dev/signer-evm": "^0.40.0",
25
+ "@rango-dev/signer-solana": "^0.46.1",
26
+ "@rango-dev/wallets-core": "^0.0.0-experimental-936229e8-20251208",
27
+ "@rango-dev/wallets-shared": "^0.0.0-experimental-936229e8-20251208",
28
+ "rango-types": "^0.1.89"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ }
33
+ }
package/readme.md ADDED
@@ -0,0 +1,22 @@
1
+ # Brave
2
+ Brave Wallet integration for hub.
3
+ [Homepage](https://brave.com/wallet/) | [Docs](https://brave.com/wallet/learn/)
4
+
5
+ More about implementation status can be found [here](../readme.md).
6
+
7
+ ## Implementation notes/limitations
8
+
9
+ ### Group
10
+ No group-related limitations have been identified in this integration.
11
+
12
+ ### Feature
13
+
14
+ #### ⚠️ Cross Browser
15
+ Brave Wallet is **only available on the Brave browser**.
16
+ It cannot be used on Chrome, Firefox, or other browsers.
17
+
18
+ All other features are fully supported with **no known limitations**.
19
+
20
+ ---
21
+
22
+ More wallet information can be found in [readme.md](../readme.md).
@@ -0,0 +1,46 @@
1
+ import { type ProviderMetadata } from '@rango-dev/wallets-core';
2
+ import {
3
+ type BlockchainMeta,
4
+ evmBlockchains,
5
+ solanaBlockchain,
6
+ } from 'rango-types';
7
+
8
+ import getSigners from './signer.js';
9
+ import { getInstanceOrThrow } from './utils.js';
10
+
11
+ export const WALLET_ID = 'brave';
12
+ export const metadata: ProviderMetadata = {
13
+ name: 'Brave',
14
+ icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/brave/icon.svg',
15
+ extensions: {
16
+ homepage: 'https://brave.com/wallet/',
17
+ },
18
+ properties: [
19
+ {
20
+ name: 'namespaces',
21
+ value: {
22
+ selection: 'multiple',
23
+ data: [
24
+ {
25
+ label: 'EVM',
26
+ value: 'EVM',
27
+ id: 'ETH',
28
+ getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
29
+ evmBlockchains(allBlockchains),
30
+ },
31
+ {
32
+ label: 'Solana',
33
+ value: 'Solana',
34
+ id: 'SOLANA',
35
+ getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
36
+ solanaBlockchain(allBlockchains),
37
+ },
38
+ ],
39
+ },
40
+ },
41
+ {
42
+ name: 'signers',
43
+ value: { getSigners: async () => getSigners(getInstanceOrThrow()) },
44
+ },
45
+ ],
46
+ };
package/src/mod.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { defineVersions } from '@rango-dev/wallets-core/utils';
2
+
3
+ import { buildProvider } from './provider.js';
4
+
5
+ const versions = () =>
6
+ defineVersions().version('1.0.0', buildProvider()).build();
7
+
8
+ export { versions };
@@ -0,0 +1,55 @@
1
+ import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';
2
+
3
+ import { NamespaceBuilder } from '@rango-dev/wallets-core';
4
+ import {
5
+ builders as commonBuilders,
6
+ standardizeAndThrowError,
7
+ } from '@rango-dev/wallets-core/namespaces/common';
8
+ import {
9
+ actions,
10
+ builders,
11
+ hooks,
12
+ } from '@rango-dev/wallets-core/namespaces/evm';
13
+
14
+ import { WALLET_ID } from '../constants.js';
15
+ import { evmBrave } from '../utils.js';
16
+
17
+ const [changeAccountSubscriber, changeAccountCleanup] =
18
+ hooks.changeAccountSubscriber(evmBrave);
19
+ const connect = builders
20
+ .connect()
21
+ .action(actions.connect(evmBrave))
22
+ .before(changeAccountSubscriber)
23
+ .or(changeAccountCleanup)
24
+ .or(standardizeAndThrowError)
25
+ .build();
26
+
27
+ const disconnect = commonBuilders
28
+ .disconnect<EvmActions>()
29
+ .after(changeAccountCleanup)
30
+ .build();
31
+
32
+ const canSwitchNetwork = builders
33
+ .canSwitchNetwork()
34
+ .action(actions.canSwitchNetwork())
35
+ .build();
36
+
37
+ const canEagerConnect = builders
38
+ .canEagerConnect()
39
+ .action(actions.canEagerConnect(evmBrave))
40
+ .build();
41
+
42
+ const getChainId = builders
43
+ .getChainId()
44
+ .action(actions.getChainId(evmBrave))
45
+ .build();
46
+
47
+ const evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)
48
+ .action(connect)
49
+ .action(disconnect)
50
+ .action(canEagerConnect)
51
+ .action(canSwitchNetwork)
52
+ .action(getChainId)
53
+ .build();
54
+
55
+ export { evm };
@@ -0,0 +1,45 @@
1
+ import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
2
+
3
+ import { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';
4
+ import {
5
+ builders as commonBuilders,
6
+ standardizeAndThrowError,
7
+ } from '@rango-dev/wallets-core/namespaces/common';
8
+ import {
9
+ actions,
10
+ builders,
11
+ hooks,
12
+ } from '@rango-dev/wallets-core/namespaces/solana';
13
+
14
+ import { WALLET_ID } from '../constants.js';
15
+ import { solanaBrave } from '../utils.js';
16
+
17
+ const [changeAccountSubscriber, changeAccountCleanup] =
18
+ hooks.changeAccountSubscriber(solanaBrave);
19
+
20
+ const connect = builders
21
+ .connect()
22
+ .action(actions.connect(solanaBrave))
23
+ .before(changeAccountSubscriber)
24
+ .or(changeAccountCleanup)
25
+ .or(standardizeAndThrowError)
26
+ .build();
27
+
28
+ const disconnect = commonBuilders
29
+ .disconnect<SolanaActions>()
30
+ .after(changeAccountCleanup)
31
+ .build();
32
+
33
+ const canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(
34
+ 'canEagerConnect'
35
+ )
36
+ .action(actions.canEagerConnect(solanaBrave))
37
+ .build();
38
+
39
+ const solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)
40
+ .action(connect)
41
+ .action(disconnect)
42
+ .action(canEagerConnect)
43
+ .build();
44
+
45
+ export { solana };
@@ -0,0 +1,23 @@
1
+ import { ProviderBuilder } from '@rango-dev/wallets-core';
2
+
3
+ import { metadata, WALLET_ID } from './constants.js';
4
+ import { evm } from './namespaces/evm.js';
5
+ import { solana } from './namespaces/solana.js';
6
+ import { brave } from './utils.js';
7
+
8
+ const buildProvider = () =>
9
+ new ProviderBuilder(WALLET_ID)
10
+ .init(function (context) {
11
+ const [, setState] = context.state();
12
+
13
+ if (brave()) {
14
+ setState('installed', true);
15
+ console.debug('[brave] instance detected.', context);
16
+ }
17
+ })
18
+ .config('metadata', metadata)
19
+ .add('solana', solana)
20
+ .add('evm', evm)
21
+ .build();
22
+
23
+ export { buildProvider };
package/src/signer.ts ADDED
@@ -0,0 +1,25 @@
1
+ import type { Provider } from './types.js';
2
+ import type { SignerFactory } from 'rango-types';
3
+
4
+ import {
5
+ dynamicImportWithRefinedError,
6
+ getNetworkInstance,
7
+ Networks,
8
+ } from '@rango-dev/wallets-shared';
9
+ import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
10
+
11
+ import { BraveSolanaSigner } from './signers/solana.js';
12
+
13
+ export default async function getSigners(
14
+ provider: Provider
15
+ ): Promise<SignerFactory> {
16
+ const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);
17
+ const solProvider = getNetworkInstance(provider, Networks.SOLANA);
18
+ const signers = new DefaultSignerFactory();
19
+ const { DefaultEvmSigner } = await dynamicImportWithRefinedError(
20
+ async () => await import('@rango-dev/signer-evm')
21
+ );
22
+ signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));
23
+ signers.registerSigner(TxType.SOLANA, new BraveSolanaSigner(solProvider));
24
+ return signers;
25
+ }
@@ -0,0 +1,26 @@
1
+ import {
2
+ DefaultSolanaSigner,
3
+ type SolanaExternalProvider,
4
+ } from '@rango-dev/signer-solana';
5
+ import { SignerError, SignerErrorCode } from 'rango-types';
6
+
7
+ export class BraveSolanaSigner extends DefaultSolanaSigner {
8
+ constructor(provider: SolanaExternalProvider) {
9
+ super(provider);
10
+ }
11
+
12
+ async signMessage(msg: string): Promise<string> {
13
+ try {
14
+ const encodedMessage = new TextEncoder().encode(msg);
15
+ const { signature } = await this.provider.request({
16
+ method: 'signMessage',
17
+ params: {
18
+ message: encodedMessage,
19
+ },
20
+ });
21
+ return signature;
22
+ } catch (error) {
23
+ throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);
24
+ }
25
+ }
26
+ }
package/src/types.ts ADDED
@@ -0,0 +1,12 @@
1
+ import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+
5
+ export type ProviderObject = {
6
+ [LegacyNetworks.ETHEREUM]: EvmProviderApi;
7
+ [LegacyNetworks.SOLANA]: SolanaProviderApi;
8
+ };
9
+ export type Provider = Map<
10
+ keyof ProviderObject,
11
+ ProviderObject[keyof ProviderObject]
12
+ >;
package/src/utils.ts ADDED
@@ -0,0 +1,58 @@
1
+ import type { Provider } from './types.js';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+
5
+ import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
6
+
7
+ export function brave(): Provider | null {
8
+ const { braveEthereum, braveSolana } = window;
9
+ if (!braveEthereum || !braveSolana) {
10
+ return null;
11
+ }
12
+ const instances: Provider = new Map();
13
+ if (braveEthereum) {
14
+ instances.set(LegacyNetworks.ETHEREUM, braveEthereum);
15
+ }
16
+ if (braveSolana) {
17
+ instances.set(LegacyNetworks.SOLANA, braveSolana);
18
+ }
19
+
20
+ return instances;
21
+ }
22
+
23
+ export function getInstanceOrThrow(): Provider {
24
+ const instances = brave();
25
+
26
+ if (!instances) {
27
+ throw new Error('Brave Wallet is not injected. Please check your wallet.');
28
+ }
29
+
30
+ return instances;
31
+ }
32
+
33
+ export function evmBrave(): EvmProviderApi {
34
+ const instances = brave();
35
+
36
+ const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);
37
+
38
+ if (!evmInstance) {
39
+ throw new Error(
40
+ 'Brave Wallet not injected or EVM not enabled. Please check your wallet.'
41
+ );
42
+ }
43
+
44
+ return evmInstance as EvmProviderApi;
45
+ }
46
+
47
+ export function solanaBrave(): SolanaProviderApi {
48
+ const instance = brave();
49
+ const solanaInstance = instance?.get(LegacyNetworks.SOLANA);
50
+
51
+ if (!solanaInstance) {
52
+ throw new Error(
53
+ 'Brave Wallet not injected or Solana not enabled. Please check your wallet.'
54
+ );
55
+ }
56
+
57
+ return solanaInstance as SolanaProviderApi;
58
+ }