Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/auth-services/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"@elysiajs/cors": "^1.2.0",
"@elysiajs/static": "^1.3.0",
"@elysiajs/swagger": "^1.2.0",
"@lit-protocol/contracts": "^0.4.0",
"@lit-protocol/contracts": "^0.5.0",
"@simplewebauthn/server": "6.2.1",
"@simplewebauthn/typescript-types": "^8.3.4",
"@t3-oss/env-core": "^0.12.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import { ElysiaInstance } from '../../types/ElysiaInstance.type';
import { addJob } from '../../../../queue-manager/src/bullmqSetup';
import { resp } from '../../response-helpers/response-helpers';
import { mintPkpDoc } from '../../../../queue-manager/src/handlers/pkpMint/pkpMint.doc';
import { AuthServiceMintRequestRaw } from '../../schemas/AuthServiceMintRequestSchema';
import { MintPKPRequest } from '@lit-protocol/schemas';

export const mint = (app: ElysiaInstance) => {
app.post(
'/mint',
async ({ body }: { body: AuthServiceMintRequestRaw }) => {
async ({ body }: { body: MintPKPRequest }) => {
try {
const job = await addJob('pkpMint', { requestBody: body });
return resp.QUEUED(job.id, 'PKP minting request queued successfully.');
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
import { AuthData } from '@lit-protocol/schemas';
import {
AuthData,
MintPKPRequest,
MintPKPRequestSchema,
} from '@lit-protocol/schemas';
import { Optional } from '@lit-protocol/types';
import { Hex } from 'viem';

/**
* Handles PKP minting tasks.
* @param jobData The data for the job, expected to contain `requestBody`.
* @returns The result of the PKP minting process.
*/
export async function handlePkpMintTask(jobData: {
requestBody: {
authMethodType: string;
authMethodId: Hex;
pubkey: Hex;
scopes?: ('sign-anything' | 'personal-sign' | 'no-permissions')[];
};
requestBody: MintPKPRequest;
reqId?: string;
}): Promise<any> {
// Validate and transform the request using the unified schema
// This handles the WebAuthn pubkey validation internally
const validatedRequest = await MintPKPRequestSchema.parseAsync(
jobData.requestBody
);

const userAuthData: Optional<AuthData, 'accessToken'> = {
authMethodId: jobData.requestBody.authMethodId,
authMethodType: Number(jobData.requestBody.authMethodType),
publicKey: jobData.requestBody.pubkey,
authMethodId: validatedRequest.authMethodId,
authMethodType: validatedRequest.authMethodType,
publicKey: validatedRequest.pubkey,
};

const result = await globalThis.systemContext.litClient.mintWithAuth({
account: globalThis.systemContext.account,
authData: userAuthData,
scopes: jobData.requestBody.scopes || [],
scopes: validatedRequest.scopes,
});

console.log(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@ import {
} from '@lit-protocol/constants';
import { AuthMethod, AuthServerTx, Hex } from '@lit-protocol/types';

import { AuthData, PKPData } from '@lit-protocol/schemas';
import { AuthData, PKPData, ScopeStringSchema } from '@lit-protocol/schemas';
import { getRPIdFromOrigin, parseAuthenticatorData } from '../helper/utils';

import { EthBlockhashInfo } from '@lit-protocol/types';
import { pollResponse } from '../helper/pollResponse';
import { JobStatusResponse } from '../types';
import { z } from 'zod';

const fetchBlockchainData = async () => {
try {
Expand Down Expand Up @@ -149,6 +150,7 @@ export class WebAuthnAuthenticator {
public static async registerAndMintPKP(params: {
username?: string;
authServiceBaseUrl: string;
scopes?: z.infer<typeof ScopeStringSchema>[];
}): Promise<{
pkpInfo: PKPData;

Expand Down Expand Up @@ -183,6 +185,7 @@ export class WebAuthnAuthenticator {
authMethodType: AUTH_METHOD_TYPE.WebAuthn,
authMethodId: authMethodId,
pubkey: authMethodPubkey,
scopes: params.scopes,
};

// Immediate mint a new PKP to associate with the auth method
Expand Down
3 changes: 2 additions & 1 deletion packages/lit-client/src/lib/LitClient/createLitClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,8 @@ export const _createNagaLitClient = async (
return await networkModule.api.signCustomSessionKey.handleResponse(
result as any,
params.requestBody.pkpPublicKey,
jitContext
jitContext,
requestId
);
}

Expand Down
2 changes: 1 addition & 1 deletion packages/networks/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"directory": "../../dist/packages/networks"
},
"dependencies": {
"@lit-protocol/contracts": "^0.4.0",
"@lit-protocol/contracts": "^0.5.0",
"@lit-protocol/nacl": "7.1.1",
"@noble/curves": "^1.8.1",
"@wagmi/core": "^2.17.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
HexPrefixedSchema,
JsonSignCustomSessionKeyRequestForPkpReturnSchema,
JsonSignSessionKeyRequestForPkpReturnSchema,
ScopeStringSchema,
} from '@lit-protocol/schemas';
import { Hex, hexToBytes, stringToBytes } from 'viem';
import { z } from 'zod';
Expand Down Expand Up @@ -376,7 +377,7 @@ export function createBaseModule<T, M>(config: BaseModuleConfig<T, M>) {
mintWithAuth: async (params: {
account: ExpectedAccountOrWalletClient;
authData: Optional<AuthData, 'accessToken'>;
scopes: ('sign-anything' | 'personal-sign' | 'no-permissions')[];
scopes: z.infer<typeof ScopeStringSchema>[];
}): Promise<GenericTxRes<LitTxRes<PKPData>, PKPData>> => {
const chainManager = createChainManager(params.account);
const res = await chainManager.api.mintPKP({
Expand Down Expand Up @@ -898,7 +899,8 @@ export function createBaseModule<T, M>(config: BaseModuleConfig<T, M>) {
handleResponse: async (
result: z.infer<typeof GenericEncryptedPayloadSchema>,
pkpPublicKey: Hex | string,
jitContext: NagaJitContext
jitContext: NagaJitContext,
requestId?: string
) => {
if (!result.success) {
E2EERequestManager.handleEncryptedError(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ import type { PKPStorageProvider } from '../../../../../../../../storage/types';
import { logger } from '../../../../../../../shared/logger';
import { DefaultNetworkConfig } from '../../../../../../shared/interfaces/NetworkContext';
import { ExpectedAccountOrWalletClient } from '../../../../contract-manager/createContractsManager';
import { ScopeString } from '../../../schemas/shared/ScopeSchema';
import { ScopeString } from '@lit-protocol/schemas';
import { AuthMethod } from '../../rawContractApis/permissions/read/getPermittedAuthMethods';
import { LitTxVoid } from '../../types';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext';
import { isIpfsCidV0 } from '../../../../../../../../shared/utils/z-validate';
import { z } from 'zod';
import { ScopeStringSchema } from '../../../../schemas/shared/ScopeSchema';
import { ScopeStringSchema } from '@lit-protocol/schemas';
import {
PkpIdentifierRaw,
resolvePkpTokenId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { z } from 'zod';
import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext';
import { ScopeStringSchema } from '../../../../schemas/shared/ScopeSchema';
import { ScopeStringSchema } from '@lit-protocol/schemas';
import {
PkpIdentifierRaw,
resolvePkpTokenId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { z } from 'zod';
import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext';
import { ScopeStringSchema } from '../../../../schemas/shared/ScopeSchema';
import { ScopeStringSchema } from '@lit-protocol/schemas';
import {
PkpIdentifierRaw,
resolvePkpTokenId,
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ExpectedAccountOrWalletClient } from '../../../../contract-manager/crea
import { PKPData } from '../../../schemas/shared/PKPDataSchema';
import { mintNextAndAddAuthMethods } from '../../rawContractApis/pkp/write/mintNextAndAddAuthMethods';
import { LitTxRes } from '../../types';
import { MintPKPRequest, MintPKPSchema } from './MintPKPSchema';
import { MintPKPRequest, MintPKPRequestSchema } from '@lit-protocol/schemas';

/**
* authMethod
Expand Down Expand Up @@ -36,7 +36,7 @@ export const mintPKP = async (
networkConfig: DefaultNetworkConfig,
accountOrWalletClient: ExpectedAccountOrWalletClient
): Promise<LitTxRes<PKPData>> => {
const validatedRequest = await MintPKPSchema.parseAsync(request);
const validatedRequest = await MintPKPRequestSchema.parseAsync(request);

logger.debug({ validatedRequest });

Expand All @@ -45,6 +45,7 @@ export const mintPKP = async (
const tx = await mintNextAndAddAuthMethods(
{
keyType: 2,
keySetId: 'naga-keyset1',
permittedAuthMethodTypes: [validatedRequest.authMethodType],
permittedAuthMethodIds: [validatedRequest.authMethodId],
permittedAuthMethodPubkeys: [validatedRequest.pubkey],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { logger } from '../../../../../../../shared/logger';
import { DefaultNetworkConfig } from '../../../../../../shared/interfaces/NetworkContext';
import { ExpectedAccountOrWalletClient } from '../../../../contract-manager/createContractsManager';
import { PKPData } from '../../../schemas/shared/PKPDataSchema';
import { ScopeSchemaRaw } from '../../../schemas/shared/ScopeSchema';
import { ScopeSchemaRaw } from '@lit-protocol/schemas';
import { mintNextAndAddAuthMethods } from '../../rawContractApis/pkp/write/mintNextAndAddAuthMethods';
import { LitTxRes } from '../../types';

Expand Down Expand Up @@ -115,6 +115,7 @@ export const mintWithMultiAuths = async (
const tx = await mintNextAndAddAuthMethods(
{
keyType: 2,
keySetId: 'naga-keyset1',
permittedAuthMethodTypes: validatedRequest.authMethodTypes,
permittedAuthMethodIds: validatedRequest.authMethodIds,
permittedAuthMethodPubkeys: validatedRequest.pubkeys,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { ipfsCidV0ToHex } from '../../../../../../../../shared/utils/transformer
import { toBigInt } from '../../../../../../../../shared/utils/z-transformers';
import { isIpfsCidV0 } from '../../../../../../../../shared/utils/z-validate';
import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext';
import { ScopeSchemaRaw } from '../../../../schemas/shared/ScopeSchema';
import { ScopeSchemaRaw } from '@lit-protocol/schemas';
import { LitTxVoid } from '../../../types';
import { callWithAdjustedOverrides } from '../../../utils/callWithAdjustedOverrides';
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
createContractsManager,
ExpectedAccountOrWalletClient,
} from '../../../../../contract-manager/createContractsManager';
import { ScopeSchemaRaw } from '../../../../schemas/shared/ScopeSchema';
import { ScopeSchemaRaw } from '@lit-protocol/schemas';
import { LitTxVoid } from '../../../types';
import { callWithAdjustedOverrides } from '../../../utils/callWithAdjustedOverrides';
import { decodeLogs } from '../../../utils/decodeLogs';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
createContractsManager,
ExpectedAccountOrWalletClient,
} from '../../../../../contract-manager/createContractsManager';
import { ScopeSchemaRaw } from '../../../../schemas/shared/ScopeSchema';
import { ScopeSchemaRaw } from '@lit-protocol/schemas';
import { LitTxVoid } from '../../../types';
import { callWithAdjustedOverrides } from '../../../utils/callWithAdjustedOverrides';
import { decodeLogs } from '../../../utils/decodeLogs';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export async function mintNext(
const hash = await callWithAdjustedOverrides(
pkpNftContract,
'mintNext',
[2],
[2,'naga-keyset1'],
{
value: mintCost,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ export async function mintNextAndAddAuthMethods(
'mintNextAndAddAuthMethods',
[
validatedRequest.keyType,
validatedRequest.keySetId,
validatedRequest.permittedAuthMethodTypes,
validatedRequest.permittedAuthMethodIds,
validatedRequest.permittedAuthMethodPubkeys,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {

export const MintRequestSchema = z.object({
keyType: toBigInt,
keySetId: z.literal('naga-keyset1'),
permittedAuthMethodTypes: toBigIntArray,
permittedAuthMethodIds: toHexStringArray,
permittedAuthMethodPubkeys: toHexStringArray,
Expand Down
1 change: 1 addition & 0 deletions packages/schemas/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { z } from 'zod';
import { LitResourceAbilityRequestSchema } from './lib/models';
import { AuthSigSchema } from './lib/schemas';
export * from './lib/auth/auth-schemas';
export * from './lib/auth/ScopeSchema';
export * from './lib/encryption';
export * from './lib/models';
export * from './lib/schemas';
Expand Down
Loading
Loading