ביליתם שעות בניפוי באג של חדירה חוזרת (reentrancy) על Fork מקומי של Hardhat, ובכל זאת ברשת המרכזית (mainnet) זה עדיין נשבר? Tenderly Simulator פותר את זה: מעקב ביצוע מלא עם שמות פונקציות, פרופיל גז לכל קריאה, ו-state override בקריאת API אחת. ההתקנה אורכת יום עבודה אחד ומקצרת את זמן הניפוי ב-30-50%.
אילו בעיות Tenderly Simulator פותר?
סיכון להתקפות חדירה חוזרת והלוואות בזק—ברשת המרכזית אי אפשר פשוט לקרוא לחוזה ולקבל מעקב. Tenderly Simulator מספק מעקב מחסנית מלא עם שמות פונקציות, קריטי לביקורת. אופטימיזציית גז—אתם רואים את הגז של כל קריאה פנימית, לא רק את המגבלה הכוללת. שגיאות חישוב AMM—סימולציה עם override ליתרות מאגר מאפשרת ניפוי של החלקה (slippage) ואובדן קבוע (impermanent loss). אנחנו משתמשים ב-Tenderly ביותר מ-50 פרויקטים, מ-ERC-4626 vaults ועד Compound forks. אנחנו מבטיחים שאחרי ההתקנה, הצוות שלכם יוכל לתפוס 90% מהשגיאות לפני הפריסה.
השוואה: Tenderly Simulator לעומת Hardhat fork
| מאפיין | Hardhat --fork |
Tenderly Simulator |
|---|---|---|
| פריסה | EVM מקומי | API בענן |
| State override | דרך קוד בדיקה | JSON בבקשה |
| פרופיל גז | מגבלה כוללת | לכל קריאה |
| Bundle | לא | כן |
| Virtual TestNet | לא | כן |
| מוכן ל-CI | נדרש Node ב-pipeline | קריאת API פשוטה |
Tenderly Simulator מהיר פי 10 להקמה מאשר Hardhat fork מקומי ומספק מעקב מפורט פי 5. Fork מקומי טוב לבדיקות ראשוניות, אבל לתרחישים מורכבים אנחנו ממליצים על Simulator.
איך Tenderly Simulator פותר את בעיית הניפוי?
דמיינו: החוזה החכם שלכם על Polygon זורק OutOfGas. מקומית אי אפשר לשחזר את מצב המאגר המדויק בגלל תצורה שונה. Tenderly Simulator מאפשר לכם לעקוף את האחסון של המאגר (למשל, לדמות שינויי רזרבות), להגדיר יתרת משתמש של 1000 MATIC, להריץ את הסימולציה, ולראות בדיוק איזו קריאה צרכה גז. זה מקצר את זמן הניפוי משעות לדקות. עם Tenderly Simulator, זמן האבחון של שגיאות OutOfGas יורד משעתיים ל-15 דקות.
למה Virtual TestNets עדיפים על Fork מקומי?
Virtual TestNet הוא Fork מתמשך של הרשת המרכזית עם כתובת RPC. אתם מתחברים אליו דרך MetaMask או wagmi כרשת רגילה. החזית (frontend) עובדת עם חוזים אמיתיים, ואתם רואים אינטראקציות בממשק המשתמש. המצב מתאפס לפי לוח זמנים—אידיאלי ל-CI, שבו כל ריצת בדיקה מתחילה עם מצב נקי. אין צורך להפעיל Anvil או לבזבז זמן על תצורת Hardhat. Virtual TestNet נוצר עם פקודה אחת וזמין דרך כתובת RPC, מהיר ב-80% מהקמת Fork מקומי.
| מאפיין | Virtual TestNet | Fork מקומי |
|---|---|---|
| פריסה | פקודה אחת (CLI) | התקנת Hardhat |
| משך חיים | לפי לוח זמנים | משך חיי התהליך |
| נגישות לחזית | כתובת RPC | localhost:8545 |
| איפוס מצב | לפי דרישה | הפעלה מחדש של התהליך |
Tenderly Simulator תומך בסימולציית bundle, המאפשרת לבדוק תרחישים מרובי-שלבים.
התקנת API
סימולציה בסיסית דרך Tenderly API:
const TENDERLY_API = 'https://api.tenderly.co/api/v1';
const headers = {
'X-Access-Key': process.env.TENDERLY_ACCESS_KEY!,
'Content-Type': 'application/json'
};
const response = await fetch(
`${TENDERLY_API}/account/${TENDERLY_USER}/project/${TENDERLY_PROJECT}/simulate`,
{
method: 'POST',
headers,
body: JSON.stringify({
network_id: '1', // mainnet
from: userAddress,
to: contractAddress,
input: encodedCalldata,
gas: 500000,
gas_price: '0',
value: '0',
save: true, // сохранить симуляцию в дашборде
state_objects: { // override баланса пользователя
[userAddress]: {
balance: '0xDE0B6B3A7640000' // 1 ETH
}
}
})
}
);
const simulation = await response.json();
console.log('Gas used:', simulation.transaction.gas_used);
console.log('Status:', simulation.transaction.status); // true/false
התקנת Tenderly Simulator שלב-אחר-שלב ל-CI
שלב 1. צרו פרויקט ב-Tenderly והשיגו Access Key.
שלב 2. כתבו סקריפט סימולציה לעסקאות טיפוסיות: deploy, swap, staking. השתמשו ב-state_objects למקרי קצה.
שלב 3. הוסיפו שלב ל-pipeline שלכם (GitHub Actions, GitLab CI, או CircleCI) עם המשתנה TENDERLY_ACCESS_KEY. במקרה של כישלון סימולציה, ה-pipeline נעצר.
דוגמה לתצורת GitHub Actions
- name: Simulate deployment transaction env: TENDERLY_ACCESS_KEY: ${{ secrets.TENDERLY_ACCESS_KEY }} run: npx ts-node scripts/simulate-deploy.ts Virtual TestNets: תחליף ל-Fork מקומי
Tenderly Virtual TestNets (לשעבר Tenderly Forks) הם Forks מתמשכים של הרשת המרכזית עם נקודת קצה RPC. התחברו דרך MetaMask או wagmi כרשת רגילה ובדקו ישירות בדפדפן עם ממשק משתמש אמיתי. צרו Virtual TestNet דרך CLI:
tenderly devnet spawn-rpc \ --template mainnet \ --project my-project \ --account my-account מחזיר כתובת RPC. הוסיפו לתצורת wagmi:
const virtualMainnet = defineChain({
id: 1,
name: 'Virtual Mainnet',
rpcUrls: {
default: {
http: [process.env.TENDERLY_VIRTUAL_TESTNET_RPC!]
}
}
});
המצב מתאפס לפי בקשה או לפי לוח זמנים—נוח ל-CI, שבו כל ריצת בדיקה מתחילה עם מצב נקי.
מה כלול בהתקנה
אנחנו מספקים תצורת פרויקט Tenderly ומפתחות API (עם גישה ללוח הבקרה), סקריפטים לסימולציה של 3-5 עסקאות טיפוסיות, אינטגרציית CI (GitHub Actions, GitLab CI, CircleCI), Virtual TestNet עבור ה-Fork של הרשת המרכזית שלכם, ותיעוד. קבלו ייעוץ—ההתקנה תקצר את זמן הבדיקות ב-30-50% ותפחית את הסיכון לדוחות באגים יקרים. צרו קשר להערכת הפרויקט שלכם—נבחר את התצורה האופטימלית למחסנית הטכנולוגית ולתקציב שלכם.
ניסיון ואחריות
10+ שנים בפיתוח בלוקצ'יין, 50+ פרויקטים על Ethereum, Polygon, Arbitrum. אנחנו מבטיחים שהתקנת Tenderly תקצר את זמן הבדיקות ב-30-50% ותפחית את הסיכון לדוחות באגים יקרים. בקשו התקנה—קבלו ייעוץ חינם.







