Skip to content

Conversation

@derekpierre
Copy link
Member

@derekpierre derekpierre commented Nov 7, 2025

Type of PR:

  • Bugfix
  • Feature
  • Documentation
  • Other

Required reviews:

  • 1
  • 2
  • 3

What this does:

Depends on:

Implement:

  • Implement encrypted signing request/response functionality for E2E communication
  • Update porter interface to accommodate updated Porter API for encrypted signing requests/responses.

Issues fixed/closed:

  • Fixes #...

Why it's needed:

Explain how this PR fits in the greater context of the NuCypher Network. E.g.,
if this PR address a nucypher/productdev issue, let reviewers know!

Notes for reviewers:

… latest changes from `nucypher-core` can be used.
…e to specify their corresponding UserOperation.

Convert `UserOperationToSign` to `nucypher-core`:UserOperation when crafting signature request.
Use latest types from Porter for sending signature requests and processing signature response.
Add/update tests.
…now includes signer address.

Modify Porter response to handle SignatureResponse and not a tuple of signer address and SignatureResponse.
Update tests.
…ore object).

Add type guard for PackedUserOperationToSign.
Add helper methods for converting number values to bigint, and data values to Uint8Array.
…or signing to facilitate end-to-end encrypted communication between requester and nodes.

Update to use updated Porter inputs and outputs.
Run typechain build of contracts
Update CoordinatorAgent to not use isEncryptionAuthorized since no longer available in Coordinator contract
Update SigningCoordinatorAgent to properly set signingRequestStaticKey from contract.
@codecov-commenter
Copy link

codecov-commenter commented Nov 10, 2025

Codecov Report

❌ Patch coverage is 90.70796% with 63 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (signing-epic@bf0f8e9). Learn more about missing BASE report.

Files with missing lines Patch % Lines
packages/shared/src/types.ts 7.93% 58 Missing ⚠️
...shared/src/contracts/agents/signing-coordinator.ts 33.33% 4 Missing ⚠️
packages/shared/src/porter.ts 95.65% 1 Missing ⚠️
Additional details and impacted files
@@               Coverage Diff               @@
##             signing-epic     #737   +/-   ##
===============================================
  Coverage                ?   89.74%           
===============================================
  Files                   ?       97           
  Lines                   ?     8443           
  Branches                ?      291           
===============================================
  Hits                    ?     7577           
  Misses                  ?      863           
  Partials                ?        3           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@derekpierre derekpierre requested a review from Copilot November 10, 2025 14:17
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR updates core dependencies and refactors the signing flow to use encrypted signature requests/responses. Key changes include:

  • Upgrades @nucypher/nucypher-core from ^0.14.5 to ^0.15.1-dev.2 and @nucypher/nucypher-contracts from 0.26.0-alpha.1 to ^0.26.0-alpha.2
  • Refactors the signing flow to use encrypted EncryptedThresholdSignatureRequest and EncryptedThresholdSignatureResponse
  • Updates UserOperation types to UserOperationToSign with optional fields and support for PackedUserOperation
  • Updates contract interfaces to include new signing coordinator methods and handover functionality

Reviewed Changes

Copilot reviewed 22 out of 23 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pnpm-lock.yaml Updates dependency versions and resolves peer dependencies
packages/*/package.json Updates version references for nucypher-core and nucypher-contracts
packages/shared/src/types.ts Refactors UserOperation to UserOperationToSign with optional fields and adds PackedUserOperation support
packages/taco/src/sign.ts Refactors signing flow to use encrypted requests/responses with session keys
packages/shared/src/porter.ts Updates Porter client to handle encrypted signature requests/responses
packages/taco/test/*.test.ts Updates tests to use new encrypted signature flow
packages/shared/src/contracts/* Updates contract typings for new coordinator interfaces
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@derekpierre derekpierre self-assigned this Nov 10, 2025
@derekpierre derekpierre changed the title [WIP] Encrypted Signing Requests/Responses Encrypted Signing Requests/Responses Nov 10, 2025
@derekpierre derekpierre requested a review from KPrasch November 10, 2025 14:43
@derekpierre derekpierre marked this pull request as ready for review November 10, 2025 14:43
Copy link
Contributor

@Muhammad-Altabba Muhammad-Altabba left a comment

Choose a reason for hiding this comment

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

LGTM!

Copy link
Contributor

@manumonti manumonti left a comment

Choose a reason for hiding this comment

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

LGTM! 👍

Co-authored-by: Manuel Montenegro <manuel@nucypher.com>
…ger handles unencrypted responses.

Export relevant types from sign module.
@derekpierre derekpierre merged commit 552cf6f into nucypher:signing-epic Nov 11, 2025
4 checks passed
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.

6 participants