From 2efc7ae219a0c83b023c7c566bfbbf4f1a26203f Mon Sep 17 00:00:00 2001 From: exlier Date: Tue, 9 Jun 2026 10:00:02 +0000 Subject: [PATCH] fix: address all 50 security, Web3, and UX bugs --- .env.example | 17 +- .gitignore | 16 +- CryptoPixels-fixed.tar.gz | Bin 0 -> 12510 bytes index.html | 44 ++- src/app.js | 693 +++++++++++++++++++++++--------------- src/config.js | 71 +++- src/styles.css | 72 +++- 7 files changed, 596 insertions(+), 317 deletions(-) create mode 100644 CryptoPixels-fixed.tar.gz diff --git a/.env.example b/.env.example index a45cfad..4d16953 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,9 @@ -SUPABASE_URL=https://your-project-ref.supabase.co -SUPABASE_SERVICE_KEY=your-service-role-key -SUPABASE_ANON_KEY=your-anon-key -PAYMENT_RECEIVER=0xYourChecksumEthAddress -PRICE_PER_PIXEL_ETH=0.0001 -RESERVATION_TTL_MINUTES=15 -BASE_RPC_URL=https://mainnet.base.org -PORT=3000 +# Copy this file to .env and fill in your values. +# NEVER commit .env to source control. + +# Supabase project credentials (Settings > API in your Supabase dashboard) +VITE_SUPABASE_URL=https://YOUR_PROJECT_ID.supabase.co +VITE_SUPABASE_ANON_KEY=eyJ... + +# Ethereum wallet address that receives ETH payments (must be checksummed EIP-55) +VITE_PAYMENT_RECEIVER=0xYourWalletAddressHere diff --git a/.gitignore b/.gitignore index 8a890d5..65adb1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,12 @@ +# Secrets β€” never commit these .env -*.env .env.local .env.*.local -*.bak -*.old -*.orig -*.tmp -*~ -*.swp + +# Build output +dist/ +node_modules/ + +# OS +.DS_Store +Thumbs.db diff --git a/CryptoPixels-fixed.tar.gz b/CryptoPixels-fixed.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c84609307c345122a722c5cf2685922bf491decc GIT binary patch literal 12510 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 1f19992..45c774e 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,14 @@ Crypto Million Dollar Homepage - - + + @@ -15,7 +21,7 @@

Crypto Million Dollar Homepage

-

πŸ›‘οΈ Why Trust Us & How to Buy

+

πŸ›‘οΈ Why Trust Us & How to Buy

Trust

@@ -33,24 +39,42 @@

How to Buy

- + + + + +
-