From 79b88c0c05dc5e1c5205e00bf86c67ac1cb7f67d Mon Sep 17 00:00:00 2001 From: Marcolist <34426269+Marcolist@users.noreply.github.com> Date: Mon, 27 Oct 2025 12:01:26 +0100 Subject: [PATCH 1/6] Implement SolaxyProvider for JSON-RPC requests --- .../src/providers/solaxy.ts | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 providers/universal-provider/src/providers/solaxy.ts diff --git a/providers/universal-provider/src/providers/solaxy.ts b/providers/universal-provider/src/providers/solaxy.ts new file mode 100644 index 000000000..fad60794b --- /dev/null +++ b/providers/universal-provider/src/providers/solaxy.ts @@ -0,0 +1,37 @@ +import { IProvider } from "../types"; +import { HttpProvider } from "../utils/httpProvider"; + +export class SolaxyProvider implements IProvider { + namespace = "solaxy"; + httpProvider: HttpProvider; + + constructor(rpcUrl?: string) { + this.httpProvider = new HttpProvider( + rpcUrl || "https://mainnet.rpc.solaxy.io" + ); + } + + async request(args: { method: string; params?: any[] }) { + // Pass standard JSON-RPC requests to Solaxy node + return await this.httpProvider.request(args); + } + + getDefaultChain() { + return "solaxy:1936682104"; + } + + getMethods() { + // supported methods can mirror Solana JSON RPC + return [ + "getAccountInfo", + "getBalance", + "getBlockHeight", + "getTransaction", + "sendTransaction", + "getSignaturesForAddress", + "getRecentBlockhash", + ]; + } +} + +export default SolaxyProvider; From 1de1b99fa6b8d83efeb1064d5237c8116da5fdf2 Mon Sep 17 00:00:00 2001 From: Marcolist <34426269+Marcolist@users.noreply.github.com> Date: Mon, 27 Oct 2025 12:04:14 +0100 Subject: [PATCH 2/6] Export SolaxyProvider from solaxy.js --- providers/universal-provider/src/providers/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/providers/universal-provider/src/providers/index.ts b/providers/universal-provider/src/providers/index.ts index 3fc0db630..ebc19ecac 100644 --- a/providers/universal-provider/src/providers/index.ts +++ b/providers/universal-provider/src/providers/index.ts @@ -1,2 +1,3 @@ export * as Eip155Provider from "./eip155.js"; export * as GenericProvider from "./generic.js"; +export { SolaxyProvider } from "./solaxy.js"; From bc463b9a6c94d0ac384ae285fef2d1de40d2dccd Mon Sep 17 00:00:00 2001 From: Marcolist <34426269+Marcolist@users.noreply.github.com> Date: Thu, 30 Oct 2025 13:20:23 +0100 Subject: [PATCH 3/6] Delete providers/universal-provider/src/providers/solaxy.ts --- .../src/providers/solaxy.ts | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 providers/universal-provider/src/providers/solaxy.ts diff --git a/providers/universal-provider/src/providers/solaxy.ts b/providers/universal-provider/src/providers/solaxy.ts deleted file mode 100644 index fad60794b..000000000 --- a/providers/universal-provider/src/providers/solaxy.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { IProvider } from "../types"; -import { HttpProvider } from "../utils/httpProvider"; - -export class SolaxyProvider implements IProvider { - namespace = "solaxy"; - httpProvider: HttpProvider; - - constructor(rpcUrl?: string) { - this.httpProvider = new HttpProvider( - rpcUrl || "https://mainnet.rpc.solaxy.io" - ); - } - - async request(args: { method: string; params?: any[] }) { - // Pass standard JSON-RPC requests to Solaxy node - return await this.httpProvider.request(args); - } - - getDefaultChain() { - return "solaxy:1936682104"; - } - - getMethods() { - // supported methods can mirror Solana JSON RPC - return [ - "getAccountInfo", - "getBalance", - "getBlockHeight", - "getTransaction", - "sendTransaction", - "getSignaturesForAddress", - "getRecentBlockhash", - ]; - } -} - -export default SolaxyProvider; From bdbfad239c2880f9c790de148345936c3858198a Mon Sep 17 00:00:00 2001 From: Marcolist <34426269+Marcolist@users.noreply.github.com> Date: Thu, 30 Oct 2025 13:21:18 +0100 Subject: [PATCH 4/6] Replace SolaxyProvider with SolanaProvider export --- providers/universal-provider/src/providers/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/universal-provider/src/providers/index.ts b/providers/universal-provider/src/providers/index.ts index ebc19ecac..657c9414c 100644 --- a/providers/universal-provider/src/providers/index.ts +++ b/providers/universal-provider/src/providers/index.ts @@ -1,3 +1,3 @@ export * as Eip155Provider from "./eip155.js"; export * as GenericProvider from "./generic.js"; -export { SolaxyProvider } from "./solaxy.js"; +export * as SolanaProvider from "./solana.js"; From cc8027b2421805b5328ee6dc1589ce3a4cd68fad Mon Sep 17 00:00:00 2001 From: Marcolist <34426269+Marcolist@users.noreply.github.com> Date: Thu, 30 Oct 2025 13:29:17 +0100 Subject: [PATCH 5/6] Add support for Solaxy provider --- .../src/UniversalProvider.ts | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/providers/universal-provider/src/UniversalProvider.ts b/providers/universal-provider/src/UniversalProvider.ts index 4ad2cbee4..2ac015616 100644 --- a/providers/universal-provider/src/UniversalProvider.ts +++ b/providers/universal-provider/src/UniversalProvider.ts @@ -338,17 +338,25 @@ export class UniversalProvider implements IUniversalProvider { accounts, chains: approvedChains, }; - switch (namespace) { - case "eip155": - this.rpcProviders[namespace] = new Eip155Provider({ - namespace: combinedNamespace, - }); - break; - default: - this.rpcProviders[namespace] = new GenericProvider({ - namespace: combinedNamespace, - }); - } + switch (namespace) { + case "eip155": + this.rpcProviders[namespace] = new Eip155Provider({ + namespace: combinedNamespace, + }); + break; + + case "solana": + case "solaxy": + this.rpcProviders[namespace] = new (await import("./providers/solana.js")).default({ + namespace: combinedNamespace, + }); + break; + + default: + this.rpcProviders[namespace] = new GenericProvider({ + namespace: combinedNamespace, + }); +} }); } From 52d126d8b20b977f1af60ad7871be9fcb319b269 Mon Sep 17 00:00:00 2001 From: Marcolist <34426269+Marcolist@users.noreply.github.com> Date: Thu, 30 Oct 2025 21:15:13 +0100 Subject: [PATCH 6/6] Refactor Solana provider initialization --- providers/universal-provider/src/UniversalProvider.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/providers/universal-provider/src/UniversalProvider.ts b/providers/universal-provider/src/UniversalProvider.ts index 2ac015616..1ff9c2a87 100644 --- a/providers/universal-provider/src/UniversalProvider.ts +++ b/providers/universal-provider/src/UniversalProvider.ts @@ -346,11 +346,12 @@ export class UniversalProvider implements IUniversalProvider { break; case "solana": - case "solaxy": - this.rpcProviders[namespace] = new (await import("./providers/solana.js")).default({ - namespace: combinedNamespace, - }); - break; +case "solaxy": + const SolanaProvider = (await import("./providers/solana.js")).default; + this.rpcProviders[namespace] = new SolanaProvider({ + namespace: combinedNamespace, + }); + break; default: this.rpcProviders[namespace] = new GenericProvider({