Skip to content

[graphql-alt] Add ZkLogin and Passkey to SignatureScheme union [3/n]#25659

Merged
tpham-mysten merged 2 commits intomainfrom
tpham-graphql-signature-scheme-zklogin-passkey
Mar 4, 2026
Merged

[graphql-alt] Add ZkLogin and Passkey to SignatureScheme union [3/n]#25659
tpham-mysten merged 2 commits intomainfrom
tpham-graphql-signature-scheme-zklogin-passkey

Conversation

@tpham-mysten
Copy link
Copy Markdown
Contributor

@tpham-mysten tpham-mysten commented Mar 1, 2026

Description

  • Add ZkLoginSignature variant exposing maxEpoch and the inner userSignature
  • Add PasskeySignature variant exposing authenticatorData, clientDataJson, and the inner userSignature

Test plan

How did you test the new or updated feature?

  • Unit test

Stack

Release notes

Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.

For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

  • Protocol:
  • Nodes (Validators and Full nodes):
  • gRPC:
  • JSON-RPC:
  • GraphQL:
  • CLI:
  • Rust SDK:
  • Indexing Framework:

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 1, 2026

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

Project Deployment Actions Updated (UTC)
sui-docs Ready Ready Preview, Comment Mar 4, 2026 8:52am
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
multisig-toolkit Ignored Ignored Preview Mar 4, 2026 8:52am
sui-kiosk Ignored Ignored Preview Mar 4, 2026 8:52am

Request Review

@tpham-mysten tpham-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 1, 2026 08:51 — with GitHub Actions Inactive
@tpham-mysten tpham-mysten changed the title [graphql-alt] Add ZkLogin and Passkey to SignatureScheme union [graphql-alt] Add ZkLogin and Passkey to SignatureScheme union [3/n] Mar 1, 2026
@tpham-mysten tpham-mysten force-pushed the tpham-graphql-signature-scheme-zklogin-passkey branch from 0ee4e2a to 6fa7680 Compare March 1, 2026 08:53
@tpham-mysten tpham-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 1, 2026 08:53 — with GitHub Actions Inactive
@tpham-mysten tpham-mysten force-pushed the tpham-graphql-signature-scheme-zklogin-passkey branch from 6fa7680 to 542abe4 Compare March 1, 2026 16:43
@tpham-mysten tpham-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 1, 2026 16:43 — with GitHub Actions Inactive
@tpham-mysten tpham-mysten force-pushed the tpham-graphql-signature-scheme-multisig branch 2 times, most recently from b0e2001 to a13b2ea Compare March 1, 2026 17:07
@tpham-mysten tpham-mysten force-pushed the tpham-graphql-signature-scheme-zklogin-passkey branch from 542abe4 to c1a0f73 Compare March 1, 2026 17:09
@tpham-mysten tpham-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 1, 2026 17:09 — with GitHub Actions Inactive
@tpham-mysten tpham-mysten force-pushed the tpham-graphql-signature-scheme-multisig branch 2 times, most recently from 43913f5 to 4eff546 Compare March 4, 2026 03:17
tpham-mysten added a commit that referenced this pull request Mar 4, 2026
…25658)

## Description 
- Add `MultisigSignature` variant to the `SignatureScheme` GraphQL union
- Introduce `MultisigMemberSignature` (flat struct with
`MultisigMemberSignatureScheme` enum), `MultisigCommittee`,
`MultisigMember`, and `MultisigMemberPublicKey` (union) types
- `MultisigMemberPublicKey` uses a union with `ZkLoginPublicIdentifier`
(exposing `iss` + `addressSeed`) since it's structurally different from
other key types
- `MultiSigLegacy` is converted to `MultiSig` via `TryFrom` to reuse a
single code path
- ZkLogin public identifier conversion follows the same approach as gRPC
(`rpc_proto_conversions.rs:1620`) — going through `sui_sdk_types`

## Test plan 

How did you test the new or updated feature?

- Unit test

---

