Skip to content

Commit ba43b0f

Browse files
authored
Bump core version
1 parent 0cb001e commit ba43b0f

File tree

7 files changed

+3438
-872
lines changed

7 files changed

+3438
-872
lines changed

example/package-lock.json

Lines changed: 910 additions & 716 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
"prepare": "cd .. && npm i && npm run build && cd example"
1818
},
1919
"dependencies": {
20-
"@mantine/core": "^7.11.2",
21-
"@mantine/hooks": "^7.11.2",
20+
"@mantine/core": "^8.2.1",
21+
"@mantine/hooks": "^8.2.1",
2222
"@stacks/common": "^7.0.2",
2323
"@stacks/encryption": "7.0.5",
2424
"@stacks/stacking": "^7.0.2",
2525
"@stacks/transactions": "^7.0.2",
26-
"@tabler/icons-react": "3.33.0",
26+
"@tabler/icons-react": "3.34.1",
2727
"@tanstack/react-query": "^5.50.1",
2828
"bip322-js": "^2.0.0",
2929
"bitcoinjs-message": "^2.2.0",
@@ -39,7 +39,7 @@
3939
"@types/react-dom": "^18.3.0",
4040
"@typescript-eslint/eslint-plugin": "^7.13.1",
4141
"@typescript-eslint/parser": "^7.13.1",
42-
"@vitejs/plugin-react": "^4.3.1",
42+
"@vitejs/plugin-react": "^4.7.0",
4343
"eslint": "^8.57.0",
4444
"eslint-config-prettier": "^9.1.0",
4545
"eslint-plugin-react-hooks": "^4.6.2",
@@ -50,7 +50,7 @@
5050
"prettier": "^3.3.3",
5151
"prettier-plugin-organize-imports": "^4.0.0",
5252
"typescript": "^5.2.2",
53-
"vite": "^5.3.1",
54-
"vite-plugin-node-polyfills": "0.17.0"
53+
"vite": "7.0.5",
54+
"vite-plugin-node-polyfills": "0.24.0"
5555
}
5656
}

example/src/App.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { SignMessageStacks } from './components/stacks/signMessageStacks';
3535
import { SignTransaction } from './components/stacks/SignTransaction.tsx';
3636
import { SignTransactions } from './components/stacks/SignTransactions/index.tsx';
3737
import TransferRunes from './components/transferRunes/index.tsx';
38+
import { AddNetwork } from './components/wallet/AddNetwork.tsx';
3839
import { GetNetwork } from './components/wallet/GetNetwork.tsx';
3940
import WalletConnect from './components/wallet/WalletConnect.tsx';
4041
import WalletDisconnect from './components/wallet/WalletDisconnect.tsx';
@@ -172,6 +173,7 @@ const WalletMethods = () => {
172173
<WalletGetWalletType />
173174
<GetNetwork />
174175
<ChangeNetwork />
176+
<AddNetwork />
175177
</div>
176178
);
177179
};
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
import { Input, NativeSelect } from '@mantine/core';
2+
import { useState } from 'react';
3+
import { BitcoinNetworkType, request, type AddNetworkParams } from 'sats-connect';
4+
import { MethodLayout } from '../../layouts/MethodLayout';
5+
6+
export const AddNetwork = () => {
7+
const [response, setResponse] = useState<string | null>(null);
8+
const [options, setOptions] = useState<Extract<AddNetworkParams, { chain: 'bitcoin' }>>({
9+
chain: 'bitcoin',
10+
name: 'My Custom Regtest',
11+
type: BitcoinNetworkType.Regtest,
12+
indexerUrl: 'https://api-3.xverse.app',
13+
rpcUrl: 'http://localhost:18444',
14+
});
15+
16+
const handleRequest = () => {
17+
const handler = async () => {
18+
const method = 'wallet_addNetwork';
19+
const res = await request(method, options);
20+
setResponse(JSON.stringify(res, null, 2));
21+
console.log(`request("${method}", options)`);
22+
console.log('options:\n', options);
23+
console.log('response:\n', res);
24+
25+
if (res.status === 'error') {
26+
console.error('wallet_addNetwork error');
27+
console.error(res);
28+
return;
29+
}
30+
};
31+
handler().catch(console.error);
32+
};
33+
34+
return (
35+
<MethodLayout<AddNetworkParams>
36+
method="wallet_addNetwork"
37+
docsUrl="https://docs.xverse.app#TODO"
38+
options={options}
39+
handleRequest={handleRequest}
40+
response={response}
41+
>
42+
<div>Chain</div>
43+
<NativeSelect
44+
defaultValue="bitcoin"
45+
data={['bitcoin']}
46+
onChange={(e) =>
47+
setOptions((prev) => ({ ...prev, network: e.target.value as BitcoinNetworkType }))
48+
}
49+
disabled
50+
/>
51+
<div>Network type</div>
52+
<NativeSelect
53+
defaultValue="Regtest"
54+
data={Object.values(BitcoinNetworkType)}
55+
onChange={(e) =>
56+
setOptions((prev) => ({
57+
...prev,
58+
type: e.target.value as BitcoinNetworkType,
59+
}))
60+
}
61+
disabled
62+
/>
63+
<div>Name</div>
64+
<Input
65+
type="text"
66+
value={options.name}
67+
onChange={(e) => setOptions((prev) => ({ ...prev, name: e.target.value }))}
68+
/>
69+
<div>RPC URL</div>
70+
<Input
71+
type="text"
72+
value={options.rpcUrl}
73+
onChange={(e) => setOptions((prev) => ({ ...prev, rpcUrl: e.target.value }))}
74+
/>
75+
<div>RPC URL - fallback (optional)</div>
76+
<Input
77+
type="text"
78+
value={options.rpcFallbackUrl}
79+
onChange={(e) =>
80+
setOptions((prev) => ({
81+
...prev,
82+
rpcFallbackUrl: e.target.value ? e.target.value : undefined,
83+
}))
84+
}
85+
/>
86+
<div>Indexer URL (optional)</div>
87+
<Input
88+
type="text"
89+
value={options.indexerUrl}
90+
onChange={(e) => setOptions((prev) => ({ ...prev, indexerUrl: e.target.value }))}
91+
/>
92+
<div>Block explorer URL (optional)</div>
93+
<Input
94+
type="text"
95+
value={options.blockExplorerUrl}
96+
onChange={(e) => setOptions((prev) => ({ ...prev, blockExplorerUrl: e.target.value }))}
97+
/>
98+
</MethodLayout>
99+
);
100+
};

example/vite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { defineConfig } from 'vite';
21
import react from '@vitejs/plugin-react';
2+
import { defineConfig } from 'vite';
33
import { nodePolyfills } from 'vite-plugin-node-polyfills';
44

55
// https://vitejs.dev/config/

0 commit comments

Comments
 (0)