From 4cb79dc272fb3c9341f297dd51846c0149a8d4c7 Mon Sep 17 00:00:00 2001 From: Howard Tam Date: Wed, 23 Oct 2024 23:18:18 -0700 Subject: [PATCH] Add localchain support --- config/index.ts | 11 +++++++++++ lit.ts | 32 +++++++++++++++++++++++++++++++- models/index.ts | 1 + 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/config/index.ts b/config/index.ts index 78dc71f..f179a2c 100644 --- a/config/index.ts +++ b/config/index.ts @@ -14,6 +14,10 @@ const { CAYENNE_PKP_NFT_ADDRESS, CAYENNE_PKP_HELPER_ADDRESS, CAYENNE_PKP_PERMISSIONS_ADDRESS, + LOCALCHAIN_ACCESS_CONTROL_CONDITIONS_ADDRESS, + LOCALCHAIN_PKP_HELPER_ADDRESS, + LOCALCHAIN_PKP_NFT_ADDRESS, + LOCALCHAIN_PKP_PERMISSIONS_ADDRESS, NETWORK, USE_SOLO_NET, EXPECTED_ORIGINS, @@ -51,6 +55,13 @@ const baseConfig = { CAYENNE_PKP_PERMISSIONS_ADDRESS || "0x9a0a6DD9D229eEfa5119cEB237c90D843d5e1003", }, + localChainContracts: { + accessControlConditionsAddress: + LOCALCHAIN_ACCESS_CONTROL_CONDITIONS_ADDRESS || "", + pkpHelperAddress: LOCALCHAIN_PKP_HELPER_ADDRESS || "", + pkpNftAddress: LOCALCHAIN_PKP_NFT_ADDRESS || "", + pkpPermissionsAddress: LOCALCHAIN_PKP_PERMISSIONS_ADDRESS || "", + }, network: NETWORK || "cayenne", useSoloNet: USE_SOLO_NET === "true", expectedOrigins: EXPECTED_ORIGINS?.split(",") || ["http://localhost:3000"], diff --git a/lit.ts b/lit.ts index 7c193ed..b62b442 100644 --- a/lit.ts +++ b/lit.ts @@ -147,6 +147,8 @@ function getPkpHelperContractAbiPath() { return "./contracts/serrano/PKPHelper.json"; case "cayenne": return "./contracts/cayenne/PKPHelper.json"; + case "localchain": + return "./contracts/localchain/PKPHelper.json"; } } @@ -159,6 +161,8 @@ function getPkpNftContractAbiPath() { return "./contracts/serrano/PKPNFT.json"; case "cayenne": return "./contracts/cayenne/PKPNFT.json"; + case "localchain": + return "./contracts/localchain/PKPNFT.json"; } } @@ -178,6 +182,12 @@ async function getPkpHelperContract(network: string) { config?.cayenneContracts?.pkpHelperAddress as string, ); break; + case "localchain": + contract = getContract( + getPkpHelperContractAbiPath()!, + config?.localChainContracts?.pkpHelperAddress as string, + ); + break; case "manzano": contract = getContractFromWorker("manzano", "PKPHelper"); break; @@ -220,6 +230,12 @@ async function getPermissionsContract() { config?.cayenneContracts?.pkpPermissionsAddress as string, ); break; + case "localchain": + contract = getContract( + "./contracts/localchain/PKPPermissions.json", + config?.localChainContracts?.pkpPermissionsAddress as string, + ); + break; case "manzano": contract = getContractFromWorker("manzano", "PKPPermissions"); break; @@ -275,6 +291,12 @@ async function getPkpNftContract(network: string) { config?.cayenneContracts?.pkpNftAddress as string, ); break; + case "localchain": + contract = getContract( + getPkpNftContractAbiPath()!, + config?.localChainContracts?.pkpNftAddress as string, + ); + break; case "manzano": contract = getContractFromWorker("manzano", "PKPNFT"); break; @@ -567,7 +589,13 @@ export async function claimPKP({ let tx = await sequencer.wait({ action: pkpHelper.claimAndMintNextAndAddAuthMethods, params: [ - [2, `0x${keyId}`, signatures], + [ + 2, + `0x${keyId}`, + signatures, + // TODO: Fix before PRing + "0xa6e99A4ED7498b3cdDCBB61a6A607a4925Faa1B7", + ], [ 2, [], @@ -578,6 +606,8 @@ export async function claimPKP({ [`0x${authMethodId}`], [authMethodPubkey], [[ethers.BigNumber.from(1)]], + true, + false, ], ], transactionData: { value: mintCost }, diff --git a/models/index.ts b/models/index.ts index c7d2d25..f2b3f7c 100644 --- a/models/index.ts +++ b/models/index.ts @@ -141,6 +141,7 @@ export interface Config { expectedOrigins: string[]; serranoContract?: Contract; cayenneContracts?: Contract; + localChainContracts?: Contract; datilDevContracts?: Contract; useSoloNet: boolean; network: LIT_NETWORK_VALUES;