Skip to content

Commit 6f6d2c0

Browse files
Merge pull request #5340 from BitGo/BTC-1722.add-wasm-miniscript-to-web-demo
feat(web-demo): add wasm miniscript to web demo
2 parents ac6848e + 0477848 commit 6f6d2c0

File tree

7 files changed

+47
-0
lines changed

7 files changed

+47
-0
lines changed

modules/web-demo/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
},
2626
"dependencies": {
2727
"@bitgo/key-card": "^0.23.43",
28+
"@bitgo/abstract-utxo": "^9.10.0",
2829
"@bitgo/sdk-api": "^1.57.6",
2930
"@bitgo/sdk-coin-ada": "^4.5.3",
3031
"@bitgo/sdk-coin-algo": "^2.1.55",

modules/web-demo/src/App.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ const BGComponent = lazy(() => import('@components/BitGoJS'));
77
const BGApiComponent = lazy(() => import('@components/BitGoAPI'));
88
const CoinsComponent = lazy(() => import('@components/Coins'));
99
const KeyCardComponent = lazy(() => import('@components/KeyCard'));
10+
const WasmMiniscriptComponent = lazy(
11+
() => import('@components/WasmMiniscript'),
12+
);
1013
const EcdsaChallengeComponent = lazy(
1114
() => import('@components/EcdsaChallenge'),
1215
);
@@ -24,6 +27,10 @@ const App = () => {
2427
<Route path="/bitgo-api" element={<BGApiComponent />} />
2528
<Route path="/coins" element={<CoinsComponent />} />
2629
<Route path="/keycard" element={<KeyCardComponent />} />
30+
<Route
31+
path="/wasm-miniscript"
32+
element={<WasmMiniscriptComponent />}
33+
/>
2734
<Route
2835
path="/ecdsachallenge"
2936
element={<EcdsaChallengeComponent />}

modules/web-demo/src/components/Navbar/index.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ const Navbar = () => {
3838
>
3939
Key Card
4040
</NavItem>
41+
<NavItem
42+
activeRoute={pathname === '/wasm-miniscript'}
43+
onClick={() => navigate('/wasm-miniscript')}
44+
>
45+
Wasm Miniscript
46+
</NavItem>
4147
<NavItem
4248
activeRoute={pathname === '/ecdsachallenge'}
4349
onClick={() => navigate('/ecdsachallenge')}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import React, { useState } from 'react';
2+
3+
import * as AbstractUtxo from '@bitgo/abstract-utxo';
4+
5+
const defaultDescriptor =
6+
'wpkh(xpub661MyMwAqRbcFQpwd6c6aaioiXWuygdeknqE8v6PSNusNjwZypj1uXTVNysfsFPEDL6X3yS1kL6JeWyy9bAiR97Gz8KD9Z1W54uBw9U9j2t/*)';
7+
8+
export default function () {
9+
const [descriptorString] = useState(defaultDescriptor);
10+
11+
const descriptor = AbstractUtxo.descriptor.Descriptor.fromString(
12+
descriptorString,
13+
'derivable',
14+
);
15+
return (
16+
<div>
17+
<pre>{descriptor.toString()}</pre>
18+
<pre>
19+
{Buffer.from(descriptor.atDerivationIndex(0).scriptPubkey()).toString(
20+
'hex',
21+
)}
22+
</pre>
23+
</div>
24+
);
25+
}

modules/web-demo/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
{
3737
"path": "../bitgo"
3838
},
39+
{
40+
"path": "../abstract-utxo"
41+
},
3942
{
4043
"path": "../key-card"
4144
},

modules/web-demo/webpack/base.config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ const rules = [
8888
emitFile: false,
8989
},
9090
},
91+
{
92+
test: /miniscript.*\.wasm$/,
93+
type: 'webassembly/sync',
94+
},
9195
];
9296

9397
const devRules = [

webpack/bitgojs.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ module.exports = {
5959
experiments: {
6060
backCompat: false,
6161
asyncWebAssembly: true,
62+
syncWebAssembly: true,
6263
},
6364
optimization: {
6465
minimizer: [

0 commit comments

Comments
 (0)