'use strict';

require('../../../utils/types/array.cjs');
require('crypto');
var utils_inheritance = require('../../../utils/inheritance.cjs');
require('bs58');
require('multiformats/bases/base58');
require('varint');
require('../../../utils/encoding/ss-58.cjs');
require('../common/abstract-api-provider.cjs');
var modules_abstract_common_abstractBaseModule = require('../common/abstract-base-module.cjs');
require('../../../utils/types/object.cjs');
require('../../../utils/types/iterable.cjs');
require('../../../utils/types/set.cjs');
require('blake2b');
require('../../../utils/types/bytes.cjs');
require('../../../utils/interfaces.cjs');
require('../../../utils/assert.cjs');
require('../../../utils/error.cjs');
require('../../../utils/types/string.cjs');

let AbstractAttestModule$1 = class AbstractAttestModule extends modules_abstract_common_abstractBaseModule {
  /**
   * Fetches the DIDs attestations IRI from the chain
   * @param {*} did - DID
   * @return {Promise<TypedBytes | null>} The DID's attestation
   */
  async getAttests(_did) {
    throw new Error('Unimplemented');
  }

  /**
   * Creates an attestation claim on chain for a specific DID
   * @param iri
   * @param signerDid
   * @param didKeypair
   * @param params
   */
  async setClaim(iri, targetDid, didKeypair, params) {
    return await this.signAndSend(
      await this.setClaimTx(iri, targetDid, didKeypair),
      params,
    );
  }

  /**
   * Creates an attestation claim on chain for a specific DID
   * @param iri
   * @param targetDid
   * @param didKeypair
   */
  async setClaimTx(_iri, _targetDid, _didKeypair) {
    throw new Error('Unimplemented');
  }
};

var AbstractAttestModule = utils_inheritance.withExtendedPrototypeProperties(
  ['getAttests', 'setClaimTx'],
  AbstractAttestModule$1,
);

module.exports = AbstractAttestModule;
//# sourceMappingURL=module.cjs.map
