บทความนี้ outdated แล้ว
อ่านบทความล่าสุดที่
https://web3.gadgeteer.in.th/learning-deploy-contract-base-camp-nft-full
deploy contract ทำ ทำไหม
โพสนี้เริ่มจาก Base มีหลักสูตรให้เรียนและเคลม NFT ทุกๆบท เมื่อผมเรียนจบก็เห็นว่ามันลอกการบ้านง่ายนะ เลยคิดว่ามาแนะนำเพื่อนๆดีกว่า
✅ ง่ายกว่าที่คิด
✅ ไม่ต้องติดตั้งแอปลงเครื่อง
✅ ใช้เวลาไม่มาก(?)
deploy contract บน chain อื่นๆ เช่น Scroll, Linea, zkSync, polygon zkEVM และ EVM อื่นๆได้ทั้งหมด เทสเน็ตเรา deploy ได้รัวๆ ส่วน mainnet ใช้เงินจริงนะเอ้อ
การ deploy contract เป็นการสร้างกิจกรรมบน blockchain ซึ่งปกติมีแต่ dev ที่ทำ user ไม่ค่อยทำ ถ้า เชนไหน reward dev ก็น่าจะส่งผลกับ airdrop ที่มากขึ้น ดังนั้นผมคิดว่าทำไว้ไม่เสียหาย โดยเฉพาะเทสเน็ตอย่าง Scroll testnet, Linea testnet ไม่ควรพลาด
เตรียมการกันก่อน
แอด chain ต่างๆได้ที่ https: chainlist.org
เข้าไปแล้ว connect wallet แอดเชน testnet ให้หมด ทั้ง Base, Linea, polygon testnetเตรียม เหรียญเทส ETH ขุดเอาได้ไว https: sepolia-faucet.pk910.de
บริดเหรียญเทสไปเชนที่ต้องการ https: rinkeby.orbiter.finance
*เสริม กรณีบริด mainnet https: www.orbiter.finance
พร้อมแล้วก็ลุยต่อกันเลย
เริ่มdeploy contract และ เคลม NFT กันได้เลย
เราจะเขียน Contract และ Deploy ด้วย Remix
https: remix.ethereum.org < เพื่อความปลอดภัยเช็ค URL ให้ถูกต้องทุกครั้ง
เมื่อเข้าไป ให้กด tab - file explorer บนสุด เราจะเห็นว่ามีไฟล์อยู่แล้ว ลบให้หมด เหลือแค่ folder contract
จากนั้นคลิกขวา folder > new file > ตั้งชื่อไฟล์ใหม่ BasicMath.sol ก็ได้
จากนั้นดูด้านขวา ก็อบโค้ดการบ้านนี้วาง (ตอนวางจะมีเตือน เราว่าระวังอย่าใส่โค้ดหลอกมั่วๆทางเน็ต ไม่ต้องตกใจ)
การก็อบโค้ดทุกครั้งมีความเสี่ยง เช่นถ้าเราก็อบ contract rug rug มา ก็จะไม่ดี
ไม่ควรเชื่อเว็บไซต์ทั่วไป
โค้ดการบ้านข้อ 1 contract ที่ช่วยเราบวกลบเลข👇
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract BasicMath {
uint constant MAX_UINT = type(uint).max;
function adder(uint _a, uint _b) public pure returns (uint, bool) {
if(_a > MAX_UINT - _b) {
return (0, true); // Overflow would occur, return error
}
return (_a + _b, false); // No overflow
}
function subtractor(uint _a, uint _b) public pure returns (uint, bool) {
if(_b > _a) {
return (0, true); // Underflow would occur, return error
}
return (_a - _b, false); // No underflow
}
}
จากนั้นไป tab - Solidity compiler
เลือก version ให้ตรงกับในโค้ด แล้วกดปุ่ม compile
Compile เรียบร้อย ต่อไปเรา deploy กันเลย
กด tab - deploy and run
เลือก injected - wallet จะมีต่อ metamask
ตั้ง metamask เป็น Base Goerli network ให้ถูกต้อง
สังเกตมีเลขระบุ network 84531 = base goerli networkกดปุ่ม deploy และ sign ให้เรียบร้อย
ด้านล่างสุด เราจะเห็น contract ที่เพิ่ง deploy มาได้
copy address เอาไว้สำหรับเคลม NFT
เท่านี้เพื่อนๆก็ deploy contract บน Base Goerli เรียบร้อยกันแล้วนะครับ
เคลม NFT กัน
เรียบร้อย จบไปแล้วสำหรับการบ้าน 1
เก่งมากครับทุกคนนนน 🧡
เพื่อนๆทำเป็นแล้ว contract การบ้าน ต่อๆไปก็น่าจะประมาณนี้แหละ ครับ
ปล. ไหนๆก็ทำแล้ว เชียร์ deploy บน testnet อื่นๆเช่น Scroll, Linea ไปด้วยเลยแม้จะไม่มี NFT เป็นรางวัล
กดเปลี่ยน network แล้ว deploy รัวๆ
Scroll Alpha testnet (check network id 534353)
Linea testnet (check network id 59140)
Taiko
การ Deploy บน mainnet ต่างๆก็น่าสนใจเช่นกัน (ต้องระวังเรื่อง gas)
Polygon zkEVM 1101
zkSync
Arb Nova 42170และอื่นๆ บน metamask ใช้วิธีนี้ได้ทั้งหมด
โดย contract นี้มีขนาดเล็ก ใช้ gas น้อย ปลอดภัย(ทำได้แค่บวกลบเลข)
Verify contract
ต่อจาก deploy เราสามารถ verify contract ได้นะ (ไม่จำเป็น)
การ verify EVM contract ที่ deploy ไป
ไปที่ block explorer - etherscan/ basescan
คลิก verify contract
จากนั้นกรอกข้อมูลให้เรียบร้อย เลข contract address และ version solidity
ดู version ตรงนี้
license ตามที่ผมเคยสอน ส่วนใหญ่จะเป็น MIT
ใส่โค้ดที่เคยใช้เข้าไป แล้ว sign
แค่นี้การ verify ก็เรียบร้อย
การบ้าน 2-10
การบ้าน 1 ไปเรียบร้อย กว่าจะจบคอร์สจะได้ NFT เพิ่มอีกอย่างน้อย 9ชิ้น
ตอนนี้เพื่อนๆก็ทำเป็นแล้ว ต่อๆไป จะเป็นการก็อบโค้ดและทำซ้ำอย่างเดียวครับ :)
หากจะลุยต่อ อยากให้ลอง collect โพสด้วยปุ่มด้านล่าง 0.001 matic + gas
จากนั้นลุย https: web3.gadgeteer.in.th base-camp-nft