Cover photo

Deploy contract on Eclipse Mainnet

วันนี้จะมาสอนวิธีการ Deploy contract บน Eclipse Mainnet โปรเจคตัวนี้ระดมทุน 65$M

แหล่งข้อมูล

https://cryptorank.io/ico/eclipse-fnd#funding-rounds

วิธีการ Deploy ผมอ้างอิงมาจาก มีคนทำ script ไว้แล้ว แนำนำว่าควรสร้างกระเป๋าใหม่ในการทำเพราะต้องมีการ import seed

https://github.com/zunxbt/Eclipse-NFT

สิ่งที่ต้องมี

  • Backpack wallet extension Download ได้ที่

https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof

หลังจาก Download แล้วอย่าเพิ่งสร้าง wallet ใหม่นะ เราจะเอา private key จากตัว script ไป import wallet แทน

  • account github เพื่อใช้งาน Codespace หรือ VPS สำหรับคนที่ไม่มี VPS ใช้แค่ Codespace ของ Github ก็สามารถ deploy ได้แต่อาจจะทำงานช้านิดนึง

สร้าง wallet

1.เข้าไปที่ Codespace ของ Github

https://github.com/codespaces

2.เลือก Blank Template แล้วรอสักครู่ใน Terminal ด้านล่างสามารถใช้งานได้

post image

3.รันคำสั่ง

[ -f "eclipsenft.sh" ] && rm eclipsenft.sh; wget -q https://raw.githubusercontent.com/zunxbt/Eclipse-NFT/main/eclipsenft.sh && chmod +x eclipsenft.sh && ./eclipsenft.sh

รอจนขึ้น Menu ตามภาพ พิมพ์ 1 แล้ว Enter ตัว Script จะทำการรันคำสั่ง การติดตั้ง Solana CLI ใช้เวลาประมาณ 5-10 นาที

post image

4.เมื่อติดตั้ง Solana Cli เสร็จจะกลับมาที่หน้า Menu เหมือนเดิม เลือกข้อ 2 set up wallet โดยพิมพ์ 2 แล้ว Enter จะมีหัวข้อให้เลือก

post image

เลือก 1 ถ้าเรามี wallet อยู่แล้ว แต่ในกรณีนี้เราจะสร้าง wallet ใหม่ ให้เราเลือก 2 แล้ว Enter script จะให้กรอก BIP39 Passphrase

post image

ซึ่งจริงๆจำเป็นต้องกรอก เพราะหากเราไม่กรอก เวลาเราเอา seed ที่ได้จาก script ไป import ใน wallet เราจะได้เลข wallet ไม่ตรงกับที่สร้างจาก script แต่ผมยังไม่เข้าใจหลักการทำงานของมันเท่าไร แต่ผมมีวิธี import ให้ได้เลข wallet เดิม ดังนั้นไม่ต้องกรอกอะไร Enter ผ่านไปได้เลย

post image

เราจะได้ส่วนสำคัญมา 3 อย่าง ให้ save เก็บไว้

  1. Keypair จะเป็นไฟล์ที่เก็บ Private ของเรา ในกรณีที่รัน Script นี้ไฟล์ keypair จะถูกเก็บไว้ใน path /home/codespace/solana_keypairs/eclipse-wallet.json

  2. pubkey หรือเลข wallet ที่เราสร้างขึ้นมา

  3. Seed จะประกอบด้วยคำศํพท์ 12 ตำ

หากเราลองเอา Seed ไป import Backpack จะพบว่าเราได้เลข Wallet หรือ Publickey ไม่ตรงกับที่เราสร้าง เพราะในเชน Solana การสร้าง wallet จะมีสิ่งที่เรียกว่า derivation path ในการสร้าง wallet หรือ import ถ้าเราระบุ derivation path จะทำให้เราได้เลขกระเป๋าเดิม ซึ่งขอไม่อธิบายเพราะผมก็ไม่ค่อยเข้าใจ แต่เรามีวิธี import ให้ได้เลข wallet เดิม

วิธี import wallet

1. ที่ menu ให้เราเลือก 6 เพื่อ ออกจาก script

2.พิมพ์คำสั่ง

cat /home/codespace/solana_keypairs/eclipse-wallet.json

3.เราจะได้ข้อความคล้ายกับแบบนี้ [69,99,69,74,154,230,……] อันนี้แหละคือ private key ที่เอาไปใช้ในการ import เพื่อให้ได้เลขกระเป๋าเดิม

