diff --git a/packages/sdk/src/core/constants/chains.constant.ts b/packages/sdk/src/core/constants/chains.constant.ts new file mode 100644 index 0000000..2fe60cc --- /dev/null +++ b/packages/sdk/src/core/constants/chains.constant.ts @@ -0,0 +1 @@ +export const DEFAULT_RPC_URL = 'https://rpc.gno.land:443'; diff --git a/packages/sdk/src/core/providers/tm2-wallet.ts b/packages/sdk/src/core/providers/tm2-wallet.ts index 55c7a60..b50fd2f 100644 --- a/packages/sdk/src/core/providers/tm2-wallet.ts +++ b/packages/sdk/src/core/providers/tm2-wallet.ts @@ -2,7 +2,7 @@ import { Wallet as TM2Wallet } from '@gnolang/tm2-js-client'; import { WalletProvider } from './wallet'; export interface TM2WalletProvider extends WalletProvider { - connect(): Promise; + connect(rpcUrl?: string): Promise; disconnect(): Promise; diff --git a/packages/sdk/src/providers/gno-wallet/gno-wallet.ts b/packages/sdk/src/providers/gno-wallet/gno-wallet.ts index 7c63035..6cb7810 100644 --- a/packages/sdk/src/providers/gno-wallet/gno-wallet.ts +++ b/packages/sdk/src/providers/gno-wallet/gno-wallet.ts @@ -25,20 +25,23 @@ import { } from '../../core/types/methods'; import { encodeTransaction } from '../../core/utils/encode.utils'; import { makeResponseMessage } from '../../core/utils/message.utils'; +import { DEFAULT_RPC_URL } from '../../core/constants/chains.constant'; export class GnoWalletProvider implements TM2WalletProvider { protected wallet: TM2Wallet | null; + protected rpcUrl: string | null; constructor(wallet?: TM2Wallet) { this.wallet = wallet || null; + this.rpcUrl = null; } public getWallet(): TM2Wallet | null { return this.wallet; } - async connect(): Promise { - return this.connectProvider(); + async connect(rpcUrl?: string): Promise { + return this.connectProvider(rpcUrl); } async disconnect(): Promise { @@ -136,12 +139,12 @@ export class GnoWalletProvider implements TM2WalletProvider { throw new Error('not supported'); } - protected connectProvider(): boolean { + protected connectProvider(rpcUrl?: string): boolean { if (!this.wallet) { return false; } - const provider = new JSONRPCProvider('https://rpc.gno.land:443'); + const provider = new JSONRPCProvider(rpcUrl || DEFAULT_RPC_URL); this.wallet.connect(provider); return true; }