GENY را روی Base یکپارچه کنید.
سطح عملیاتی برای برنامههایی که باید موجودی GENY را بخوانند، انتقال آماده کنند، شبکه را اعتبارسنجی کنند و کاربر را در راهاندازی کیف پول هدایت کنند.
ثابتهای محیط عملیاتی
| شبکه | Base Mainnet |
|---|---|
| Chain ID | 8453 · 0x2105 |
| توکن gas بومی | ETH |
| نماد توکن | GENY |
| اعشار | 18 |
| قرارداد | 0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B |
خواندن موجودی
GENY از سطح استاندارد موجودی ERC-20 استفاده میکند. درخواست را همیشه به Base Mainnet محدود کنید و عدد صحیح بازگشتی را با ۱۸ رقم اعشار قالببندی کنید.
import { JsonRpcProvider, Contract, formatUnits } from "ethers";
const provider = new JsonRpcProvider("https://mainnet.base.org");
const token = new Contract(
"0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B",
["function balanceOf(address) view returns (uint256)"],
provider
);
const raw = await token.balanceOf(userAddress);
const balance = formatUnits(raw, 18);آمادهسازی انتقال
انتقال یک تراکنش ERC-20 است که توسط کیف پول تأیید میشود. هرگز عبارت بازیابی یا کلید خصوصی کاربر را درخواست یا پردازش نکنید.
import { BrowserProvider, Contract, parseUnits } from "ethers";
const provider = new BrowserProvider(window.ethereum);
const signer = await provider.getSigner();
const token = new Contract(
"0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B",
["function transfer(address,uint256) returns (bool)"],
signer
);
const tx = await token.transfer(recipient, parseUnits("12.5", 18));
await tx.wait();پیش از فعالکردن عملیات نوشتن، بررسی کنید زنجیرهٔ متصل Base Mainnet باشد (8453) و آدرس کامل مقصد را به کاربر نشان دهید.
راهاندازی کیف پول
کیف پول injected یا EIP-6963 را شناسایی کنید
بهجای انتخاب پنهانی، انتخاب فعلی کیف پول و provider کاربر را در اولویت قرار دهید.
Base Mainnet را درخواست کنید
کاربرد wallet_switchEthereumChain with 0x2105. فقط زمانی به wallet_addEthereumChain برگردید که کیف پول اعلام کند زنجیره ناشناخته است.
پیشنهاد افزودن توکن
wallet_watchAsset میتواند GENY را به کیف پولهای سازگار پیشنهاد دهد، اما مسیر دستی مبتنی بر آدرس قرارداد باید همیشه در دسترس بماند.
بهصورت مستقل اعتبارسنجی کنید
کاربران را به BaseScan هدایت کنید و پیش از هر عملیات انتقال ارزش، بررسی آدرس قرارداد را توصیه کنید.
قواعد یکپارچهسازی
- آدرس قرارداد را شناسهٔ اصلی توکن در نظر بگیرید؛ نام، نماد و لوگو فقط metadata نمایشی هستند.
- هرگز seed phrase یا کلید خصوصی درخواست نکنید.
- پیش از امضا، زنجیرهٔ فعال و مقصد را بهوضوح نمایش دهید.
- اگر وضعیت برنامه به تأیید وابسته است، منتظر receipt تراکنش بمانید.
- موجودی را از وضعیت cacheشدهٔ UI استنتاج نکنید؛ آن را از زنجیره یا indexer قابلاعتماد بخوانید.