Skip to content

Commit 854aa3a

Browse files
committed
initial commit
1 parent f9040b7 commit 854aa3a

6 files changed

Lines changed: 35 additions & 0 deletions

File tree

packages/api-react/src/services/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ export const {
168168
useGetHeightInfoQuery,
169169
useGetPuzzleAndSolutionMutation,
170170
useGetNetworkInfoQuery,
171+
useGetFullNodePeerCountQuery,
171172
useGetSyncStatusQuery,
172173
useGetWalletConnectionsQuery,
173174
useGetAllOffersQuery,

packages/api-react/src/services/wallet.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,8 @@ export const walletApi = apiWithTag.injectEndpoints({
623623

624624
getNetworkInfo: query(build, WalletService, 'getNetworkInfo'),
625625

626+
getFullNodePeerCount: query(build, WalletService, 'getFullNodePeerCount'),
627+
626628
getSyncStatus: query(build, WalletService, 'getSyncStatus', {
627629
onCacheEntryAdded: onCacheEntryAddedInvalidate(baseQuery, api, [
628630
{
@@ -1630,6 +1632,7 @@ export const {
16301632
useGetHeightInfoQuery,
16311633
useGetPuzzleAndSolutionMutation,
16321634
useGetNetworkInfoQuery,
1635+
useGetFullNodePeerCountQuery,
16331636
useGetSyncStatusQuery,
16341637
useGetWalletConnectionsQuery,
16351638
useGetAllOffersQuery,

packages/gui/src/electron/constants/AllowedCommands.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export default [
3030
'chia_wallet.get_logged_in_fingerprint',
3131
'chia_wallet.get_notifications',
3232
'chia_wallet.get_sync_status',
33+
'chia_wallet.get_full_node_peer_count',
3334
'chia_wallet.get_wallets',
3435
'chia_wallet.get_coin_records_by_names',
3536
'chia_wallet.select_coins',

packages/gui/src/electron/constants/commandRegistry.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ describe('isDappAllowedWcCommand', () => {
142142
expect(isDappAllowedWcCommand('chia_signMessageByAddress')).toBe(true);
143143
expect(isDappAllowedWcCommand('chia_getWallets')).toBe(true);
144144
expect(isDappAllowedWcCommand('chia_getNFTInfo')).toBe(true);
145+
expect(isDappAllowedWcCommand('chia_getFullNodePeerCount')).toBe(true);
145146
});
146147

147148
it('returns false for unknown / UI-only / wrong-form commands', () => {
@@ -179,6 +180,14 @@ describe('resolveDispatch', () => {
179180
});
180181
});
181182

183+
it('resolves chia_getFullNodePeerCount to the wallet RPC', () => {
184+
expect(resolveDispatch('chia_getFullNodePeerCount')).toEqual({
185+
destination: 'chia_wallet',
186+
command: 'get_full_node_peer_count',
187+
nsCommand: 'chia_wallet.get_full_node_peer_count',
188+
});
189+
});
190+
182191
it('routes DataLayer commands to chia_data_layer', () => {
183192
expect(resolveDispatch('chia_createDataStore')).toMatchObject({
184193
destination: 'chia_data_layer',
@@ -469,6 +478,11 @@ describe('commandsMetadata', () => {
469478
expect(byWc.get('chia_signMessageByAddress')?.requiresSync).toBe(false);
470479
expect(byWc.get('chia_takeOffer')?.requiresSync).toBe(false);
471480
});
481+
482+
it('exposes a label for chia_getFullNodePeerCount with requiresSync false', () => {
483+
expect(byWc.get('chia_getFullNodePeerCount')?.label).toBe('Get Full Node Peer Count');
484+
expect(byWc.get('chia_getFullNodePeerCount')?.requiresSync).toBe(false);
485+
});
472486
});
473487

474488
describe('applyDefaults', () => {
@@ -614,6 +628,10 @@ describe('dapp.transformResponse', () => {
614628
expect(tx('chia_getCATAssetId', { assetId: '0xdeadbeef' })).toBe('0xdeadbeef');
615629
});
616630

631+
it('chia_getFullNodePeerCount unwraps to peerCount', () => {
632+
expect(tx('chia_getFullNodePeerCount', { peerCount: 8, success: true })).toBe(8);
633+
});
634+
617635
it('chia_getNFTWalletsWithDIDs unwraps to nftWallets', () => {
618636
expect(tx('chia_getNFTWalletsWithDIDs', { nftWallets: [{ walletId: 5 }] })).toEqual([{ walletId: 5 }]);
619637
});

packages/gui/src/electron/constants/commandRegistry.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1852,6 +1852,17 @@ const SCHEMAS: Record<string, CommandSchema> = {
18521852
},
18531853
},
18541854

1855+
'chia_wallet.get_full_node_peer_count': {
1856+
params: [],
1857+
dapp: {
1858+
wcCommand: 'chia_getFullNodePeerCount',
1859+
label: () => i18n._(/* i18n */ { id: 'Get Full Node Peer Count' }),
1860+
description: () =>
1861+
i18n._(/* i18n */ { id: 'Requests the number of full node peers currently connected to the wallet' }),
1862+
transformResponse: (data) => data.peerCount,
1863+
},
1864+
},
1865+
18551866
'chia_wallet.get_height_info': {
18561867
params: [
18571868
{

packages/gui/src/electron/permissions/commandCapabilities.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const INNOCUOUS_COMMANDS = new Set([
1818
'chia_wallet.get_wallets',
1919
'chia_wallet.get_next_address',
2020
'chia_wallet.get_sync_status',
21+
'chia_wallet.get_full_node_peer_count',
2122
'chia_wallet.get_coin_records_by_names',
2223
'chia_wallet.select_coins',
2324
'chia_wallet.get_height_info',

0 commit comments

Comments
 (0)