code: async function mergeSignatures(source, dest, attr, checkFn) {
    source = source[attr];
    if (source) {
      if (!dest[attr].length) {
        dest[attr] = source;
      } else {
        await Promise.all(source.map(async function(sourceSig) {
          if (!sourceSig.isExpired() && (!checkFn || await checkFn(sourceSig)) &&
              !dest[attr].some(function(destSig) {
                return util.equalsUint8Array(destSig.signature, sourceSig.signature);
              })) {
            dest[attr].push(sourceSig);
          }
        }));
      }
    }
  }
docs: Merges signatures from source[attr] to dest[attr]
  @private
  @param  {Object} source
  @param  {Object} dest
  @param  {String} attr
  @param  {Function} checkFn optional, signature only merged if true