Caravan Documentation
    Preparing search index...

    Class BCUR2ExportExtendedPublicKey

    Class for importing extended public keys from BCUR2 wallet QR codes. Handles the scanning and decoding of multi-part QR codes containing extended public key (xpub) data in the BCUR2 format.

    This interaction class works with the BCUR2Decoder class to process multi-part QR codes. It expects QR codes to contain:

    • Extended public key (xpub)
    • Root fingerprint (xfp)
    • BIP32 derivation path
    const interaction = new BCUR2ExportExtendedPublicKey({
    network: Network.TESTNET,
    bip32Path: "m/48'/1'/0'/2'"
    });

    // When QR code part is scanned:
    interaction.parse("UR:CRYPTO-ACCOUNT/...");

    if (interaction.isComplete()) {
    const result = interaction.getDecodedData();
    console.log(result.xpub); // The extended public key
    console.log(result.path); // The BIP32 derivation path
    console.log(result.xfp); // The root fingerprint
    }

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    decoder: BCUR2Decoder
    environment: Parser
    indirect: boolean
    workflow: string[]

    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"}