Ask SPONSOR_SIGNER

This commit is contained in:
Shreyaschorge 2025-07-07 21:47:40 +05:30
parent bed12bd303
commit 1d736d823e
No known key found for this signature in database
3 changed files with 72 additions and 2 deletions

View File

@ -221,6 +221,8 @@ export async function init(projectName = null, autoAcceptDefaults = false) {
useWallet: true, useWallet: true,
useTunnel: true, useTunnel: true,
enableAnalytics: true, enableAnalytics: true,
seedPhrase: null,
sponsorSigner: false,
}; };
} else { } else {
// If autoAcceptDefaults is false but we have a projectName, we still need to ask for other options // If autoAcceptDefaults is false but we have a projectName, we still need to ask for other options
@ -347,6 +349,34 @@ export async function init(projectName = null, autoAcceptDefaults = false) {
}, },
]); ]);
answers.enableAnalytics = analyticsAnswer.enableAnalytics; answers.enableAnalytics = analyticsAnswer.enableAnalytics;
// Ask about SEED_PHRASE
const seedPhraseAnswer = await inquirer.prompt([
{
type: 'password',
name: 'seedPhrase',
message:
'⚠️ If SEED_PHRASE is not provided, you will not be able to use Sign In With Neynar.\n\n' +
'Enter your SEED_PHRASE (or press enter to skip):',
default: null,
},
]);
answers.seedPhrase = seedPhraseAnswer.seedPhrase;
// Ask about sponsor signer if SEED_PHRASE is provided
if (answers.seedPhrase) {
const sponsorSignerAnswer = await inquirer.prompt([
{
type: 'confirm',
name: 'sponsorSigner',
message:
'Do you want to sponsor the signer? (This will be used in Sign In With Neynar)\n' +
'Note: If you choose to sponsor the signer, Neynar will sponsor it for you and you will be charged in CUs.',
default: false,
},
]);
answers.sponsorSigner = sponsorSignerAnswer.sponsorSigner;
}
} }
const finalProjectName = answers.projectName; const finalProjectName = answers.projectName;
@ -598,6 +628,10 @@ export async function init(projectName = null, autoAcceptDefaults = false) {
'\n⚠ Could not find a Neynar client ID and/or API key. Please configure Neynar manually in .env.local with NEYNAR_API_KEY and NEYNAR_CLIENT_ID' '\n⚠ Could not find a Neynar client ID and/or API key. Please configure Neynar manually in .env.local with NEYNAR_API_KEY and NEYNAR_CLIENT_ID'
); );
} }
if (answers.seedPhrase) {
fs.appendFileSync(envPath, `\nSEED_PHRASE="${answers.seedPhrase}"`);
fs.appendFileSync(envPath, `\nSPONSOR_SIGNER="${answers.sponsorSigner}"`);
}
fs.appendFileSync(envPath, `\nUSE_TUNNEL="${answers.useTunnel}"`); fs.appendFileSync(envPath, `\nUSE_TUNNEL="${answers.useTunnel}"`);
fs.unlinkSync(envExamplePath); fs.unlinkSync(envExamplePath);

View File

