Caravan Documentation
    Preparing search index...

    Class BitBoxConfirmMultisigAddress

    Base class for interactions with BitBox hardware wallets.

    Subclasses must implement their own run() method. They may use the withDevice method to connect to the BitBox API.

    import {BitBoxInteraction} from "@caravan/wallets";
    // Simple subclass

    class SimpleBitBoxInteraction extends BitBoxInteraction {

    constructor({param}) {
    super({});
    this.param = param;
    }

    async run() {
    return await this.withDevice(async (pairedBitBox) => {
    return pairedBitBox.doSomething(this.param); // Not a real BitBox API call
    });
    }

    }

    // usage
    const interaction = new SimpleBitBoxInteraction({param: "foo"});
    const result = await interaction.run();
    console.log(result); // whatever value `app.doSomething(...)` returns

    The `showPairingCode` callback can be supplied to display and hide the BitBox pairing code.
    If not provided, the default is to open a browser popup showing the pairing code.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    appName?: string
    appVersion?: string
    bip32Path: string
    direct: boolean
    environment: Parser
    showPairingCode?: TShowPairingCode
    walletConfig: MultisigWalletConfig

    Methods

    • Subclasses can override this method to indicate they are not supported.

      This method has access to whatever options may have been passed in by the constructor as well as the ability to interact with this.environment to determine whether the functionality is supported. See the Bowser documentation for more details: https://github.com/lancedikson/bowser

      Returns boolean

      isSupported() {
      return this.environment.satisfies({
      * declare browsers per OS
      windows: {
      "internet explorer": ">10",
      },
      macos: {
      safari: ">10.1"
      },

      * per platform (mobile, desktop or tablet)
      mobile: {
      safari: '>=9',
      'android browser': '>3.10'
      },

      * or in general
      chrome: "~20.1.1432",
      firefox: ">31",
      opera: ">=22",

      * also supports equality operator
      chrome: "=20.1.1432", * will match particular build only

      * and loose-equality operator
      chrome: "~20", * will match any 20.* sub-version
      chrome: "~20.1" * will match any 20.1.* sub-version (20.1.19 as well as 20.1.12.42-alpha.1)
      });
      }
    • Return messages filtered by the given options.

      Multiple options can be given at once to filter along multiple dimensions.

      Parameters

      • __namedParameters: MessageMethodArgs

      Returns Message[]

      import {PENDING, ACTIVE} from "@caravan/bitcoin";
      // Create any interaction instance
      interaction.messages().forEach(msg => console.log(msg));
      { code: "device.connect", state: "pending", level: "info", text: "Please plug in your device."}
      { code: "device.active", state: "active", level: "info", text: "Communicating with your device..."}
      { code: "device.active.warning", state: "active", level: "warning", text: "Your device will warn you about...", version: "2.x"}
      interaction.messagesFor({state: PENDING}).forEach(msg => console.log(msg));
      { code: "device.connect", state: "pending", level: "info", text: "Please plug in your device."}
      interaction.messagesFor({code: ACTIVE}).forEach(msg => console.log(msg));
      { code: "device.active", state: "active", level: "info", text: "Communicating with your device..."}
      { code: "device.active.warning", state: "active", level: "warning", text: "Your device will warn you about...", version: "2.x"}
      interaction.messagesFor({version: /^2/}).forEach(msg => console.log(msg));
      { code: "device.active", state: "active", level: "warning", text: "Your device will warn you about...", version: "2.x"}
    • Initiate the intended interaction and return a result.

      Subclasses must override this function. This function must always return a promise as it is designed to be called within an await block.

      Returns Promise<{ address: string; serializedPath: string }>