pushToPinataIPFS method
Implementation
Future<String> pushToPinataIPFS(String pinata_api_key,
String pinata_secret_api_key, Uint8List data) async {
if (pinata_api_key.isEmpty) {
pinata_api_key = _pinata_api_key;
pinata_secret_api_key = _pinata_secret_api_key;
}
final String ur = 'https://api.pinata.cloud/pinning/pinFileToIPFS';
var url = Uri.parse(ur);
var request = http.MultipartRequest("POST", url);
var multipartFile = http.MultipartFile.fromBytes('file', data,
filename: 'ada'); //("image", attachement, length,
request.files.add(multipartFile);
request.headers.addAll({
'pinata_api_key': pinata_api_key,
'pinata_secret_api_key': pinata_secret_api_key
});
var r = '';
try {
r = await request.send().then((r) async {
if (r == null) return '';
setOnline();
if (r.statusCode == 403) {
print('FORBIDDEN: ipfs keys borked. panic.');
_ifpsDead = true;
return '';
}
if (r.statusCode != 200) return '';
final responseString = await r.stream.bytesToString();
if (responseString.startsWith('{"IpfsHash":')) {
final f = responseString.split('"');
return (f[3]);
}
return '';
});
} catch (e) {
if (!(e is TimeoutException)) setOffline();
return '';
}
return r;
}