Skip to content

Conversation

@spacesailor24
Copy link
Contributor

@spacesailor24 spacesailor24 commented Nov 27, 2025

Description

  • .cursorignore: Add pacakge node_modules and dist dirs as I believe it was slowing down Intellisense (not sure if I'm the only dev with the issue, but ignoring these dirs seems to stop Intellisense infinitely loading)
  • packages/apps/abilities-e2e/: Migrated SOL e2e tests and helpers to the SOL Ability package dir
  • packages/apps/ability-sol-transaction-signer/src/lib/schemas.ts: Convert evmContractConditions from any to string so that it matches what's returned by the Wrapped Keys get metadata API endpoint
  • packages/apps/ability-sol-transaction-signer/test/e2e/ability.spec.ts: Init E2E test which validates:
    • listEncryptedKeyMetadata using the Platform User PKP JWT
    • getEncryptedKey using the Platform User and Delegatee PKP JWTs
    • exportPrivateKey using the Platform User PKP JWT
    • Ability precheck and execute methods to validate and sign both legacy and versioned SOL txs that self transfer SOL and validate the transaction was included in a block
  • packages/apps/ability-sol-transaction-signer/test/e2e/generate-key.spec.ts: Init E2E test which uses the Platform User PKP JWT to generate a new SOL wrapped key
  • packages/apps/ability-sol-transaction-signer/test/e2e/batch-store-encrypted-key.spec.ts: Init E2E test which generates a SOL keypair using web3.js, encrypts it with Lit, stores in using WK service, exports it from WK service, and signs and submits a SOL transfer using the Ability
  • packages/apps/ability-sol-transaction-signer/test/e2e/batch-generate-keys.spec.ts: Init E2E test which generates several keypairs using web3.js, the stores all of them using WK service, and tests retrieving them from WK service
  • packages/libs/e2e-test-utils/
    • Update so that the EOA from the ENV is used to mint and own a Platform User PKP which is then used to mint and own a Agent PKP per Vincent App ID
    • Add exports for Platform User PKP Ethers wallet so it can be used in E2E testing for signing the JWT
  • packages/libs/wrapped-keys/src/lib/api/generate-private-key.ts: Bug fix for evmContractConditions being passed as an array of objects instead of a string as expected by Wrapped Keys Lambdas
  • packages/libs/wrapped-keys/src/lib/api/batch-generate-private-keys.ts removes unsupported signing functionality, also fixes bug with using non-stringified evmContractConditions
  • packages/libs/wrapped-keys/src/lib/service-client/client.ts bug fix, wasn't passing required param: delegatorAddress

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?

E2E tests in packages/apps/ability-sol-transaction-signer/test/e2e/ utilize the new changes made to the e2e-test-utils and validate the Vincent Wrapped Keys service allows for creating, retrieving, and signing SOL txs using the Vincent Ability

Running the E2E tests:

  1. git checkout -b chore/sol-wk-e2e-test origin/chore/sol-wk-e2e-test
  2. pnpm i && pnpm build
  3. cp packages/apps/ability-sol-transaction-signer/.env.example packages/apps/ability-sol-transaction-signer/.env
  4. Fill in all ENVs
  5. pnpx nx run ability-sol-transaction-signer:test-e2e packages/apps/ability-sol-transaction-signer/test/e2e/generate-key.spec.ts to generate a Wrapped Key for your dev Agent PKP
  6. pnpx nx run ability-sol-transaction-signer:test-e2e packages/apps/ability-sol-transaction-signer/test/e2e/ability.spec.ts to run all the tests for retrieving Wrapped Key metadata, exporting the private key, and using the encryption metadata to execute the SOL tx signing Ability
  7. pnpx nx run ability-sol-transaction-signer:test-e2e packages/apps/ability-sol-transaction-signer/test/e2e/store-encrypted-key.spec.ts to run key generation, storing, exporting, and signing
  8. pnpx nx run ability-sol-transaction-signer:test-e2e packages/apps/ability-sol-transaction-signer/test/e2e/batch-store-encrypted-key.spec.ts to run multiple key generation, storing, and retrieving

Checklist:

  • I created a release plan (nx release plan) describing my changes and the version bump
  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

@vercel
Copy link

vercel bot commented Nov 27, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
vincent-app-dashboard Ready Ready Preview Comment Nov 28, 2025 11:20pm

@spacesailor24 spacesailor24 marked this pull request as ready for review November 28, 2025 23:13
Copilot AI review requested due to automatic review settings November 28, 2025 23:13
Copilot finished reviewing on behalf of spacesailor24 November 28, 2025 23:14
Copy link
Contributor

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 refactors the Vincent e2e test infrastructure to implement a hierarchical PKP ownership model (EOA → Platform User PKP → Agent PKP per app) and migrates Solana transaction signer e2e tests to the ability package directory. Key changes include bug fixes for evmContractConditions serialization in wrapped keys APIs and comprehensive e2e test coverage for SOL transaction signing.

Key Changes

  • Refactored e2e test utils to support Platform User PKP as intermediary between EOA and Agent PKPs
  • Migrated SOL e2e tests from abilities-e2e to ability-sol-transaction-signer/test/e2e/
  • Fixed evmContractConditions handling: now properly stringified for Wrapped Keys API calls

Reviewed changes

Copilot reviewed 45 out of 52 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/libs/e2e-test-utils/src/lib/ Major refactor supporting new PKP hierarchy with Platform User PKP concept
packages/libs/wrapped-keys/src/lib/api/ Fixed evmContractConditions serialization bugs (stringify before API calls)
packages/libs/wrapped-keys/src/lib/service-client/client.ts Fixed missing delegatorAddress param in batch store operation
packages/apps/ability-sol-transaction-signer/test/e2e/ New comprehensive e2e tests for wrapped keys and transaction signing
packages/apps/ability-sol-transaction-signer/src/lib/schemas.ts Changed evmContractConditions type from any to string
packages/apps/abilities-e2e/ Removed SOL tests (migrated to ability package)
pnpm-lock.yaml Updated dependencies for new e2e test structure
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

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

Copilot AI review requested due to automatic review settings November 28, 2025 23:17
@spacesailor24 spacesailor24 changed the title Chore/sol wk e2e test Sol Tx Signing Ability E2E tests Nov 28, 2025
Copilot finished reviewing on behalf of spacesailor24 November 28, 2025 23:18
Copy link
Contributor

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

Copilot reviewed 45 out of 52 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

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

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.

2 participants