4.ให้เรา Copy ข้อความเริ่มต้นตั้งแต่ [ ไปจนถึง ] แล้วไปที่ backpack wallet เลือก import wallet / Eclipse / Import private key แล้ววางข้อความที่เรา Copy ลงไป แล้วกด import เช็คว่าเลข wallet ตรงกับ public key ที่สร้างจาก script ไหม

post image

Bridge

บริดเหรียญ ETH จาก Mainnet มาใช้เป็นค่า Gas ในการ Deploy Contract ให้ไปที่

https://bridge.eclipse.xyz/

ทำการ bridge เหรียญ ETH มา ค่า gas ที่ใช้ในการ deploy contract ใช้น้อยมากดังนั้นให้บริดขั้นต่ำสุดก็เพียงพอ (0.002 ETH)

post image

Deploy NFT contract

ในการ deploy nft เราจำเป็นต้องมี API_KEY และ API_SECRET ของ Pinata ก่อนเข้าไปสมัครฟรีได้ที่ กด Get start แล้วกรอกรายละเอียด แล้ว Verify ผ่าน email ที่เราสมัคร

https://pinata.cloud/

เลือก plan แบบ Free แล้วเลือกหัวข้อตามที่เว็บกำหนด (มั่วได้)

post image

ที่หน้า dashboard ของเราจะเห็น menu ที่เขียนว่า API key กดเข้าไปแล้วเลือก New key ที่ปุ่มมุมซ้ายบน กรอกข้อมูลตามภาพ แล้วกด Generate API key

post image

เราจะได้ API key และ API Secret มาแบบนภาพ

post image

กลับไปที่ Codespace Github พิมพ์คำสั่ง

[ -f "eclipsenft.sh" ] && rm eclipsenft.sh; wget -q https://raw.githubusercontent.com/zunxbt/Eclipse-NFT/main/eclipsenft.sh && chmod +x eclipsenft.sh && ./eclipsenft.sh

เลือกข้อ Install npm dependencies เพื่อทำการติดตั้ง npm dependencies หลังจากติดตั้งเสร็จเลือก Setup Mint File จะมีข้อความให้เราใส่

NFT Name/ NFT Symbol/ Description /API key/ Secret key กรอกไปให้เรียบร้อย แล้วจะมีให้เราเลือกว่าต้องการ deploy บน mainnet หรือ testnet ในกรณีนี้ให้เราเลือก mainnet

post image

จะมีข้อความ ถามว่า Need to install the following packages: tsc@2.0.4 Ok to proceed? (y) ให้กด y แล้ว enter เสร็จแล้วจะกลับมาที่หน้า menu ให้เราเลือกหัวข้อ Start Minting เพื่อเริ่มทำการ Deploy เราจะเจอชอ้ความ

Need to install the following packages: ts-node@10.9.2 Ok to proceed? (y)

ให้ตอบ y แล้ว Enter หากได้ข้อความประมาณนี้แสดงว่า Deploy สำเร็จ

post image

ก่อนจะเริ่ม Deploy ดูเหรียญ ETH ที่เรา Bridge มาด้วยว่าเข้ากระเป๋ารึยัง ใครที่เช่า VPS ไว้อยู่แล้ว แนะนำให้ Run ผ่าน VPS นะเพราะ Codespace จำกัดการใช้งานพอสมควรมันมักจะเจอ error

ใครที่เจอ error ให้ลองปิด Code space แล้วเปิดทำใหม่ แต่ขั้นตอนของการ setup wallet ให้เลือกเป็น Use exitsing wallet แทน เพื่อใช้ Seed ที่เราสร้าง ตอนเราวาง seed เราจะไม่เห็นข้อความปรากฎขึ้นนะ ให้วางแล้วกด Enter ไปได้เลย แล้วจะมีข้อความ

[recover] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:

Enter ไปได้เลย

Recovered pubkey "เลข Wallet ที่เรา import มาเช็คว่าตรงไหม". Continue? (y/n):

กด y แล้ว enter

post image

แล้วไล่ทำข้อ 3,4,5 ใหม่ ลองไปทำกันดูนะครับ เดียวรอบหน้าจะมาสอน Deploy token กัน หากใครเห็นว่าบทความนี้มีประโยชน์ก็ช่วยสนับสนุนได้โดยการ mint NFT นะครับ ขอบคุณครับ