Skip to content

Conversation

@dfordivam
Copy link
Contributor

@dfordivam dfordivam commented Oct 28, 2025

Fixes #2904

  • Adds support for granting ValidatorLicense via SV UI and console.

  • Show weight + License kind in ValidatorLicense UI

    • Weight will only be shown if it is non-null
    • A check-mark will be shown if it is a validator node operator
  • Scan API fixes: ValidatorReceivedFaucets

  • And includes scala code fixes for the daml changes introduced in Daml: Add weight, kind to ValidatorLicense, and SV grant license support #2903

  • Adds a column in dso_acs_store for storing ValidatorLivenessActivityRecord weight

  • Removes SvMergeDuplicatedValidatorLicenseIntegrationTest and adds its functionality in new test SvValidatorLicenseIntegrationTest

@dfordivam dfordivam changed the title S Support for granting ValidatorLicense via SV UI Oct 28, 2025
@dfordivam
Copy link
Contributor Author

dfordivam commented Oct 28, 2025

Screenshots (these are old screenshots, ignore)

  1. New fields in /validator-onboarding for granting license.
    And Validator Licenses table shows "Weight" and "Non-operator" columns
Screenshot 2025-10-28 at 11-52-50 Super Validator Operations
  1. Confirmation prompt when trying to grant a license
Screenshot 2025-10-28 at 11-53-30 Super Validator Operations
  1. New License visible in table, along with check-mark for "Non-operator".
Screenshot 2025-10-28 at 11-54-08 Super Validator Operations
  1. Error shown when party is invalid
Screenshot 2025-10-28 at 11-54-40 Super Validator Operations
  1. Button is disabled when UI detects a typo
Screenshot 2025-10-28 at 11-55-17 Super Validator Operations
  1. Scan-app's /validator-licenses also shows new columns
Screenshot 2025-10-28 at 11-56-24 Amulet Scan

@isegall-da
Copy link
Contributor

@dfordivam I'm confused. I thought we agreed that we're breaking the work into a series of small PRs that one can effectively review. It's very hard to review thoroughly a PR of this magnitude that's a code dump of your complete work.
Specifically, if you have fixes to another PR that's still open, please apply the fixes there instead of including them here, so that every PR is a self-contained and complete unit of work.

@dfordivam
Copy link
Contributor Author

@isegall-da I would have preferred to change the "base" branch, such that the daml changes included in this branch are not shown in this PR. (I could not set the base to my branch as it is on a fork).
But I guess it would be better to simply remove the daml commits; at least for the review purpose the daml changes need not be present in this PR.

@dfordivam dfordivam force-pushed the dn/cip-0073-grant-validator-license branch from 3c79212 to 1e3dc30 Compare October 28, 2025 09:41
@isegall-da
Copy link
Contributor

@isegall-da I would have preferred to change the "base" branch, such that the daml changes included in this branch are not shown in this PR. (I could not set the base to my branch as it is on a fork). But I guess it would be better to simply remove the daml commits; at least for the review purpose the daml changes need not be present in this PR.

Why can't you base the branch on your own branch? You can stack multiple PRs one on top of the other, thus breaking the work into chunks that a reviewer can digest and review effectively.

@isegall-da
Copy link
Contributor

Alternatively, you can rework the git history in the branch such that it's a series of self-contained commits that one can review one at a time.

@dfordivam
Copy link
Contributor Author

Why can't you base the branch on your own branch? You can stack multiple PRs one on top of the other, thus breaking the work into chunks that a reviewer can digest and review effectively.

So its just a Github limitation, my branch is on the fork, and the base branch has to be on hyperledger-labs/splice.
The simplest solution in this scenario is to give me access to push branch to this repo. Other workarounds are a bit more complicated or have limitations, as breaking the work such that it does not use commits present in other PRs would limit how much I can practically breakdown changes into reviewable chunks.

@meiersi-da
Copy link
Contributor

I'll review tomorrow morning my time.

@meiersi-da
Copy link
Contributor

@dfordivam : on

image

wdyt about adding 'default: 1.0' when the weight is not set?

I'd also suggest to invert the double-negation: call the column "Operator" and add a checkmark if its an operator license.

Copy link
Contributor

@meiersi-da meiersi-da left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work @dfordivam !

Looks good up to the testing changes and small pieces of missing functionality. Let me know when you've addressed that so I can do a second review.

@dfordivam dfordivam force-pushed the dn/cip-0073-grant-validator-license branch from 1e3dc30 to 8e4208e Compare November 17, 2025 06:28
@dfordivam dfordivam changed the base branch from main to meiersi/dn/feature-cip-73 November 17, 2025 06:33
@dfordivam
Copy link
Contributor Author

Screenshots

  • Main UI
Screenshot 2025-11-17 at 14-52-52 Super Validator Operations
  • Valid party-id
Screenshot 2025-11-17 at 14-53-29 Super Validator Operations
  • Invalid party-id
Screenshot 2025-11-17 at 14-54-01 Super Validator Operations
  • Confirmation prompt
Screenshot 2025-11-17 at 14-58-34 Super Validator Operations
  • New validator visible in list
Screenshot 2025-11-17 at 14-58-45 Super Validator Operations

@meiersi-da meiersi-da force-pushed the meiersi/dn/feature-cip-73 branch from 0f126e6 to 4864f05 Compare November 17, 2025 06:57
Copy link
Contributor

@meiersi-da meiersi-da left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Looks good to me modulo the minor suggestions.

Approving with suggestions: https://neilmitchell.blogspot.com/2019/04/code-review-approve-with-suggestions.html

DsoAcsStoreRowData.IndexColumns.sv_name -> svName.map(lengthLimited),
DsoAcsStoreRowData.IndexColumns.wallet_party -> walletParty,
DsoAcsStoreRowData.IndexColumns.conversion_rate_feed_publisher -> conversionRateFeedPublisher,
DsoAcsStoreRowData.IndexColumns.validator_liveness_weight -> validatorLivenessWeight,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important: we are mutating the store definition, which is only OK as we are voting in the Daml change after upgrading all SV apps to the new version that supports it.

Please add a corresponding note to the release_notes.rst file in the Upcoming section at the top -- as part of this branch.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I have added this and a few more to a new section for the "Integration branch" in release_notes.rst, This should hopefully avoid conflicts with rebase and allow us to have a glance of "the diff" easily.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SV should be able grant a ValidatorLicense to any arbitrary party

5 participants