signUserOperation method

  1. @override
Future<UserOperation> signUserOperation(
  1. UserOperation userOp,
  2. {bool update = true,
  3. String? id,
  4. int? index}
)
override

Signs a user operation using the provided key.

  • userOp: The UserOperation.
  • update: True if you want to update the user operation (optional).
  • id: The id of the transaction (optional).

Returns a signed UserOperation.

Implementation

@override
Future<UserOperation> signUserOperation(UserOperation userOp,
    {bool update = true, String? id, int? index}) async {
  if (update) await _updateUserOperation(userOp);
  final opHash = userOp.hash(_chain);
  Uint8List signature = await plugin<MultiSignerInterface>('signer')
      .personalSign(opHash,
          index: index,
          id: id ?? plugin<PasskeyInterface>('signer').defaultId);
  userOp.signature = hexlify(signature);
  await _validateUserOperation(userOp);
  return userOp;
}