คู่มือการย้าย
การย้าย RainbowKit
การพึ่งพา wagmi และ viem ได้ถึงเวอร์ชัน 2.x.x
พร้อมกับการเปลี่ยนแปลงหลัก
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
1. อัปเกรด RainbowKit, wagmi
, และ viem
ไปยังเวอร์ชันล่าสุด
2. ติดตั้งไลบรารี @tanstack/react-query
ที่เป็น peer dependency
ด้วย Wagmi v2, TanStack Query ตอนนี้เป็น peer dependency ที่ต้องการ
ติดตั้งด้วยคำสั่งต่อไปนี้:
**3. อัพเกรดการตั้งค่า RainbowKit และ Wagmi ของคุณ
4. ตรวจสอบการเปลี่ยนแปลงที่สำคัญใน wagmi
และ viem
หากคุณใช้งาน hooks ของ wagmi
และ actions ของ viem
ใน dApp ของคุณ, คุณจะต้องทำตามคู่มือการย้ายข้อมูลสำหรับ v2:
**1. พฤติกรรมที่ปรับปรุงสำหรับกระเป๋าสตางค์ EIP-6963
กระเป๋าสตางค์ที่รองรับมาตรฐานการเชื่อมต่อใหม่ EIP-6963 (รวมถึง Rainbow, MetaMask และอื่นๆ) จะปรากฏในส่วน Installed
โดยอัตโนมัติระหว่างประสบการณ์การเชื่อมต่อกระเป๋าสตางค์ สิ่งนี้ช่วยให้ผู้ใช้สามารถค้นหากระเป๋าสตางค์ที่ชื่นชอบได้เสมอและเชื่อมต่อกับ dApps โดยไม่มีความขัดแย้งหรือปุ่ม fallback สิ่งนี้ช่วยให้ผู้ใช้สามารถค้นหากระเป๋าสตางค์ที่ชื่นชอบได้เสมอและเชื่อมต่อกับ dApps โดยไม่มีความขัดแย้งหรือปุ่ม fallback
นักพัฒนายังคงมีการควบคุมเต็มที่เหนือรายการกระเป๋าสตางค์ที่กำหนดเองเพื่อเน้นกระเป๋าสตางค์ที่ต้องการสำหรับผู้ใช้ปลายทาง นักพัฒนายังคงมีการควบคุมเต็มที่เหนือรายการกระเป๋าสตางค์ที่กำหนดเองเพื่อเน้นกระเป๋าสตางค์ที่ต้องการสำหรับผู้ใช้ปลายทาง ขอแนะนำให้คุณยังคงรวม injectedWallet
และ walletConnectWallet
ในรายการของคุณเพื่อรองรับทุกแพลตฟอร์ม
2. การตั้งค่า Wagmi ด้วย getDefaultConfig
API ใหม่นี้ทำให้ประสบการณ์การกำหนดค่าง่ายขึ้นและทดแทนความจำเป็นในการใช้ createConfig
ของ Wagmi โดยตรง การกำหนดค่าเชนถูกทำให้ง่ายขึ้น รวมถึงการให้บริการสาธารณะที่สามารถสรุปได้สำหรับ transports
การกำหนดค่าเชนถูกทำให้ง่ายขึ้น รวมถึงการให้บริการสาธารณะที่สามารถสรุปได้สำหรับ transports
รายการกระเป๋าเงินเริ่มต้นจะถูกรวมเข้ามาโดยอัตโนมัติ ทำให้ไม่จำเป็นต้องใช้ getDefaultWallets
และ connectorsForWallets
คุณสามารถสร้างรายการกระเป๋าเงินที่กำหนดเองได้โดยการส่ง connectors กระเป๋าเงินที่นำเข้ามาหรือเชนที่กำหนดเองไปยัง wallets
ไม่จำเป็นต้องสร้าง connectors กระเป๋าเงินและส่ง projectId
และ chains
อีกต่อไป ไม่จำเป็นต้องสร้าง connectors กระเป๋าเงินและส่ง projectId
และ chains
อีกต่อไป
3. RainbowKitProvider
คุณไม่จำเป็นต้องส่ง chains
ไปยัง <RainbowKitProvider>
4. เชนที่กำหนดเอง
ประเภทของ Chain
ได้เปลี่ยนแปลงตาม Wagmi v2 และยังคงสนับสนุน metadata iconUrl
และ iconBackground
ของ RainbowKit
ตัวอย่างที่ใช้ getDefaultConfig
:
ตัวอย่างโดยใช้ createConfig
:
5. กระเป๋าเงินที่กำหนดเอง
คอนเนคเตอร์กระเป๋าเงินของ RainbowKit ได้รับการเปลี่ยนแปลงอย่างมากเพื่อรองรับ Wagmi v2. อ้างอิง เอกสารที่อัปเดต และ ตัวอย่างคอนเนคเตอร์ เพื่ออัปเกรดคอนเนคเตอร์กระเป๋าเงินที่กำหนดเองใน dApp ของคุณ.
คอนเนคเตอร์กระเป๋าเงินยังรองรับมาตรฐาน EIP-6963 ด้วย prop rdns
. ตรวจสอบให้แน่ใจว่ามีการกรอกข้อมูลนี้เพื่อป้องกันการอ้างอิงซ้ำๆ ไปยังกระเป๋าเงินที่รองรับ EIP-6963 ในรายการกระเป๋าเงินของคุณ.
การพึ่งพา wagmi ได้รับการอัปเดตเป็น 1.x.x
.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
1. อัปเกรด RainbowKit และ wagmi
ไปยังเวอร์ชันล่าสุด
2. ติดตั้ง viem
ที่พึ่งพาเป็นคู่
wagmi v1 ต้องการ viem
ที่เชื่อมโยงที่พึ่งพาเป็นคู่. ติดตั้งด้วยคำสั่งต่อไปนี้:
3. ให้แน่ใจว่า bundler และการเข้ากันได้ของ polyfill
ในเวอร์ชั่นก่อนหน้าของ wagmi ที่พึ่ง ethers, โมดูล fs
, net
, และ tls
ที่ WalletConnect ต้องการถูก polyfilled โดยอัตโนมัติ. นี้ไม่ใช่กรณีอีกต่อไปด้วย RainbowKit v1 + wagmi v1, ซึ่งสร้างบน viem.
อ้างถึง Next.js Webpack Config และ Create React App polyfills ตัวอย่างของเราสำหรับคำแนะนำการกำหนดค่าให้กับโปรเจ็คของคุณ.
คู่มือเฟรมเวิร์คเพิ่มเติมสำหรับ Vite และ Remix สามารถใช้ได้ here.
4. ตรวจสอบการเปลี่ยนแปลงที่สำคัญใน wagmi
หากคุณใช้งาน wagmi
hooks ในแอปพลิเคชันของคุณ คุณจะต้องปฏิบัติตามคำแนะนำการย้ายของ wagmi
เพื่อเปลี่ยนเป็น v1.
คุณสามารถดูคำแนะนำการย้ายได้ที่นี่.
การพึ่งพา wagmi ถูกอัปเดตเป็น 0.12.x
.
RainbowKit ได้นำเข้า WalletConnectLegacyConnector
connector ใน wagmi
สำหรับการสนับสนุน WalletConnect v1 อย่างต่อเนื่อง. การสนับสนุนสำหรับ WalletConnect v2 และ WalletConnectConnector
จะมีให้บริการในเร็ว ๆ นี้ตามรุ่นแก้ไขที่ไม่ทำให้เกิดการเปลี่ยนแปลงที่เป็นปัญหา
การเปลี่ยนแปลงกระเป๋าเงินจะถูกดำเนินการอัตโนมัติในรุ่นที่จะมาถึง
แอปพลิเคชันทุกๆ โปรแกรมต้องเตรียม projectId
จาก WalletConnect Cloud เพื่อเปิดใช้งาน WalletConnect v2. หน้าที่นี้ต้องสำเร็จก่อนที่เซิร์ฟเวอร์สะพาน WalletConnect v1 จะปิดใช้งานในวันที่ 28 มิถุนายน 2566. RainbowKit จะเลือกใช้ v1 สำหรับกระเป๋าเงินทั้งหมดโดยไม่มีการแจ้งเตือนถ้า projectId
ไม่ระบุ.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
แอปพลิเคชันทุกๆ โปรแกรมที่พึ่งพา WalletConnect ตอนนี้จำเป็นต้องเรียก projectId
จาก WalletConnect Cloud. นี่เป็นบริการฟรีและใช้เวลาไม่กี่นาที.
ให้ projectId
กับ getDefaultWallets
และคอนเน็กเตอร์กระเป๋าเงิน RainbowKit แบบรายบุคคลเช่นต่อไปนี้:
การพึ่งพา wagmi ถูกอัปเดตเป็น 0.11.x
.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
หากคุณใช้ hook wagmi
ในแอปพลิเคชันของคุณ, คุณจะต้องตรวจสอบว่าแอปพลิเคชันของคุณได้รับผลกระทบจากการเปลี่ยนแปลงที่สำคัญใน wagmi
หรือไม่.
คุณสามารถดูคู่มือการย้ายข้อมูลของพวกเขาที่นี่.
การพึ่งพา wagmi ถูกอัปเดตเป็น 0.10.x
.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
หากคุณใช้ hook wagmi
ในแอปพลิเคชันของคุณ, คุณจะต้องตรวจสอบว่าแอปพลิเคชันของคุณได้รับผลกระทบจากการเปลี่ยนแปลงที่สำคัญใน wagmi
หรือไม่.
คุณสามารถดูคู่มือการย้ายข้อมูลของพวกเขาที่นี่.
การพึ่งพา wagmi ถูกอัปเดตเป็น 0.9.x
.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
หากคุณใช้ hook wagmi
ในแอปพลิเคชันของคุณ, คุณจะต้องตรวจสอบว่าแอปพลิเคชันของคุณได้รับผลกระทบจากการเปลี่ยนแปลงที่สำคัญใน wagmi
หรือไม่.
คุณสามารถดูคู่มือการย้ายข้อมูลของพวกเขาที่นี่.
การพึ่งพา wagmi ถูกอัปเดตเป็น 0.8.x
.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
หากคุณใช้ hook wagmi
ในแอปพลิเคชันของคุณ, คุณจะต้องตรวจสอบว่าแอปพลิเคชันของคุณได้รับผลกระทบจากการเปลี่ยนแปลงที่สำคัญใน wagmi
หรือไม่.
คุณสามารถดูคู่มือการย้ายข้อมูลของพวกเขาที่นี่.
หากคุณกำลังสร้างรายการ wallet ที่กำหนดเอง, คุณต้องนำเข้าแต่ละ wallet เป็นรายตัวเพื่อลดขนาดของ bundle. ทราบว่าตั้งแต่ wallet ไม่ได้มีการกำหนด namespace ผ่านวัตถุ wallet
ไว้, wallet ทั้งหมดขณะนี้จะมี Wallet
เป็น suffix.
ทราบว่าชั้นความเข้ากันได้นี้ของ Steakwallet ถูกลบออกไปแล้ว. แนะนำให้ใช้ Omni แทน.
RainbowKit ได้อัปเดต wagmi
ที่เป็น peer dependency ไปเป็น 0.5.x
.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
อัปเกรด RainbowKit และ wagmi ไปยังเวอร์ชันล่าสุด
หากคุณใช้ hook wagmi
ในแอปพลิเคชันของคุณ, คุณจะต้องตรวจสอบว่าแอปพลิเคชันของคุณได้รับผลกระทบจากการเปลี่ยนแปลงที่สำคัญใน wagmi
หรือไม่.
คุณสามารถดูคู่มือการย้ายที่นี่.
ลบพารามิเตอร์ chainId
ออกจาก createConnector
บน Wallet
type.
โปรดทราบว่าวอลเล็ตที่มีอยู่ถูกสร้างขึ้นโดยใช้ API ใหม่ทั้งหมด. ผู้บริโภคส่วนใหญ่จะไม่ได้รับผลกระทบ. การเปลี่ยนแปลงนี้มีผลกระทบเฉพาะกับผู้บริโภคที่ได้สร้าง/บริโภค วอลเล็ตที่ลูกค้ากำหนดเอง.
หากคุณเคยสกัด RPC URLs จาก chainId
บน createConnector
, คุณสามารถลบโลจิคนั้นได้ตอนนี้เนื่องจาก wagmi
จัดการกับ RPC URLs ภายในเวลาที่ใช้กับ configureChains
.
RainbowKit ได้อัปเดต wagmi
peer dependency เป็น ^0.4
.
ทำตามขั้นตอนด้านล่างเพื่อย้าย.
อัปเกรด RainbowKit และ wagmi ไปยังเวอร์ชันล่าสุด
นำเข้า configureChains
จาก wagmi แทน RainbowKit:
RainbowKit ไม่ออก apiProvider
API อีกต่อไป. แทนที่ด้วยผู้ให้ที่คุณต้องการจาก wagmi.
นำเข้า alchemyProvider
จาก wagmi/providers/alchemy
.
นำเข้า infuraProvider
จาก wagmi/providers/infura
.
นำเข้า jsonRpcProvider
จาก wagmi/providers/jsonRpc
.
นำเข้า publicProvider
จาก wagmi/providers/public
.
เปลี่ยนชื่อ WagmiProvider
เป็น WagmiConfig
.
และคุณเสร็จสิ้น! 🌈