diff --git a/src/massaStation/MassaStationWallet.ts b/src/massaStation/MassaStationWallet.ts index aa416cbf..dd7aa441 100644 --- a/src/massaStation/MassaStationWallet.ts +++ b/src/massaStation/MassaStationWallet.ts @@ -12,6 +12,7 @@ import { Network } from '@massalabs/massa-web3'; import { networkInfos } from './utils/network'; import { WalletName } from '../wallet'; import { isMassaWalletEnabled } from './MassaStationDiscovery'; +import { isStandalone } from './utils/standalone'; /** * MassaStation url @@ -24,8 +25,7 @@ export const MASSA_STATION_URL = 'https://station.massa/'; export function walletApiUrl(): string { // This is a hack to detect that MS wallet is working in standalone mode - // dev only usage - if (typeof window !== 'undefined' && window.massaWallet?.standalone) { + if (isStandalone()) { return `http://localhost:8080/api`; } return `${MASSA_STATION_URL}plugin/massa-labs/massa-wallet/api`; @@ -51,7 +51,7 @@ export class MassaStationWallet implements Wallet { } static async createIfInstalled(): Promise { - if (await isMassaWalletEnabled()) { + if (isStandalone() || (await isMassaWalletEnabled())) { return new MassaStationWallet(); } return null; diff --git a/src/massaStation/utils/network.ts b/src/massaStation/utils/network.ts index 2700e8de..903041da 100644 --- a/src/massaStation/utils/network.ts +++ b/src/massaStation/utils/network.ts @@ -1,7 +1,14 @@ -import { JsonRPCClient, Network } from '@massalabs/massa-web3'; +import { + CHAIN_ID, + JsonRPCClient, + Network, + NetworkName, + PublicApiUrl, +} from '@massalabs/massa-web3'; import { MSNetworksResp } from '../types'; import { MASSA_STATION_URL } from '../MassaStationWallet'; import { getRequest } from '../RequestHandler'; +import { isStandalone } from './standalone'; // Use client singleton to benefit from caching let client: JsonRPCClient; @@ -9,6 +16,17 @@ let client: JsonRPCClient; let rpcUrl: string; export async function networkInfos(): Promise { + if (isStandalone()) { + rpcUrl = PublicApiUrl.Buildnet; + client = new JsonRPCClient(rpcUrl); + return { + name: NetworkName.Buildnet, + url: rpcUrl, + chainId: CHAIN_ID.Buildnet, + minimalFee: await client.getMinimalFee(), + }; + } + const nodesResponse = await getRequest( `${MASSA_STATION_URL}massa/node`, ); diff --git a/src/massaStation/utils/standalone.ts b/src/massaStation/utils/standalone.ts new file mode 100644 index 00000000..20506792 --- /dev/null +++ b/src/massaStation/utils/standalone.ts @@ -0,0 +1,4 @@ +export function isStandalone(): boolean { + // this is eventually set by wallet web-app + return typeof window !== 'undefined' && window.massaWallet?.standalone; +}