Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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,28 @@
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> {
const userAuthData: Optional<AuthData, 'accessToken'> = {
authMethodId: jobData.requestBody.authMethodId,
authMethodType: Number(jobData.requestBody.authMethodType),
publicKey: jobData.requestBody.pubkey,
};

const result = await globalThis.systemContext.litClient.mintWithAuth({
account: globalThis.systemContext.account,
authData: userAuthData,
scopes: jobData.requestBody.scopes || [],
authData: {
authMethodId: jobData.requestBody.authMethodId,
authMethodType: jobData.requestBody.authMethodType,
publicKey: jobData.requestBody.pubkey,
},
scopes: jobData.requestBody.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
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AuthData } from '@lit-protocol/schemas';
import { AuthData, CustomAuthDataSchema } from '@lit-protocol/schemas';
import { Optional } from '@lit-protocol/types';
import { z } from 'zod';

Expand All @@ -9,7 +9,7 @@ const BaseMintWithCustomAuthSchema = z.object({
// Account information - this will be passed from the calling context
account: z.any(), // Account type varies by network
// Authentication data for the user
authData: z.custom<Optional<AuthData, 'accessToken'>>(),
authData: CustomAuthDataSchema,
scope: z.enum(['no-permissions', 'sign-anything', 'personal-sign']),
// Optional overrides
addPkpEthAddressAsPermittedAddress: z.boolean().default(false),
Expand Down
9 changes: 6 additions & 3 deletions packages/lit-client/src/lib/LitClient/utils.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { CustomAuthData, CustomAuthDataSchema } from '@lit-protocol/schemas';
import { hexToBigInt, keccak256, toBytes } from 'viem';

export const utils = {
Expand Down Expand Up @@ -56,12 +57,14 @@ export const utils = {
uniqueDappName: string;
uniqueAuthMethodType: bigint;
userId: string;
}) => {
}): CustomAuthData => {
const uniqueUserId = `${uniqueDappName}-${userId}`;

return {
const customAuthData = CustomAuthDataSchema.parse({
authMethodType: uniqueAuthMethodType,
authMethodId: keccak256(toBytes(uniqueUserId)),
};
});

return customAuthData;
},
};
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 @@ -2,12 +2,14 @@ import { DEV_PRIVATE_KEY, version } from '@lit-protocol/constants';
import { verifyAndDecryptWithSignatureShares } from '@lit-protocol/crypto';
import {
AuthData,
AuthDataInput,
EncryptedVersion1Schema,
GenericEncryptedPayloadSchema,
GenericResultBuilder,
HexPrefixedSchema,
JsonSignCustomSessionKeyRequestForPkpReturnSchema,
JsonSignSessionKeyRequestForPkpReturnSchema,
ScopeStringSchema,
} from '@lit-protocol/schemas';
import { Hex, hexToBytes, stringToBytes } from 'viem';
import { z } from 'zod';
Expand Down Expand Up @@ -375,8 +377,8 @@ 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')[];
authData: Optional<AuthDataInput, 'accessToken'>;
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 +900,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
Loading
Loading