Skip to content

Feat: Federated Authority Observation - querying db-sync#142

Merged
NachoPal merged 32 commits into
mainfrom
nacho/federated-authority-observation-follow-up
Oct 31, 2025
Merged

Feat: Federated Authority Observation - querying db-sync#142
NachoPal merged 32 commits into
mainfrom
nacho/federated-authority-observation-follow-up

Conversation

@NachoPal

@NachoPal NachoPal commented Oct 20, 2025

Copy link
Copy Markdown
Contributor

Overview

Partially closes: https://shielded.atlassian.net/browse/PM-18914 (still need to handle Cardano hash addresses)

Implementation of FederatedAuthorityObservationDataSourceImpl and e2e tests for Federated Authority Observation.

Now the Node is able to query the Federated Authority members from Cardano smart contracts.

🗹 TODO before merging

  • Ready

📌 Submission Checklist

  • Changes are backward-compatible (or flagged if breaking)
  • Pull request description explains why the change is needed
  • Self-reviewed the diff
  • I have included a change file, or skipped for this reason:
  • If the changes introduce a new feature, I have bumped the node minor version
  • Update documentation (if relevant)
  • No new todos introduced

🧪 Testing Evidence

Please describe any additional testing aside from CI:

  • Additional tests are provided (if possible)

🔱 Fork Strategy

  • Node Runtime Update
  • Node Client Update
  • Other:
  • N/A

@NachoPal NachoPal requested a review from a team as a code owner October 20, 2025 10:31
@NachoPal NachoPal marked this pull request as draft October 20, 2025 12:12
@github-actions

github-actions Bot commented Oct 20, 2025

Copy link
Copy Markdown
Contributor

Logo
Checkmarx One – Scan Summary & Detailsabcdc3cd-4af6-4189-98b4-9884dada1118

Great job! No new security vulnerabilities introduced in this pull request

@NachoPal NachoPal marked this pull request as ready for review October 31, 2025 11:20
@NachoPal NachoPal enabled auto-merge (squash) October 31, 2025 11:21
Comment thread primitives/mainchain-follower/src/data_source/federated_authority_observation.rs Outdated
Comment thread primitives/mainchain-follower/src/idp/federated_authority_observation.rs Outdated
Comment thread tests/e2e/src/cfg/mod.rs Outdated
Comment thread primitives/mainchain-follower/src/db/queries/federated_authority_observation.rs Outdated
Comment thread local-environment/src/networks/local-env/configurations/cardano/config-pool1.json Outdated
@NachoPal NachoPal merged commit eabe8d8 into main Oct 31, 2025
24 checks passed
@NachoPal NachoPal deleted the nacho/federated-authority-observation-follow-up branch October 31, 2025 19:06
NachoPal added a commit that referenced this pull request Nov 5, 2025
* feat: query governance data

* test: e2e tests base for governance contracts

* feat: adding governance contracts to local-env

* aaarrrgggg deploy failing

* feat: Governance contracts deployed to local-env

* federate-authority-configs updated with expected contracts

* feat: new members properly read from the minted nft

* chore: clean up

* feat: add new calls to set addresses and policy_id + benchmarks

* nit

* chore: make clippy happy

* chore: add change file

* feat: replace vec by PolicyId and MainchainAddress

* chore: regenerate metadata

* chore: make clippy happy

* test: add test for contracts info setters

* chore: update federated configs with preview real data + test fix

