sendTokens method

Future<Map> sendTokens(
  1. double nearAmount,
  2. String receiver
)

Transfer near from account to receiver

Implementation

Future<Map<dynamic, dynamic>> sendTokens(
    double nearAmount, String receiver) async {
  AccessKey accessKey = await findAccessKey();

  // Create Transaction
  accessKey.nonce++;
  String publicKey = KeyStore.publicKeyToString(keyPair.publicKey);

  Transaction transaction = Transaction(
      signer: accountId,
      publicKey: publicKey,
      nearAmount: nearAmount.toStringAsFixed(12),
      gasFees: Constants.defaultGas,
      receiver: receiver,
      methodName: '',
      methodArgs: '',
      accessKey: accessKey,
      actionType: ActionType.transfer);

  // Serialize Transaction
  Uint8List serializedTransaction =
      TransactionManager.serializeTransferTransaction(transaction);
  Uint8List hashedSerializedTx =
      TransactionManager.toSHA256(serializedTransaction);

  // Sign Transaction
  Uint8List signature = TransactionManager.signTransaction(
      keyPair.privateKey, hashedSerializedTx);

  // Serialize Signed Transaction
  Uint8List serializedSignedTransaction =
      TransactionManager.serializeSignedTransferTransaction(
          transaction, signature);
  String encodedTransaction =
      TransactionManager.encodeSerialization(serializedSignedTransaction);

  // Broadcast Transaction
  return await provider.broadcastTransaction(encodedTransaction);
}