getAmountFromBolt11 static method

int getAmountFromBolt11(
  1. String bolt11
)

extract amount from bolt11 in sats

Implementation

static int getAmountFromBolt11(String bolt11) {
  final numStr = _subUntil(bolt11, "lnbc", "1p");
  if (numStr.isNotEmpty) {
    var numStrLength = numStr.length;
    if (numStrLength > 1) {
      var lastStr = numStr.substring(numStr.length - 1);
      var pureNumStr = numStr.substring(0, numStr.length - 1);
      var pureNum = int.tryParse(pureNumStr);
      if (pureNum != null) {
        if (lastStr == "p") {
          return (pureNum * 0.0001).round();
        } else if (lastStr == "n") {
          return (pureNum * 0.1).round();
        } else if (lastStr == "u") {
          return (pureNum * 100).round();
        } else if (lastStr == "m") {
          return (pureNum * 100000).round();
        }
      }
    }
  }

  return 0;
}