bitbox-api 0.10.0

A library to interact with BitBox hardware wallets
Documentation
# BitBox02 TypeScript/WASM library

A library to interact with the BitBox02 hardware wallet.

Check out the [sandbox project](./sandbox) that shows how to use this library.

Example:

```typescript
import * as bitbox from 'bitbox-api';

// Run this in e.g. a button onClick event handler.
async function example() {
  try {
    const onClose = () => {
      // Handle disconnect.
    };
    const unpaired = await bitbox.bitbox02ConnectAuto(onClose);
    const pairing = await unpaired.unlockAndPair();
    const pairingCode = pairing.getPairingCode();
    if (pairingCode !== undefined) {
      // Display pairingCode to user
    }
    const bb02 = await pairing.waitConfirm();
    console.log('Product', bb02.product());
    console.log('Supports Ethereum functionality (Multi edition)?', bb02.ethSupported());
    const deviceInfos = await bb02.deviceInfo();
    console.log('Device infos:', deviceInfos);
  } catch (err) {
    const typedErr = bitbox.ensureError(err);
    console.log(typedErr);
  }
}
```

The package's `bitbox_api.d.ts` file contain a documentation of all types and functions.

## WebPack

In WebPack projects, enable the `asyncWebAssembly` and `topLeveLAwait` features in your
`webpack.config.js` (see https://webpack.js.org/configuration/experiments/):

```
module.exports = {
  //...
  experiments: {
    asyncWebAssembly: true,
    topLevelAwait: true,
  },
};
```

## Vite:

Here is a sample `vite.config.ts`:

```
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
import wasm from "vite-plugin-wasm";
import topLevelAwait from "vite-plugin-top-level-await";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react(), wasm(), topLevelAwait()],
})
```

You need to install the wasm and topLevelAwait plugins to add them to the project.