* chore: regenerate metadata
@NachoPal NachoPal mentioned this pull request Nov 5, 2025
13 tasks
NachoPal added a commit that referenced this pull request Nov 5, 2025
* Feat: Federated Authority Observation - querying `db-sync` (#142)

* feat: query governance data

* test: e2e tests base for governance contracts

* feat: adding governance contracts to local-env

* aaarrrgggg deploy failing

* feat: Governance contracts deployed to local-env

* federate-authority-configs updated with expected contracts

* feat: new members properly read from the minted nft

* chore: clean up

* feat: add new calls to set addresses and policy_id + benchmarks

* nit

* chore: make clippy happy

* chore: add change file

* feat: replace vec by PolicyId and MainchainAddress

* chore: regenerate metadata

* chore: make clippy happy

* test: add test for contracts info setters

* chore: update federated configs with preview real data + test fix

* chore: regenerate metadata

* chore: rebuild metadata

* chore: rebuild chain_specs
github-merge-queue Bot pushed a commit that referenced this pull request Nov 18, 2025
* fix: error when loading chain spec for non-dev cfg_preset (#187) (#194)

* fix: error when loading chain spec for non-dev cfg_preset

---------

Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Co-authored-by: Squirrel <giles.cope@shielded.io>

* chore: PC 1.8 deployment fixes (#201)

* chore: node-dev-01 new chain spec with PC 1.8 registrations (#191)

* chore: PC 1.8 new registrations (#197)

* chore: PC 1.8 new registrations

* chore: add governance info

* chore: fix chain-spec to match PC 1.8 registration (#200)

* Cherry pick: bump to ledger ledger-6.1.0-alpha.5 (#203) (#204)

* bump to ledger ledger-6.1.0-alpha.5 (#203)

(cherry picked from commit b3fac93)

* Change GITHUB_TOKEN to GHP_TOKEN in workflow

---------

Co-authored-by: Fenton Haslam <50406962+Fentonhaslam@users.noreply.github.com>

* Backport gov (#206)

* Fix: Federated Authority configurations (#180)

* fix federated authorities for qanet and node-dev-01

* chore: regenerate chain_specs

* fix: rebuild preview chainspec

---------

Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>

* [0.18.0 cherry-pick] Add midnight_ prefix to chain ID to follow Polkadot convention (#216)

* Add `midnight_` prefix to chain ID to follow Polkadot convention (#188)

* feat: add 'midnight_' prefix to all chain ids

Network ID is created as a transformation of the chain id

* chore: rebuild chainspecs

* docs: add change file

* feat: add check on network_id spec conformity

* chore: rebuild chainspecs

* Backport #142 (#220)

* Feat: Federated Authority Observation - querying `db-sync` (#142)

* feat: query governance data

* test: e2e tests base for governance contracts

* feat: adding governance contracts to local-env

* aaarrrgggg deploy failing

* feat: Governance contracts deployed to local-env

* federate-authority-configs updated with expected contracts

* feat: new members properly read from the minted nft

* chore: clean up

* feat: add new calls to set addresses and policy_id + benchmarks

* nit

* chore: make clippy happy

* chore: add change file

* feat: replace vec by PolicyId and MainchainAddress

* chore: regenerate metadata

* chore: make clippy happy

* test: add test for contracts info setters

* chore: update federated configs with preview real data + test fix

* chore: regenerate metadata

* chore: rebuild metadata

* chore: rebuild chain_specs

* [cherry-pick 0.18.0] Deduplicate Mapping types (#166) (#221)

* Deduplicate Mapping types (#166)

* chore: replace Mapping with MappingEntry

Signed-off-by: yHSJ <josh@securitybot.info>

* chore: changefile

* chore: remove unnecessary conversions

* fix: regenerate metadata

* chore: update metadata

* Add change tag

* test: fix test compile errors

---------

Signed-off-by: yHSJ <josh@securitybot.info>
Co-authored-by: Giles Cope <gilescope@gmail.com>
Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Co-authored-by: Justin Frevert <justinfrevert@gmail.com>

* chore: rebuild metadata

* chore: rebuild chainspecs

---------

Signed-off-by: yHSJ <josh@securitybot.info>
Co-authored-by: Joshua Marchand (JSHy) <79121297+yHSJ@users.noreply.github.com>
Co-authored-by: Giles Cope <gilescope@gmail.com>
Co-authored-by: Justin Frevert <justinfrevert@gmail.com>

* Fix node entrypoint (#217)

* fix node entrypoint

* test

* last try

* fix: node entrypoint passing `--` as an arg

Found when running with SHOW_CONFIG=1:

```
NAME:          args
HELP:          The arguments passed to the node
TYPE:          Vec < String >
DEFAULT:
SOURCES:       cli
CURRENT_VALUE: "--, "
```

---------

Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>

* [cherry-pick 0.18.0] Update cNight Observation for new Datum structure (#189) (#225)

* Update cNight Observation for new Datum structure (#189)

* feat: update to follow new datum structure

* test: fix tests

* fix: DustPublicKey deserialized correctly (PM-19983); fix test

* fix: check for DustPublicKey length; Fix missing dereg event (PM-20229)

* refactor: rename types - more precise naming

* refactor: rename fields for precision

* feat: wrap cnight array types in new structs

* feat: use McBlockHash and TxBlockHash in more places

* fix: clippy warnings

* docs: add change file

* docs: add change file

* docs: add change file

* build: remove unused dep serde_arrays

* chore: update metadata

* feat: rename MappingEntry utxo_id -> utxo_tx_hash

* feat: update type of utxo_tx_hash

* feat: change type of cmst block hash

* feat: add check for mapping validator auth token

* chore: update sqlx cache

* test: fix tests for cnight config validation

* chore: update cnight config files

* test: use aiken cnight smart contracts

* fix: use new mapping validator address

* chore: update metadata

* test: fix tests after cnight pallet update

* test: fix more tests, 2 e2e tests still failing

* test: fix mint cnight tx budget

* test: remove old typescript local-env tests

* build: remove leftover target

* build: remove leftover target

---------

Co-authored-by: Radosław Sporny <404@rspo.dev>

* chore: rebuild chainspecs

---------

Co-authored-by: Radosław Sporny <404@rspo.dev>

* Update governance contracts (#226)

* fix: update node-dev-01 gov contracts

* fix: qanet and preview gov contracts

* chore: update chain-specs

* docs: reset changes (node-0.18.0-rc.5)

* fix: npm audit

* fix metadata

---------

Signed-off-by: yHSJ <josh@securitybot.info>
Co-authored-by: Radosław Sporny <404@rspo.dev>
Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Co-authored-by: Squirrel <giles.cope@shielded.io>
Co-authored-by: justinfrevert <81839854+justinfrevert@users.noreply.github.com>
Co-authored-by: Fenton Haslam <50406962+Fentonhaslam@users.noreply.github.com>
Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>
Co-authored-by: Joshua Marchand (JSHy) <79121297+yHSJ@users.noreply.github.com>
Co-authored-by: Giles Cope <gilescope@gmail.com>
Co-authored-by: Justin Frevert <justinfrevert@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
NachoPal added a commit that referenced this pull request Nov 21, 2025
* fix: error when loading chain spec for non-dev cfg_preset (#187) (#194)

* fix: error when loading chain spec for non-dev cfg_preset

---------

Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Co-authored-by: Squirrel <giles.cope@shielded.io>

* chore: PC 1.8 deployment fixes (#201)

* chore: node-dev-01 new chain spec with PC 1.8 registrations (#191)

* chore: PC 1.8 new registrations (#197)

* chore: PC 1.8 new registrations

* chore: add governance info

* chore: fix chain-spec to match PC 1.8 registration (#200)

* Cherry pick: bump to ledger ledger-6.1.0-alpha.5 (#203) (#204)

* bump to ledger ledger-6.1.0-alpha.5 (#203)

(cherry picked from commit b3fac93)

* Change GITHUB_TOKEN to GHP_TOKEN in workflow

---------

Co-authored-by: Fenton Haslam <50406962+Fentonhaslam@users.noreply.github.com>

* Backport gov (#206)

* Fix: Federated Authority configurations (#180)

* fix federated authorities for qanet and node-dev-01

* chore: regenerate chain_specs

* fix: rebuild preview chainspec

---------

Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>

* [0.18.0 cherry-pick] Add midnight_ prefix to chain ID to follow Polkadot convention (#216)

* Add `midnight_` prefix to chain ID to follow Polkadot convention (#188)

* feat: add 'midnight_' prefix to all chain ids

Network ID is created as a transformation of the chain id

* chore: rebuild chainspecs

* docs: add change file

* feat: add check on network_id spec conformity

* chore: rebuild chainspecs

* Backport #142 (#220)

* Feat: Federated Authority Observation - querying `db-sync` (#142)

* feat: query governance data

* test: e2e tests base for governance contracts

* feat: adding governance contracts to local-env

* aaarrrgggg deploy failing

* feat: Governance contracts deployed to local-env

* federate-authority-configs updated with expected contracts

* feat: new members properly read from the minted nft

* chore: clean up

* feat: add new calls to set addresses and policy_id + benchmarks

* nit

* chore: make clippy happy

* chore: add change file

* feat: replace vec by PolicyId and MainchainAddress

* chore: regenerate metadata

* chore: make clippy happy

* test: add test for contracts info setters

* chore: update federated configs with preview real data + test fix

* chore: regenerate metadata

* chore: rebuild metadata

* chore: rebuild chain_specs

* [cherry-pick 0.18.0] Deduplicate Mapping types (#166) (#221)

* Deduplicate Mapping types (#166)

* chore: replace Mapping with MappingEntry

Signed-off-by: yHSJ <josh@securitybot.info>

* chore: changefile

* chore: remove unnecessary conversions

* fix: regenerate metadata

* chore: update metadata

* Add change tag

* test: fix test compile errors

---------

Signed-off-by: yHSJ <josh@securitybot.info>
Co-authored-by: Giles Cope <gilescope@gmail.com>
Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Co-authored-by: Justin Frevert <justinfrevert@gmail.com>

* chore: rebuild metadata

* chore: rebuild chainspecs

---------

Signed-off-by: yHSJ <josh@securitybot.info>
Co-authored-by: Joshua Marchand (JSHy) <79121297+yHSJ@users.noreply.github.com>
Co-authored-by: Giles Cope <gilescope@gmail.com>
Co-authored-by: Justin Frevert <justinfrevert@gmail.com>

* Fix node entrypoint (#217)

* fix node entrypoint

* test

* last try

* fix: node entrypoint passing `--` as an arg

Found when running with SHOW_CONFIG=1:

```
NAME:          args
HELP:          The arguments passed to the node
TYPE:          Vec < String >
DEFAULT:
SOURCES:       cli
CURRENT_VALUE: "--, "
```

---------

Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>

* [cherry-pick 0.18.0] Update cNight Observation for new Datum structure (#189) (#225)

* Update cNight Observation for new Datum structure (#189)

* feat: update to follow new datum structure

* test: fix tests

* fix: DustPublicKey deserialized correctly (PM-19983); fix test

* fix: check for DustPublicKey length; Fix missing dereg event (PM-20229)

* refactor: rename types - more precise naming

* refactor: rename fields for precision

* feat: wrap cnight array types in new structs

* feat: use McBlockHash and TxBlockHash in more places

* fix: clippy warnings

* docs: add change file

* docs: add change file

* docs: add change file

* build: remove unused dep serde_arrays

* chore: update metadata

* feat: rename MappingEntry utxo_id -> utxo_tx_hash

* feat: update type of utxo_tx_hash

* feat: change type of cmst block hash

* feat: add check for mapping validator auth token

* chore: update sqlx cache

* test: fix tests for cnight config validation

* chore: update cnight config files

* test: use aiken cnight smart contracts

* fix: use new mapping validator address

* chore: update metadata

* test: fix tests after cnight pallet update

* test: fix more tests, 2 e2e tests still failing

* test: fix mint cnight tx budget

* test: remove old typescript local-env tests

* build: remove leftover target

* build: remove leftover target

---------

Co-authored-by: Radosław Sporny <404@rspo.dev>

* chore: rebuild chainspecs

---------

Co-authored-by: Radosław Sporny <404@rspo.dev>

* Update governance contracts (#226)

* fix: update node-dev-01 gov contracts

* fix: qanet and preview gov contracts

* chore: update chain-specs

* Add `preprod` network (#265)

* feat: add preprod network

* nit

* chore: change file

* chore: preprod validators

* chore: regenerate genesis

* fix: align with preview

* chore: update preprod pc-config

* Revert "chore: update preprod pc-config"

This reverts commit 5a43d4c.

* Revert "fix: align with preview"

This reverts commit 5c4d7e7.

* chore: preprod chain-spec

* fix: npm audit

* fix

* remove cache

* :/

* change to trixie

* Revert "remove cache"

This reverts commit e6fdbe2.

* recover no cache

* Revert "change to trixie"

This reverts commit d529e1d.

* Revert ":/"

This reverts commit 980d1a8.

* logs

* fix: update to trixie

* Revert "logs"

This reverts commit 6709891.

* undo no-cache

---------

Co-authored-by: Radosław Sporny <404@rspo.dev>

* docs: reset changes (node-0.18.0-rc.6)

* fix: fix main merge

* fix: fix main merge 2

* fix: fix main merge 3

* fix: add mainchain memebers for preprod

---------

Signed-off-by: yHSJ <josh@securitybot.info>
Co-authored-by: Radosław Sporny <404@rspo.dev>
Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Co-authored-by: Squirrel <giles.cope@shielded.io>
Co-authored-by: justinfrevert <81839854+justinfrevert@users.noreply.github.com>
Co-authored-by: Fenton Haslam <50406962+Fentonhaslam@users.noreply.github.com>
Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>
Co-authored-by: Joshua Marchand (JSHy) <79121297+yHSJ@users.noreply.github.com>
Co-authored-by: Giles Cope <gilescope@gmail.com>
Co-authored-by: Justin Frevert <justinfrevert@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

3 participants