static async restore({ session, authKey, seed }) {
    const _authKey = new bitcoreLib.PrivateKey(authKey);
    $.checkArgument(_authKey.toString('hex') === authKey.toString('hex') || _authKey.toWIF() === authKey, 'Unrecognized authKey format');
    session = decrypt(Buffer.from(session, 'base64'), _authKey.publicKey, _authKey).toString('utf8');
    const [
      round,
      partySize,
      minSigners,
      partyId,
      sessionBytes,
      chainCodeCommitment
    ] = session.split(':');
    const initParams = {
      round: parseInt(round),
      n: parseInt(partySize),
      m: parseInt(minSigners),
      partyId: parseInt(partyId),
      authKey,
      seed: Buffer.from(seed, 'base64'),
    };
    const keygen = new KeyGen(initParams);
    await keygen.#dkg.loadDklsWasm();
    keygen.#dkg.dkgState = parseInt(round);
    keygen.#dkg.dkgSessionBytes = new Uint8Array(Buffer.from(sessionBytes, 'base64'));
    keygen.#dkg.chainCodeCommitment = chainCodeCommitment ? new Uint8Array(Buffer.from(chainCodeCommitment, 'base64')) : undefined;
    return keygen;
  }
Restore a keygen session from an exported session
@param {Object} params
@param {string} params.session Base64 encoded session string
@param {bitcoreLib.PrivateKey} params.authKey Private key to use for decrypting the session
@param {Buffer} params.seed Seed used for key generation
@returns {Sign}