feat: Celo AA app
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..5ff9d1f
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "xml.downloadExternalResources.enabled": true
+}
diff --git a/package.json b/package.json
index 6a8e927..6ba28fe 100644
--- a/package.json
+++ b/package.json
@@ -11,8 +11,8 @@
"deploy": "next build && next export && npx thirdweb@latest upload out"
},
"dependencies": {
- "@thirdweb-dev/react": "^3",
- "@thirdweb-dev/sdk": "^3",
+ "@thirdweb-dev/react": "^3.14.3",
+ "@thirdweb-dev/sdk": "^3.10.25",
"ethers": "^5",
"next": "^13",
"react": "^18.2",
@@ -25,4 +25,4 @@
"eslint-config-next": "^13",
"typescript": "^4.9.4"
}
-}
+}
diff --git a/pages/_app.tsx b/pages/_app.tsx
index 7d65f13..6e2e76c 100644
--- a/pages/_app.tsx
+++ b/pages/_app.tsx
@@ -1,33 +1,36 @@
import type { AppProps } from "next/app";
import { ThirdwebProvider, smartWallet } from "@thirdweb-dev/react";
import "../styles/globals.css";
+import { CeloAlfajoresTestnet } from "@thirdweb-dev/chains";
// Mumbai is where our wallet factory and NFT collection are deployed
-const activeChain = "mumbai";
+const activeChain = "celo-alfajores-testnet";
function MyApp({ Component, pageProps }: AppProps) {
- return (
- <ThirdwebProvider
- activeChain={activeChain}
- // Define that we only want to support Account Abstraction wallets aka Smart Wallets
- supportedWallets={[
- smartWallet({
- // View my Factory Contract: https://thirdweb.com/mumbai/0x69608a6fE2e1Ce34eAcC4688502b2a2A1209EE2c
- // Deploy your own Factory: https://thirdweb.com/thirdweb.eth/AccountFactory
- factoryAddress: "0x69608a6fE2e1Ce34eAcC4688502b2a2A1209EE2c",
+ return (
+ <ThirdwebProvider
+ activeChain={activeChain}
+ supportedChains={[CeloAlfajoresTestnet]}
+ // Define that we only want to support Account Abstraction wallets aka Smart Wallets
+ supportedWallets={[
+ smartWallet({
+ // View my Factory Contract: https://thirdweb.com/mumbai/0x69608a6fE2e1Ce34eAcC4688502b2a2A1209EE2c
+ // Deploy your own Factory: https://thirdweb.com/thirdweb.eth/AccountFactory
+ factoryAddress:
+ "0x7FDaA334E6A515dF22583c5dfe78B302a3dfE3F8",
- // Gasless mode on: means the smart wallet does not need to be funded with any ETH / MATIC.
- gasless: true,
+ // Gasless mode on: means the smart wallet does not need to be funded with any ETH / MATIC.
+ gasless: true,
- // API Key from the thirdweb dashboard. (You'll want to keep yours a secret)
- thirdwebApiKey:
- "e8472076e04067de52bd9b2251296f60d1da22f07e4c60c6cf8bbcfb3590aa474d045c0c62aeb2f7372b497f30def195f2152625a3603760352461dcbd0e0ed3",
- }),
- ]}
- >
- <Component {...pageProps} />
- </ThirdwebProvider>
- );
+ // API Key from the thirdweb dashboard. (You'll want to keep yours a secret)
+ thirdwebApiKey:
+ "062d6f2ff548b8df07d2cc215d60df0d6ab17e19b6250c6f5d3fa53706b6888e41f34b51f9d7f73f956137b4ebaf4bff095aea43969eda40fb7ad713772e8242",
+ }),
+ ]}
+ >
+ <Component {...pageProps} />
+ </ThirdwebProvider>
+ );
}
export default MyApp;
diff --git a/pages/index.tsx b/pages/index.tsx
index 92d996c..aaa041e 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -10,28 +10,30 @@ import type { NextPage } from "next";
* This triggers the UserOperation to be sent to the alt mempool, kicking off the EIP-4337 flow.
*/
const Home: NextPage = () => {
- return (
- <div className={styles.container}>
- <h1 className={styles.title}>Account Abstraction</h1>
- <p className={styles.desc}>Mint an NFT from a smart contract wallet</p>
+ return (
+ <div className={styles.container}>
+ <h1 className={styles.title}>Account Abstraction</h1>
+ <p className={styles.desc}>
+ Mint an NFT from a smart contract wallet
+ </p>
- {/* This button acts as a connect wallet button if one is not already connected. */}
- <Web3Button
- contractAddress="0x91B3Af7afd6B169121Dcce83d4d8377fD6E76285"
- action={(contract) =>
- // Call the "mintTo" function with the following metadata.
- // Metadata is uploaded to IPFS and pinned before the transaction is sent.
- contract.erc721.mint({
- name: "NFT on my AA",
- description: "This is an NFT on my AA",
- image: "ipfs://Qmcny3J5yGpWjJsvR92DQAZcHYWLDep6GdgdKJTRxU1qyo",
- })
- }
- >
- Mint An NFT
- </Web3Button>
- </div>
- );
+ {/* This button acts as a connect wallet button if one is not already connected. */}
+ <Web3Button
+ contractAddress="0xf443938B2D1fecEE94239Da4D17871797CD58e16"
+ action={(contract) =>
+ // Call the "mintTo" function with the following metadata.
+ // Metadata is uploaded to IPFS and pinned before the transaction is sent.
+ contract.erc721.mint({
+ name: "NFT on my AA",
+ description: "This is an NFT on my AA",
+ image: "ipfs://Qmcny3J5yGpWjJsvR92DQAZcHYWLDep6GdgdKJTRxU1qyo",
+ })
+ }
+ >
+ Mint An NFT
+ </Web3Button>
+ </div>
+ );
};
export default Home;
diff --git a/public/favicon.ico b/public/favicon.ico
index 81240f9..52c5ead 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/public/logo.svg b/public/logo.svg
new file mode 100755
index 0000000..06bf915
--- /dev/null
+++ b/public/logo.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Wordmark" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 968 219" style="enable-background:new 0 0 968 219;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill-rule:evenodd;clip-rule:evenodd;}
+</style>
+<g>
+ <path d="M858.1,189.8c44.4,0,80-35.9,80-80.3c0-44.4-35.6-80-80-80c-44.4,0-80,35.9-80,80C778.2,153.5,814.1,189.8,858.1,189.8z
+ M749.1,0.4h218.4v218.4H749.1V0.4z"/>
+ <path class="st0" d="M430.3,142.6c-12.8,27.8-40.6,47.2-73.1,47.2c-43.1,0-78.4-34.4-80-77.2h189.3V0.4H248.2v218.4h218.4v-76.2
+ H430.3z M280.7,85.7h152.5c-11.2-37.2-41.2-56.2-75.9-56.2S290.3,49.8,280.7,85.7L280.7,85.7z"/>
+ <path d="M218.8,0.4H0.4v218.4h218.4v-76.2h-36.2c-12.5,27.8-40.6,47.2-72.8,47.2c-44.4,0-80.3-36.2-80.3-80.3
+ c0-44.1,35.9-80,80.3-80c32.8,0,60.9,20,73.4,48.4h35.6V0.4z"/>
+ <path d="M721.8,142.6h-36.2v0c-10.9,28.7-40.3,46.9-73.7,46.9c-43.1,0-79.4-31.2-79.4-80V0.4h-36.9v218.4h226.2V142.6z"/>
+</g>
+</svg>
diff --git a/public/thirdweb.svg b/public/thirdweb.svg
deleted file mode 100644
index 86f54ec..0000000
--- a/public/thirdweb.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<svg width="1126" height="700" viewBox="0 0 1126 700" fill="none" xmlns="http://www.w3.org/2000/svg">
[... diff too long, it was truncated ...]
GitHub
sha: 300a640091e566ef97195aa7ccca561da016c35c