Skip to content

مرجع API ​

DotOne Smart Chain مجموعه‌ای استاندارد از API‌ها را برای توسعه‌دهندگان، پژوهشگران و یکپارچه‌سازها ارائه می‌دهد. تمام نقاط پایانی عمومی از قراردادهای JSON-RPC سازگار با اتریوم پیروی می‌کنند و این موضوع، یکپارچه‌سازی را برای هر ابزار سازگار با EVM ساده می‌سازد.


نقاط پایانی RPC ​

مین‌نت ​

نوعنقطه‌ی پایانی
HTTPS RPChttps://rpc.dotone.network
WebSocketwss://ws.dotone.network
Chain ID505

تست‌نت ​

به‌زودی — تست‌نت هم‌اکنون در حال توسعه است. نقاط پایانی و Chain ID آن پس از در دسترس قرار گرفتن اینجا منتشر می‌شود.


JSON-RPC API ​

DotOne به‌طور کامل با مشخصات JSON-RPC اتریوم سازگار است. تمام فضای‌نام‌های استاندارد eth_، net_ و web3_ پشتیبانی می‌شوند.

مثال — دریافت آخرین شماره‌ی بلاک ​

درخواست:

bash
curl -X POST https://rpc.dotone.network \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
  }'

پاسخ:

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x1a2b3c"
}

مثال — دریافت تراکنش بر اساس هش ​

درخواست:

bash
curl -X POST https://rpc.dotone.network \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "eth_getTransactionByHash",
    "params": ["0x{transaction_hash}"],
    "id": 1
  }'

مثال — دریافت موجودی کیف‌پول ​

درخواست:

bash
curl -X POST https://rpc.dotone.network \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "eth_getBalance",
    "params": ["0x{wallet_address}", "latest"],
    "id": 1
  }'

پاسخ:

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x56BC75E2D63100000"
}

موجودی بر حسب Wei برگردانده می‌شود. برای تبدیل به DOTO آن را بر 10^18 تقسیم کنید.


WebSocket API ​

اتصالات WebSocket امکان اشتراک بلادرنگ در رویدادهای روی زنجیره را بدون نیاز به polling فراهم می‌کنند.

اتصال ​

js
const ws = new WebSocket("wss://ws.dotone.network");

اشتراک در هدرهای بلاک جدید ​

js
ws.send(JSON.stringify({
  "jsonrpc": "2.0",
  "method": "eth_subscribe",
  "params": ["newHeads"],
  "id": 1
}));

اشتراک در تراکنش‌های در انتظار ​

js
ws.send(JSON.stringify({
  "jsonrpc": "2.0",
  "method": "eth_subscribe",
  "params": ["newPendingTransactions"],
  "id": 2
}));

اشتراک در لاگ‌های قرارداد ​

js
ws.send(JSON.stringify({
  "jsonrpc": "2.0",
  "method": "eth_subscribe",
  "params": [
    "logs",
    {
      "address": "0x{contract_address}",
      "topics": []
    }
  ],
  "id": 3
}));

Explorer API ​

اکسپلورر DotOne یک REST API برای پرس‌وجوی داده‌های ایندکس‌شده‌ی بلاک‌چین ارائه می‌دهد — مفید برای تحلیل، داشبورد و ابزارهای نظارتی.

آدرس پایه: https://dotscan.one/api

نقاط پایانی رایج ​

دریافت جزئیات تراکنش

GET /api?module=transaction&action=gettxinfo&txhash={tx_hash}

دریافت تاریخچه‌ی تراکنش‌های آدرس

GET /api?module=account&action=txlist&address={wallet_address}&page=1&offset=20

دریافت انتقال‌های توکن برای یک آدرس

GET /api?module=account&action=tokentx&address={wallet_address}

دریافت جزئیات بلاک

GET /api?module=block&action=getblockreward&blockno={block_number}

دریافت ABI قرارداد

GET /api?module=contract&action=getabi&address={contract_address}

کتابخانه‌های پشتیبانی‌شده ​

DotOne با تمام کتابخانه‌های استاندارد توسعه‌ی EVM سازگار است:

کتابخانهزبانکاربرد
ethers.jsجاوااسکریپت / تایپ‌اسکریپتتعامل با کیف‌پول، قرارداد و provider
web3.jsجاوااسکریپتپوشش کامل API اتریوم
viemتایپ‌اسکریپتکلاینت مدرن و type-safe برای EVM
web3.pyپایتونیکپارچه‌سازی و اسکریپت‌های بک‌اند
ethers-rsراست (Rust)اپلیکیشن‌های با کارایی بالا

اتصال با ethers.js ​

js
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://rpc.dotone.network");

const blockNumber = await provider.getBlockNumber();
console.log("Latest block:", blockNumber);

اتصال با web3.py ​

python
from web3 import Web3

w3 = Web3(Web3.HTTPProvider("https://rpc.dotone.network"))

print("Connected:", w3.is_connected())
print("Latest block:", w3.eth.block_number)

محدودیت‌های نرخ درخواست ​

نقاط پایانی عمومی RPC برای توسعه و استفاده‌ی سبک در دسترس هستند. برای اپلیکیشن‌های تولیدی که نیاز به توان عملیاتی پایدار دارند:

  • از یک نود اختصاصی یا نقطه‌ی پایانی RPC خصوصی استفاده کنید
  • در صورت امکان دسته‌بندی درخواست‌ها (batching) را پیاده‌سازی کنید
  • به‌جای polling، از اشتراک‌های WebSocket برای داده‌ی بلادرنگ استفاده کنید
  • پاسخ‌های داده‌ی ثابت یا کم‌تغییر (مثلاً تأییدیه‌های بلاک) را کش کنید

برای یکپارچه‌سازی‌های با حجم بالا، برای دسترسی به زیرساخت اختصاصی با تیم DotOne تماس بگیرید.


مراجع بیشتر ​