From c51963b48bdf78085ed36fdbce3a6484f500e928 Mon Sep 17 00:00:00 2001 From: Avneesh Agarwal Date: Mon, 24 Jul 2023 20:53:27 +0530 Subject: [PATCH 1/2] feat: add thirdweb tutorials --- tutorials/build-dapp-thirdweb/TUTORIAL.md | 205 ++++++++++++++++++ tutorials/build-dapp-thirdweb/tutorials.json | 10 + .../build-smart-contract-thirdweb/TUTORIAL.md | 97 +++++++++ .../images/thirdweb-explore.jpg | Bin 0 -> 93208 bytes .../tutorials.json | 10 + 5 files changed, 322 insertions(+) create mode 100644 tutorials/build-dapp-thirdweb/TUTORIAL.md create mode 100644 tutorials/build-dapp-thirdweb/tutorials.json create mode 100644 tutorials/build-smart-contract-thirdweb/TUTORIAL.md create mode 100644 tutorials/build-smart-contract-thirdweb/images/thirdweb-explore.jpg create mode 100644 tutorials/build-smart-contract-thirdweb/tutorials.json diff --git a/tutorials/build-dapp-thirdweb/TUTORIAL.md b/tutorials/build-dapp-thirdweb/TUTORIAL.md new file mode 100644 index 0000000..b2db7a6 --- /dev/null +++ b/tutorials/build-dapp-thirdweb/TUTORIAL.md @@ -0,0 +1,205 @@ +# Build a dapp using thirdweb + +### Introduction + +This guide will walk you through the process of creating and deploying a dapp using thirdweb. We will be using the thirdweb CLI to create a dapp, connect it to our contract on zkSync Era, and deploy it to decentralized storage using thirdweb Deploy. + +## Build time! + +### Step 1 — Create Application + +Thirdweb offers SDKs for a range of programming languages, such as React, React Native, TypeScript, Python, Go, and Unity. + +1. In your CLI run the following command: + + ```bash + npx thirdweb create --app + ``` + +2. Input your preferences for the command line prompts: + 1. Give your project a name + 2. Choose your network: We will choose EVM for zkSync Era + 3. Choose your preferred framework: Next.js, CRA, Vite, React Native, Node.js, or Express + 4. Choose your preferred language: JavaScript or TypeScript +3. Use the React or TypeScript SDK to interact with your application’s functions. See section on “interact with your contract” + +### Step 2 — Interact With a Contract + +thirdweb provides several SDKs to allow you to interact with your contract including: [React](https://portal.thirdweb.com/react?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs), [React Native](https://portal.thirdweb.com/react-native?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs), [TypeScript](https://portal.thirdweb.com/typescript?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs), [Python](https://portal.thirdweb.com/python?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs), [Go](https://portal.thirdweb.com/go?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs), and [Unity](https://portal.thirdweb.com/unity?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs). + +This document will show you how to interact with your contract deployed to zkSync Era using React + +> View the [full React SDK reference](https://portal.thirdweb.com/react?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) in thirdweb’s documentation. + +To create a new application pre-configured with thirdweb’s SDKs run and choose your preferred configurations: + +```jsx +npx thirdweb create app --evm +``` + +or install it into your existing project by running: + +```jsx +npx thirdweb install +``` + +#### Initialize SDK On zkSync Era + +Wrap your application in the `ThirdwebProvider` component and change the `activeChain` to zkSync Era + +```jsx +import { ThirdwebProvider } from "@thirdweb-dev/react"; +import { ZksyncEra } from "@thirdweb-dev/chains"; + +const App = () => { + return ( + + + + ); +}; +``` + +#### Get Contract + +To connect to your contract, use the SDK’s [`getContract`](https://portal.thirdweb.com/typescript/sdk.thirdwebsdk.getcontract?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) method. + +```jsx +import { useContract } from "@thirdweb-dev/react"; + +function App() { + const { contract, isLoading, error } = useContract("{{contract_address}}"); +} +``` + +#### Calling Contract Functions + +- For extension based functions, use the built-in supported hooks. The following is an example using the NFTs extension to access a list of NFTs owned by an address- `useOwnedNFTs` + + ```jsx + import { useOwnedNFTs, useContract, useAddress } from "@thirdweb-dev/react"; + + // Your smart contract address + const contractAddress = "{{contract_address}}"; + + function App() { + const address = useAddress(); + const { contract } = useContract(contractAddress); + const { data, isLoading, error } = useOwnedNFTs(contract, address); + } + ``` + + Full reference: [https://portal.thirdweb.com/react/react.usenft](https://portal.thirdweb.com/react/react.usenft?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + +- Use the `useContractRead` hook to call any read functions on your contract by passing in the name of the function you want to use. + + ```jsx + import { useContractRead, useContract } from "@thirdweb-dev/react"; + + // Your smart contract address + const contractAddress = "{{contract_address}}"; + + function App() { + const { contract } = useContract(contractAddress); + const { data, isLoading, error } = useContractRead(contract, "getName"); + } + ``` + + Full reference: [https://portal.thirdweb.com/react/react.usecontractread](https://portal.thirdweb.com/react/react.usecontractread?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + +- Use the `useContractWrite` hook to call any write functions on your contract by passing in the name of the function you want to use. + + ```jsx + import { + useContractWrite, + useContract, + Web3Button, + } from "@thirdweb-dev/react"; + + // Your smart contract address + const contractAddress = "{{contract_address}}"; + + function App() { + const { contract } = useContract(contractAddress); + const { mutateAsync, isLoading, error } = useContractWrite( + contract, + "setName" + ); + + return ( + mutateAsync({ args: ["My Name"] })} + > + Send Transaction + + ); + } + ``` + + Full reference: [https://portal.thirdweb.com/react/react.usecontractwrite](https://portal.thirdweb.com/react/react.usecontractwrite?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + +#### Connect Wallet + +Create a custom connect wallet experience by declaring supported wallets passed to your provider. + +```jsx +import { + ThirdwebProvider, + metamaskWallet, + coinbaseWallet, + walletConnectV1, + walletConnect, + safeWallet, + paperWallet, +} from "@thirdweb-dev/react"; + +function MyApp() { + return ( + + + + ); +} +``` + +Add in a connect wallet button to prompt end-users to login with any of the above supported wallets. + +```jsx +import { ConnectWallet } from "@thirdweb-dev/react"; + +function App() { + return ; +} +``` + +Full reference: [https://portal.thirdweb.com/react/connecting-wallets](https://portal.thirdweb.com/react/connecting-wallets?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + +### Step 3 — Deploy Application + +To host your static web application on decentralized storage, run: + +```jsx +npx thirdweb deploy --app +``` + +By running this command, your application is built for production and stored using Storage. The built application is uploaded to IPFS, a decentralized storage network, and a unique URL is generated for your application. + +This URL serves as a permanent hosting location for your application on the web. + +If you have any further questions or encounter any issues during the process, please [reach out to thirdweb support.](https://support.thirdweb.com?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) diff --git a/tutorials/build-dapp-thirdweb/tutorials.json b/tutorials/build-dapp-thirdweb/tutorials.json new file mode 100644 index 0000000..773e49a --- /dev/null +++ b/tutorials/build-dapp-thirdweb/tutorials.json @@ -0,0 +1,10 @@ +[ + { + "title": "Build a dapp using thirdweb", + "description": "This guide will walk you through the process of creating and deploying a dapp using thirdweb. We will be using the thirdweb CLI to create a dapp, connect it to our contract on zkSync Era, and deploy it to decentralized storage using thirdweb Deploy.", + "tags": ["dapp", "devtools"], + "level": "beginner", + "author": "thirdweb", + "slug": "build-dapp-thirdweb" + } +] diff --git a/tutorials/build-smart-contract-thirdweb/TUTORIAL.md b/tutorials/build-smart-contract-thirdweb/TUTORIAL.md new file mode 100644 index 0000000..0a0c772 --- /dev/null +++ b/tutorials/build-smart-contract-thirdweb/TUTORIAL.md @@ -0,0 +1,97 @@ +# Build a smart contract using thirdweb + +### Introduction + +This guide will walk you through the process of creating and deploying a smart contract using thirdweb. We will be using the thirdweb CLI to create a smart contract, and then deploy it to zkSync Era using thirdweb Deploy and alternatively simply deploying a prebuilt contract from thirdweb Explore. + +## Build time! + +### Step 1 — Create Contract + +To create a new smart contract using thirdweb CLI, follow these steps: + +1. In your CLI run the following command: + + ``` + npx thirdweb create contract + ``` + +2. Input your preferences for the command line prompts: + 1. Give your project a name + 2. Choose your preferred framework: Hardhat or Foundry + 3. Name your smart contract + 4. Choose the type of base contract: Empty, [ERC20](https://portal.thirdweb.com/solidity/base-contracts/erc20base?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs), [ERC721](https://portal.thirdweb.com/solidity/base-contracts/erc721base?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs), or [ERC1155](https://portal.thirdweb.com/solidity/base-contracts/erc1155base?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + 5. Add any desired [extensions](https://portal.thirdweb.com/solidity/extensions?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) +3. Once created, navigate to your project’s directory and open in your preferred code editor. +4. If you open the `contracts` folder, you will find your smart contract; this is your smart contract written in Solidity. + + The following is code for an ERC721Base contract without specified extensions. It implements all of the logic inside the [`ERC721Base.sol`](https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol) contract; which implements the [`ERC721A`](https://github.com/thirdweb-dev/contracts/blob/main/contracts/eip/ERC721A.sol) standard. + + ```bash + // SPDX-License-Identifier: MIT + pragma solidity ^0.8.0; + + import "@thirdweb-dev/contracts/base/ERC721Base.sol"; + + contract Contract is ERC721Base { + constructor( + string memory _name, + string memory _symbol, + address _royaltyRecipient, + uint128 _royaltyBps + ) ERC721Base(_name, _symbol, _royaltyRecipient, _royaltyBps) {} + } + ``` + + This contract inherits the functionality of ERC721Base through the following steps: + + - Importing the ERC721Base contract + - Inheriting the contract by declaring that our contract is an ERC721Base contract + - Implementing any required methods, such as the constructor. + +5. After modifying your contract with your desired custom logic, you may deploy it to zkSync Era using [Deploy](https://portal.thirdweb.com/deploy?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs). + +--- + +Alternatively, you can deploy a prebuilt contract for NFTs, tokens, or marketplace directly from the thirdweb Explore page: + +1. Go to the thirdweb Explore page: [https://thirdweb.com/explore](https://thirdweb.com/explore?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + + ![thirdweb Explore](./images/thirdweb-explore.jpg) + +2. Choose the type of contract you want to deploy from the available options: NFTs, tokens, marketplace, and more. +3. Follow the on-screen prompts to configure and deploy your contract. + +> For more information on different contracts available on Explore, check out [thirdweb’s documentation.](https://portal.thirdweb.com/pre-built-contracts?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + +### Step 2 — Deploy Contract + +Deploy allows you to deploy a smart contract to any EVM compatible network without configuring RPC URLs, exposing your private keys, writing scripts, and other additional setup such as verifying your contract. + +1. To deploy your smart contract using deploy, navigate to the root directory of your project and execute the following command: + + ```bash + npx thirdweb deploy + ``` + + Executing this command will trigger the following actions: + + - Compiling all the contracts in the current directory. + - Providing the option to select which contract(s) you wish to deploy. + - Uploading your contract source code (ABI) to IPFS. + +2. When it is completed, it will open a dashboard interface to finish filling out the parameters. + - `_name`: contract name + - `_symbol`: symbol or "ticker" + - `_royaltyRecipient`: wallet address to receive royalties from secondary sales + - `_royaltyBps`: basis points (bps) that will be given to the royalty recipient for each secondary sale, e.g. 500 = 5% +3. Select `ZksyncEra` as the network +4. Manage additional settings on your contract’s dashboard as needed such as uploading NFTs, configuring permissions, and more. + +For additional information on Deploy, please reference [thirdweb’s documentation](https://portal.thirdweb.com/deploy?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs). + +If you have any further questions or encounter any issues during the process, please reach out to thirdweb support at [support.thirdweb.com](http://support.thirdweb.com/?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs). + +## Conclusion + +In this tutorial, you learned how to create and deploy a smart contract using thirdweb. You can now use thirdweb to create and deploy your own smart contracts to zkSync Era. diff --git a/tutorials/build-smart-contract-thirdweb/images/thirdweb-explore.jpg b/tutorials/build-smart-contract-thirdweb/images/thirdweb-explore.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a2ace414a3b8be3c2563fa4fdc8ebc167cde2f4 GIT binary patch literal 93208 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
y>GOnu2|MR+)y{T4yc8R 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

psI} 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 literal 0 HcmV?d00001 diff --git a/tutorials/build-smart-contract-thirdweb/tutorials.json b/tutorials/build-smart-contract-thirdweb/tutorials.json new file mode 100644 index 0000000..5f9c5e7 --- /dev/null +++ b/tutorials/build-smart-contract-thirdweb/tutorials.json @@ -0,0 +1,10 @@ +[ + { + "title": "Build a smart contract using thirdweb", + "description": "This guide will walk you through the process of creating and deploying a smart contract using thirdweb. We will be using the thirdweb CLI to create a smart contract, and then deploy it to zkSync Era using thirdweb Deploy and alternatively simply deploying a prebuilt contract from thirdweb Explore.", + "tags": ["smart contract", "devtools"], + "level": "beginner", + "author": "thirdweb", + "slug": "build-smart-contract-thirdweb" + } +] From 8f90d342d5a2321b8cdf4a0e05bd70b2bd39a259 Mon Sep 17 00:00:00 2001 From: Avneesh Agarwal Date: Mon, 24 Jul 2023 20:57:35 +0530 Subject: [PATCH 2/2] fix: add conclusion --- tutorials/build-dapp-thirdweb/TUTORIAL.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tutorials/build-dapp-thirdweb/TUTORIAL.md b/tutorials/build-dapp-thirdweb/TUTORIAL.md index b2db7a6..0cf4ba8 100644 --- a/tutorials/build-dapp-thirdweb/TUTORIAL.md +++ b/tutorials/build-dapp-thirdweb/TUTORIAL.md @@ -203,3 +203,7 @@ By running this command, your application is built for production and stored usi This URL serves as a permanent hosting location for your application on the web. If you have any further questions or encounter any issues during the process, please [reach out to thirdweb support.](https://support.thirdweb.com?utm_source=zksync&utm_medium=docs&utm_campaign=chain_docs) + +## Conclusion + +In this tutorial, you learned how to create and deploy a dapp using thirdweb. You can now create your own dapp using thirdweb’s SDKs and connect it to your smart contract on zkSync Era.