createPayloadForNearMPC method

Future<MpcTransactionInfo> createPayloadForNearMPC({
  1. required MPCAccountInfo mpcAccountInfo,
  2. required String receiverAddress,
  3. required double amount,
  4. required XRPTransactionInfo transactionInfo,
  5. String typeOfNetwork = "testnet",
})

Implementation

Future<MpcTransactionInfo> createPayloadForNearMPC({
  required MPCAccountInfo mpcAccountInfo,
  required String receiverAddress,
  required double amount,
  required XRPTransactionInfo transactionInfo,
  String typeOfNetwork = "testnet",
}) async {
  final amountInDrops = XrpFormatter.xrpToDrops(amount);

  final txInJsonFormat = {
    "TransactionType": 'Payment',
    "Account": mpcAccountInfo.adress,
    "Amount": amountInDrops.toString(),
    "Destination": receiverAddress,
    "SigningPubKey": mpcAccountInfo.publicKey,
    // "NetworkID": transactionInfo.networkId,
    "Sequence": transactionInfo.sequence,
    "Fee": transactionInfo.fee.toString(),
    "LastLedgerSequence": transactionInfo.lastLedgerSequence,
  };

  final unsignedTransactionData = await jsVMService.callJSAsync(
    """window.XRPUtils.createUnsignedTransaction('${jsonEncode(txInJsonFormat)}')""",
  );

  final unsignedTransaction =
      json.decode(unsignedTransactionData) as Map<String, dynamic>;
  return MpcTransactionInfo(transactionInfo: unsignedTransaction);
}