## Stack
- #25657 
- #25658 <-
- #25659 

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
- [ ] Indexing Framework:
Base automatically changed from tpham-graphql-signature-scheme-multisig to tpham-graphql-signature-scheme-simple March 4, 2026 03:18
tpham-mysten added a commit that referenced this pull request Mar 4, 2026
…1/n] (#25657)

## Description 

- Convert `user_signature.rs` into a `user_signature/` module directory
to support upcoming submodules for complex signature types
- Add a `SignatureScheme` GraphQL union type with `Ed25519Signature`,
`Secp256k1Signature`, and `Secp256r1Signature` variants, each exposing
parsed `signature` and `publicKey` fields

## Test plan 

How did you test the new or updated feature?

- Unit test

---

## Stack
- #25657 <-
- #25658
- #25659 

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [x] GraphQL: Introduce a new union `SignatureScheme` for
`UserSignature`
- [ ] CLI: 
- [ ] Rust SDK:
- [ ] Indexing Framework:
Base automatically changed from tpham-graphql-signature-scheme-simple to main March 4, 2026 03:52
Copy link
Copy Markdown
Contributor Author

@tpham-mysten tpham-mysten left a comment

Choose a reason for hiding this comment

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

Thanks for the review! I will add ZkLoginInputs, public_identifier, and jwk_id in the next PR

@tpham-mysten tpham-mysten force-pushed the tpham-graphql-signature-scheme-zklogin-passkey branch from c1a0f73 to f28e5d7 Compare March 4, 2026 05:02
@tpham-mysten tpham-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 4, 2026 05:02 — with GitHub Actions Inactive
@tpham-mysten tpham-mysten force-pushed the tpham-graphql-signature-scheme-zklogin-passkey branch from f28e5d7 to 8357e40 Compare March 4, 2026 08:51
@tpham-mysten tpham-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 4, 2026 08:51 — with GitHub Actions Inactive
@tpham-mysten tpham-mysten merged commit f35e50f into main Mar 4, 2026
58 of 59 checks passed
@tpham-mysten tpham-mysten deleted the tpham-graphql-signature-scheme-zklogin-passkey branch March 4, 2026 09:10
jessiemongeon1 pushed a commit to jessiemongeon1/sui that referenced this pull request Mar 5, 2026
…1/n] (MystenLabs#25657)

## Description 

- Convert `user_signature.rs` into a `user_signature/` module directory
to support upcoming submodules for complex signature types
- Add a `SignatureScheme` GraphQL union type with `Ed25519Signature`,
`Secp256k1Signature`, and `Secp256r1Signature` variants, each exposing
parsed `signature` and `publicKey` fields

## Test plan 

How did you test the new or updated feature?

- Unit test

---

## Stack
- MystenLabs#25657 <-
- MystenLabs#25658
- MystenLabs#25659 

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [x] GraphQL: Introduce a new union `SignatureScheme` for
`UserSignature`
- [ ] CLI: 
- [ ] Rust SDK:
- [ ] Indexing Framework:
jessiemongeon1 pushed a commit to jessiemongeon1/sui that referenced this pull request Mar 5, 2026
…ystenLabs#25659)

## Description 

- Add `ZkLoginSignature` variant exposing `maxEpoch` and the inner
`userSignature`
- Add `PasskeySignature` variant exposing `authenticatorData`,
`clientDataJson`, and the inner `userSignature`

## Test plan 

How did you test the new or updated feature?

- Unit test

---

## Stack
- MystenLabs#25657 
- MystenLabs#25658 
- MystenLabs#25659 <-

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
- [ ] Indexing Framework:
tpham-mysten added a commit that referenced this pull request Mar 6, 2026
#25696)

## Description 

- Add `inputs`, `publicIdentifier`, and `jwkId` fields to
`ZkLoginSignature` to match the gRPC interface

## Test plan 

How did you test the new or updated feature?
`cargo check -p sui-indexer-alt-graphql`

---

## Stack
- #25657 
- #25658 
- #25659
- #25696 <-

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
- [ ] Indexing Framework:
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