pushAttachment method

Future<String> pushAttachment(
  1. Uint8List data,
  2. String? mimeType,
  3. String _xxHashx,
  4. String _blurHash,
)

Implementation

Future<String> pushAttachment(Uint8List data, String? mimeType,
    String _xxHashx, String _blurHash) async {
  //return -1 on fail
  if (data.isEmpty) return '';
  //normalize hex
  String _xxHash = _xxHashx.toLowerCase();
  //assume jpeg for now TODO
  _blurHashIndex[_xxHash] = _blurHash;
  print('pushAttachment:' + _xxHash.toString());
  if (_xxHash.isNotEmpty) {
    return xxC.pushXXbytes(_xxHash, data, false).then((value2) async {
      if (!value2) {
        print('pushAttachment:xxC.pushXXbytes failed' + value2.toString());

        return '';
      }
      print('pushing ipfs attachemnt len ' + data.lengthInBytes.toString());
      _ipfsQ.pushToPinataIPFS('', '', data).then((_cid) {
        if (_cid.isEmpty) {
          print('pushAttachment:pushToPinataIPFS failed');

          return _xxHash;
        }
        xxC.mapCIDtoXX(_cid, _xxHash);
      });

      return _xxHash;
    });
  }
  return xxHash(data).bake().then((value) async {
    return xxC.pushXXbytes(value.toLowerCase(), data, false).then((value2) {
      if (!value2) return '';
      print('attachemnt len ' + data.lengthInBytes.toString());
      print(value);
      _ipfsQ.pushToPinataIPFS('', '', data).then((_cid) {
        if (_cid.isEmpty) return value.toLowerCase();
        xxC.mapCIDtoXX(_cid, value.toLowerCase());
      });
      return value.toLowerCase();
    });
  });
}