Deploy Smart Contract dengan thirdweb
Di halaman ini, Anda akan mempelajari cara membuat, mendeploy dan memverifikasi smart contract dengan thirdweb ke testnet Lisk Sepolia.
thirdweb adalah framework end-to-end untuk pengembangan dan deployment smart contract.
Kerangka ini memungkinkan developer untuk deploy contract standar seperti ERC-20, ERC-721, atau ERC-1155, tanpa menulis satu baris kode pun.
Lebih banyak informasi tentang ini dapat ditemukan di bagian thirdweb Explore.
Selain itu, developer yang ingin mengembangkan dan deploy smart contract kustom dapat menggunakan Solidity SDK yang disediakan oleh thirdweb, serta opsi lainnya seperti TypeScript SDK dan Unity SDK.
Namun, dalam panduan ini, kami akan lebih fokus pada thirdweb Explore dan Solidity SDK.
Fitur:
- Explore: Deploy contract bawaan siap pakai.
- Build (Solidity SDK): Menulis smart contract kustom.
- Deploy: Mendukung deployment contract untuk berbagai kasus penggunaan.
- Publish: Mempublikasikan contract Anda secara on-chain.
Deploy Contract Bawaan melalui thirdweb Explore
Jika Anda ingin deploy contract bawaan tanpa kustomisasi, thirdweb menyediakan cara yang mudah untuk melakukannya menggunakan Explore.
Tonton video berikut untuk pengenalan singkat tentang Explore:
Sebelum mencoba panduan berikut, pastikan bahwa wallet Anda terhubung ke Jaringan Lisk dan memiliki dana yang cukup.
Untuk informasi lebih lanjut, lihat bagian Dana Wallet.
Video-video berikut menjelaskan langkah-langkah untuk deploy berbagai token dengan contract bawaan di Lisk:
- Bagaimana cara deploy contract bawaan ERC-20 melalui Explore?
- Bagaimana cara deploy contract bawaan ERC-721 melalui Explore?
- Bagaimana cara deploy contract bawaan ERC-1155 melalui Explore?
Menggunakan Solidity SDK
Prasyarat
Node.js v18+
Download dan instal Node v18+.
Jika Anda menggunakan nvm
untuk mengelola versi Node.js Anda, cukup jalankan perintah: nvm install 18
.
Menginstal dan Mengonfigurasi thirdweb
Untuk mengembangkan contract kustom, Anda perlu men-download dan mengonfigurasi thirdweb.
- Untuk menginstal thirdweb, jalankan perintah berikut:
- NPM
- Yarn
npm i -g thirdweb
yarn global add thirdweb
- Atur API key thirdweb Anda.
Login menggunakan API key Anda.
- Langkah berikutnya adalah login ke thirdweb melalui CLI. Untuk melakukannya, ketik perintah berikut:
thirdweb login
- Setelah Anda menjalankan perintah di atas, terminal akan membuka aplikasi browser yang meminta Anda untuk mengautentikasi perangkat:
.......
💎 thirdweb v0.13.60 💎
Automatically attempting to open a link to authenticate with our dashboard...
If the browser doesn't open, please use this link to authenticate:
https://thirdweb.com/cli/login?payload=%7B%22payload%22%3A%7B%22type%22%3A%22evm%22%2C%22domain%22%3A%22thirdweb.com%22%2C%22address%22%3A%220x4fA5f77Fadcc319c626b28Ea6260FB0c3Ba6e41C%22%2C%22statement%22%3A%22Please%20ensure%20that%20the%20domain%20above%20matches%20the%20URL%20of%20the%20cuhdksjahjkdhkshajkdhkshakjhsjhdsajkhhdhs
⠙ Waiting for a response from the dashboard - Setelah Anda melakukan autentikasi melalui browser, terminal akan mencatat pesan berikut:
Successfully linked your account to this device
- Anda dapat memverifikasi status login Anda dengan menjalankan kembali perintah
thirdweb login
.💎 thirdweb v0.13.60 💎
Membuat Proyek
Langkah pertama untuk deploy smart contract ke Lisk adalah menyiapkan environment pengembangan Anda dengan membuat sebuah proyek.
thirdweb mendukung dua framework pengembangan smart contract paling populer, yaitu Foundry dan Hardhat.
Dalam panduan ini, kami menggunakan Foundry untuk pengembangan smart contract.
Namun, Anda dapat menggunakan Hardhat jika Anda lebih nyaman dengan itu.
Langkah-langkah pembuatan proyek serupa untuk Foundry maupun Hardhat.
-
Untuk Foundry, instal prasyaratnya di sistem Anda sebelum melanjutkan pembuatan proyek thirdweb.
-
Setelah semua yang disebutkan di atas terinstal, lanjutkan dengan langkah-langkah berikut:
npx thirdweb create
-
Pilih
Contract
sebagai jenis proyek Anda dan berikan nama yang sesuai untuk proyek tersebut........
💎 thirdweb v0.13.60 💎
✔ What type of project do you want to create? › Contract
✔ What is your project named? … thirdweb-contracts -
Selanjutnya, pilih
Forge
sebagai framework,NFT
sebagai nama contract,ERC721
sebagai jenis smart contract, danNone
untuk opsi ekstensi.infoJika Anda ingin menggunakan framework Hardhat, pilih
Hardhat
sebagai penggantiForge
dalam dialog berikutnya.✔ What framework do you want to use? › Forge
✔ What will be the name of your new smart contract? … NFT
✔ What type of contract do you want to start from? › ERC721
✔ What extensions do you want to add to your contract? › None -
thirdweb akan menginstal semua dependensi yang relevan dan mengatur proyek contract untuk Anda.
Log eksekusi dari pembuatan proyek
contract
thirdweb:Creating a new thirdweb contracts project in /Users/XYZ/Lightcurve-Code/L2/thirdweb-contracts.
Downloading files. This might take a moment.
Installing packages. This might take a couple of minutes.
yarn install v1.22.19
warning ../../../package.json: No license field
info No lockfile found.
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Saved lockfile.
✨ Done in 9.73s.
Initialized a git repository.
Success! Created thirdweb-contracts at /Users/XYZ/Lightcurve-Code/L2/thirdweb-contracts
Inside that directory, you can run several commands:
yarn build
Compiles your contracts and detects thirdweb extensions implemented on them.
yarn deploy
Deploys your contracts with the thirdweb deploy flow.
yarn publish
Publishes your contracts with the thirdweb publish flow.
We suggest that you begin by typing:
cd thirdweb-contracts -
Aplikasi Foundry yang dibuat dengan thirdweb memiliki struktur direktori yang mirip seperti ini:
.
├── .github
├── .cache
├── lib
├── node_modules
├── out
├── src
│ └── NFT.sol
├── test
│ └── Contract.t.sol
├── .gitignore
├── .gitmodules
├── foundry.toml
└── README.md
Membuat Smart Contract
Untuk kemudahan dan keamanan, thirdweb sudah menyediakan contract dasar yang dapat dengan mudah dikustomisasi dengan kode.
Karena sebelumnya kita memilih untuk membuat token ERC721
, file NFT.sol
akan tersedia di folder src/
.
File NFT.sol
ini sudah memiliki kode dasar yang diperlukan untuk sebuah contract NFT.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@thirdweb-dev/contracts/base/ERC721Base.sol";
contract NFT is ERC721Base {
constructor(
address _defaultAdmin,
string memory _name,
string memory _symbol,
address _royaltyRecipient,
uint128 _royaltyBps
)
ERC721Base(
_defaultAdmin,
_name,
_symbol,
_royaltyRecipient,
_royaltyBps
)
{}
}
Membangun Smart Contract
Setelah kode smart contract siap, contract tersebut harus di-build menggunakan thirdweb.
-
Untuk melakukannya, cukup jalankan perintah berikut:
npx thirdweb build
-
Jika smart contract tidak memiliki error, Anda akan melihat output berikut di terminal:
.......
💎 thirdweb v0.13.62 💎
✔ Detected project type: foundry
✔ Compilation successful
✔ Choose which contracts to run detection on · NFT
🔎 Detected extension on NFT
✔️ ERC721
✔️ ERC721Burnable
✔️ ERC721Supply
✔️ ERC721AQueryable
✔️ ERC721Mintable
✔️ ERC721BatchMintable
✔️ Royalty
✔️ ContractMetadata
✔️ Ownable
✔️ Fallback
ℹ Suggested extensions
- ERC721Enumerable - https://portal.thirdweb.com/interfaces/erc721enumerable
- ERC721LazyMintable - https://portal.thirdweb.com/interfaces/erc721lazymintable
- ERC721SignatureMintV1 - https://portal.thirdweb.com/interfaces/erc721signaturemintv1
- ERC721SignatureMintV2 - https://portal.thirdweb.com/interfaces/erc721signaturemintv2
- ERC721TieredDrop - https://portal.thirdweb.com/interfaces/erc721tiereddrop
- ERC721ClaimCustom - https://portal.thirdweb.com/interfaces/erc721claimcustom
- ERC721ClaimZora - https://portal.thirdweb.com/interfaces/erc721claimzora
- ERC721ClaimConditionsV1 - https://portal.thirdweb.com/interfaces/erc721claimconditionsv1
- ERC721ClaimConditionsV2 - https://portal.thirdweb.com/interfaces/erc721claimconditionsv2
- ERC721ClaimPhasesV1 - https://portal.thirdweb.com/interfaces/erc721claimphasesv1
- ERC721ClaimPhasesV2 - https://portal.thirdweb.com/interfaces/erc721claimphasesv2
- ERC721SharedMetadata - https://portal.thirdweb.com/interfaces/erc721sharedmetadata
- ERC721LoyaltyCard - https://portal.thirdweb.com/interfaces/erc721loyaltycard
- ERC721UpdatableMetadata - https://portal.thirdweb.com/interfaces/erc721updatablemetadata
- Permissions - https://portal.thirdweb.com/interfaces/permissions
ℹ Once you're done writing your contracts, you can run the following command to deploy them:
yarn deploy
Deploy Smart Contract
Semua pemeriksaan berhasil dilewati, yang berarti smart contract siap untuk di-deploy menggunakan thirdweb.
-
Untuk melakukannya, cukup jalankan perintah berikut:
npx thirdweb deploy
-
Jika smart contract tidak memiliki error, Anda akan melihat output berikut di terminal:
.......
💎 thirdweb v0.13.60 💎
✔ Detected project type: foundry
✔ Compilation successful
✔ Choose which contract(s) to deploy · NFT
✔ Upload successful
✔ Open this link to deploy your contracts: https://thirdweb.com/contracts/deploy/QmSJExQJfPYFuaRZuDu9XRR2jUu9yp3kaFX3Sdc1KRWxiP -
Terminal juga akan membuka aplikasi browser yang mengarah ke URL khusus, seperti yang ter-highlight diatas.
-
Isi formulir sesuai dengan petunjuk di bagian Fill Parameter.
-
Setelah Anda mengisi detail smart contract ERC721, klik tombol
Deploy Now
dan contract tersebut akan dideploy ke jaringan yang dipilih dari wallet Anda.
Jika Anda ingin menguji contract berbasis Foundry Anda, ikuti langkah-langkah yang disebutkan dalam panduan Menguji Smart Contract.
Berinteraksi dengan Smart Contract
Setelah contract di-deploy, Anda dapat berinteraksi dengan contract tersebut melalui Explore.
Video berikut menjelaskan langkah demi langkah bagaimana berinteraksi dengan bermacam-macam contract token di Lisk.