registerOnline method

Future<String> registerOnline({
  1. required ParticipationPublicKey votePK,
  2. required VRFPublicKey selectionPK,
  3. required int voteFirst,
  4. required int voteLast,
  5. required int voteKeyDilution,
  6. required Account account,
})

Register an account online.

Throws an AlgorandException if there is an HTTP error. Returns the pending transaction.

Implementation

Future<String> registerOnline({
  required ParticipationPublicKey votePK,
  required VRFPublicKey selectionPK,
  required int voteFirst,
  required int voteLast,
  required int voteKeyDilution,
  required Account account,
}) async {
  // Fetch the suggested transaction params
  final params = await _transactionRepository.getSuggestedTransactionParams();

  // Transfer the asset
  final transaction = await (KeyRegistrationTransactionBuilder()
        ..votePK = votePK
        ..selectionPK = selectionPK
        ..voteFirst = voteFirst
        ..voteLast = voteLast
        ..voteKeyDilution = voteKeyDilution
        ..sender = account.address
        ..suggestedParams = params)
      .build();

  // Sign the transactions
  final signedTransaction = await transaction.sign(account);

  // Send the transaction
  return await _transactionRepository.sendTransaction(signedTransaction);
}