Skip to content

Commit

Permalink
feat: make RPC endpoint configurable for wallet provider (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
tfrg authored Dec 29, 2024
1 parent 981b130 commit 38684a6
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 5 deletions.
1 change: 1 addition & 0 deletions packages/sdk/src/core/constants/chains.constant.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const DEFAULT_RPC_URL = 'https://rpc.gno.land:443';
2 changes: 1 addition & 1 deletion packages/sdk/src/core/providers/tm2-wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Wallet as TM2Wallet } from '@gnolang/tm2-js-client';
import { WalletProvider } from './wallet';

export interface TM2WalletProvider extends WalletProvider {
connect(): Promise<boolean>;
connect(rpcUrl?: string): Promise<boolean>;

disconnect(): Promise<boolean>;

Expand Down
11 changes: 7 additions & 4 deletions packages/sdk/src/providers/gno-wallet/gno-wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<boolean> {
return this.connectProvider();
async connect(rpcUrl?: string): Promise<boolean> {
return this.connectProvider(rpcUrl);
}

async disconnect(): Promise<boolean> {
Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit 38684a6

Please sign in to comment.