@ -65,7 +65,7 @@ async function loadEnvLocal() {
let newEnvContent = envContent; let newEnvContent = envContent;
for (const [key, value] of Object.entries(localEnv)) { for (const [key, value] of Object.entries(localEnv)) {
if (key !== 'SEED_PHRASE') { if (key !== 'SEED_PHRASE' && key !== 'SPONSOR_SIGNER') {
// Update process.env // Update process.env
process.env[key] = value; process.env[key] = value;
// Add to .env content if not already there // Add to .env content if not already there
@ -87,6 +87,9 @@ async function loadEnvLocal() {
if (localEnv.SEED_PHRASE) { if (localEnv.SEED_PHRASE) {
process.env.SEED_PHRASE = localEnv.SEED_PHRASE; process.env.SEED_PHRASE = localEnv.SEED_PHRASE;
} }
if (localEnv.SPONSOR_SIGNER) {
process.env.SPONSOR_SIGNER = localEnv.SPONSOR_SIGNER;
}
} }
} catch (error) { } catch (error) {
// Error reading .env.local, which is fine // Error reading .env.local, which is fine
@ -370,6 +373,8 @@ async function main() {
[`NEYNAR_API_KEY="${process.env.NEYNAR_API_KEY}"`] : []), [`NEYNAR_API_KEY="${process.env.NEYNAR_API_KEY}"`] : []),
...(neynarClientId ? ...(neynarClientId ?
[`NEYNAR_CLIENT_ID="${neynarClientId}"`] : []), [`NEYNAR_CLIENT_ID="${neynarClientId}"`] : []),
...(process.env.SPONSOR_SIGNER ?
[`SPONSOR_SIGNER="${process.env.SPONSOR_SIGNER}"`] : []),
// FID (if it exists in current env) // FID (if it exists in current env)
...(process.env.FID ? [`FID="${process.env.FID}"`] : []), ...(process.env.FID ? [`FID="${process.env.FID}"`] : []),

View File

@ -115,6 +115,7 @@ async function loadEnvLocal() {
const allowedVars = [ const allowedVars = [
'SEED_PHRASE', 'SEED_PHRASE',
'SPONSOR_SIGNER',
'NEXT_PUBLIC_MINI_APP_NAME', 'NEXT_PUBLIC_MINI_APP_NAME',
'NEXT_PUBLIC_MINI_APP_DESCRIPTION', 'NEXT_PUBLIC_MINI_APP_DESCRIPTION',
'NEXT_PUBLIC_MINI_APP_PRIMARY_CATEGORY', 'NEXT_PUBLIC_MINI_APP_PRIMARY_CATEGORY',
@ -131,7 +132,7 @@ async function loadEnvLocal() {
for (const [key, value] of Object.entries(localEnv)) { for (const [key, value] of Object.entries(localEnv)) {
if (allowedVars.includes(key)) { if (allowedVars.includes(key)) {
process.env[key] = value; process.env[key] = value;
if (key !== 'SEED_PHRASE' && !envContent.includes(`${key}=`)) { if (key !== 'SEED_PHRASE' && key !== 'SPONSOR_SIGNER' && !envContent.includes(`${key}=`)) {
newEnvContent += `${key}="${value}"\n`; newEnvContent += `${key}="${value}"\n`;
} }
} }
@ -224,6 +225,35 @@ async function checkRequiredEnvVars() {
} else { } else {
console.log(' Seed phrase will only be used for this deployment'); console.log(' Seed phrase will only be used for this deployment');
} }
// Ask about sponsor signer if SEED_PHRASE is provided
if (!process.env.SPONSOR_SIGNER) {
const { sponsorSigner } = await inquirer.prompt([
{
type: 'confirm',
name: 'sponsorSigner',
message:
'Do you want to sponsor the signer? (This will be used in Sign In With Neynar)\n' +
'Note: If you choose to sponsor the signer, Neynar will sponsor it for you and you will be charged in CUs.',
default: false,
},
]);
process.env.SPONSOR_SIGNER = sponsorSigner.toString();
if (storeSeedPhrase) {
fs.appendFileSync('.env.local', `\nSPONSOR_SIGNER="${sponsorSigner}"`);
console.log('✅ Sponsor signer preference stored in .env.local');
}
}
}
}
// Load SPONSOR_SIGNER from .env.local if SEED_PHRASE exists but SPONSOR_SIGNER doesn't
if (process.env.SEED_PHRASE && !process.env.SPONSOR_SIGNER && fs.existsSync('.env.local')) {
const localEnv = dotenv.parse(fs.readFileSync('.env.local'));
if (localEnv.SPONSOR_SIGNER) {
process.env.SPONSOR_SIGNER = localEnv.SPONSOR_SIGNER;
} }
} }
} }
@ -585,6 +615,7 @@ async function deployToVercel(useGitHub = false) {
...(process.env.NEYNAR_API_KEY && { NEYNAR_API_KEY: process.env.NEYNAR_API_KEY }), ...(process.env.NEYNAR_API_KEY && { NEYNAR_API_KEY: process.env.NEYNAR_API_KEY }),
...(process.env.NEYNAR_CLIENT_ID && { NEYNAR_CLIENT_ID: process.env.NEYNAR_CLIENT_ID }), ...(process.env.NEYNAR_CLIENT_ID && { NEYNAR_CLIENT_ID: process.env.NEYNAR_CLIENT_ID }),
...(process.env.SPONSOR_SIGNER && { SPONSOR_SIGNER: process.env.SPONSOR_SIGNER }),
...(miniAppMetadata && { MINI_APP_METADATA: miniAppMetadata }), ...(miniAppMetadata && { MINI_APP_METADATA: miniAppMetadata }),
...Object.fromEntries( ...Object.fromEntries(