בלוקצ'יין לא יכול להריץ פונקציות מתוזמנות בעצמו — זו אחת הבעיות הנפוצות ביותר שאנו נתקלים בהן. כאשר חוזה חכם צריך לאזן מחדש מאגר נזילות כל 24 שעות, לחלק תגמולי סטייקינג, או לחסל פוזיציות, מישהו חייב ליזום את העסקה מבחוץ. אנו משתמשים ב-Gelato Network — רשת מבוזרת של בוטים (מבצעים) שעוקבים אחר תנאים ושולחים עסקאות אוטומטית. הניסיון שלנו כולל למעלה מ-50 אינטגרציות של Gelato, ואנחנו מוכנים לקחת את הפרויקט שלך עד לסיומו.
אילו משימות פותר אוטומציה של חוזים חכמים?
תרחישים טיפוסיים: חיסול פוזיציות מתחת למים בפרוטוקולי הלוואות, איזון מחדש של מאגרי AMM, חלוקת תגמולי סטייקינג, סנכרון גשרים בין-רשתיים. כל אלה דורשים טריגר חיצוני, ו-Gelato מספקת פתרון עובד ללא תשתית משלך. למעלה מ-1000 עסקאות אוטומטיות ביום היא עומס טיפוסי לפרויקטים שלנו.
למה Gelato במקום keeper מותאם אישית?
בוט keeper מותאם אישית דורש VPS, ניטור ויתירות — שעות של עבודת DevOps. Gelato מספקת רשת מבוזרת עם ערבויות ביצוע וניטור מובנה דרך Tenderly. למשימות בתדירות של עד פעם בשעה, Gelato משתלמת יותר ופשוטה יותר. השוואה עם Chainlink Automation: Gelato בדרך כלל זולה ב-20-30% בנפחים בינוניים, וחיסכון בעמלות יכול להגיע ל-35%.
אילו מצבי פעולה מציעה Gelato?
Gelato Automate (גישה ישנה, Ops). צור משימה דרך ממשק משתמש או SDK, המבצע קורא לפונקציה שצוינה בלוח זמנים או לפי תנאי. תשלום ב-ETH מיתרת החוזה או בטוקן GELATO.
Web3 Functions (התקן הנוכחי). פונקציית JavaScript/TypeScript מחוץ לשרשרת שרצה על צומת של Gelato, יכולה לבצע בקשות HTTP, לקרוא נתונים מחוץ לשרשרת, ולהחזיר calldata לעסקה על השרשרת. זה פותר את הבעיה כאשר קבלת החלטות דורשת נתונים מחוץ לשרשרת — מחיר בבורסה מרכזית (CEX), תוצאת בקשת API, נתונים מ-The Graph.
Automate לעומת Web3 Functions
| קריטריון | Automate | Web3 Functions |
|---|---|---|
| לוגיקה | על השרשרת | מחוץ לשרשרת (JS/TS) |
| נתונים | רק על השרשרת | כל נתון (HTTP, API) |
| מורכבות | פשוטה | בינונית |
| עמלה | עמלה קבועה | ~10% מגז + עמלת חישוב |
| מתי נדרש | לוח זמנים, תנאי על השרשרת | החלטות המבוססות על נתונים חיצוניים |
השוואת עמלות Gelato
| מצב | עמלה | מתי משתלם |
|---|---|---|
| Automate | עמלה קבועה (ב-ETH/GELATO) | משימות קבועות עם תנאי פשוט |
| Web3 Functions | ~10% מעלות הגז + עמלת חישוב | החלטות מורכבות עם נתונים מחוץ לשרשרת |
| Relay | ~10% מעלות הגז | עסקאות ללא גז למשתמשים |
איך לשלב את Gelato ביום אחד?
אינטגרציה בסיסית דרך AutomateTaskCreator אורכת כ-4-6 שעות. ירושה מחוזה Gelato מאפשרת יצירת משימות פרוגרמטית.
דוגמת אינטגרציה של Automate (Solidity)
import {AutomateTaskCreator} from "@gelatonetwork/automate-sdk/contracts/AutomateTaskCreator.sol";
contract MyVault is AutomateTaskCreator {
bytes32 public rebalanceTaskId;
constructor(address _automate, address _taskCreatorProxy) AutomateTaskCreator(_automate, _taskCreatorProxy) {}
function startRebalancing() external onlyOwner {
ModuleData memory moduleData = ModuleData({
modules: new Module[](2),
args: new bytes[](2)
});
moduleData.modules[0] = Module.TIME;
moduleData.modules[1] = Module.PROXY;
moduleData.args[0] = _timeModuleArg(block.timestamp, 1 days);
moduleData.args[1] = _proxyModuleArg();
rebalanceTaskId = _createTask(
address(this),
abi.encodeCall(this.rebalance, ()),
moduleData,
address(0) // платим в ETH из контракта
);
}
function rebalance() external onlyDedicatedMsgSender {
// логика ребаланса
}
}import {AutomateTaskCreator} from "@gelatonetwork/automate-sdk/contracts/AutomateTaskCreator.sol"; contract MyVault is AutomateTaskCreator { bytes32 public rebalanceTaskId; constructor(address _automate, address _taskCreatorProxy) AutomateTaskCreator(_automate, _taskCreatorProxy) {} function startRebalancing() external onlyOwner { ModuleData memory moduleData = ModuleData({ modules: new Module[](2), args: new bytes[](2) }); moduleData.modules[0] = Module.TIME; moduleData.modules[1] = Module.PROXY; moduleData.args[0] = _timeModuleArg(block.timestamp, 1 days); moduleData.args[1] = _proxyModuleArg(); rebalanceTaskId = _createTask( address(this), abi.encodeCall(this.rebalance, ()), moduleData, address(0) // платим в ETH из контракта ); } function rebalance() external onlyDedicatedMsgSender { // логика ребаланса } } הוא modifier חשוב: רק Gelato יכולה לקרוא לפונקציה זו, לא כתובת שרירותית.
מה זה Gasless Relay ואיך ליישם אותו?
Gelato Relay מאפשר למשתמשים לשלוח עסקאות ללא ETH — Gelato משלמת את הגז, והחוזה מפצה אותה בטוקני ERC-20 דרך onlyDedicatedMsgSender:
import {GelatoRelayContextERC2771} from "@gelatonetwork/relay-sdk/contracts/GelatoRelayContextERC2771.sol";
contract GaslessNFT is GelatoRelayContextERC2771 {
function safeMint(address to) external onlyGelatoRelayERC2771 {
_mint(to, tokenId++);
_transferRelayFee(); // оплачиваем Gelato из баланса контракта
}
}חלק ERC2771: המשתמש חותם על עסקה מחוץ לשרשרת, Gelato מעבירה אותה דרך forwarder מהימן, והחוזה רואה את ה-_transferRelayFee() האמיתי דרך הקונטקסט של ERC-2771.
איך להשתמש ב-Web3 Functions ללוגיקה מחוץ לשרשרת?
סקריפט TypeScript רץ על צמתי Gelato ויכול:
import { Web3Function, Web3FunctionContext } from "@gelatonetwork/web3-functions-sdk";
Web3Function.onRun(async (context: Web3FunctionContext) => {
const { multiChainProvider, secrets } = context;
const provider = multiChainProvider.default();
// Получаем данные с внешнего API
const response = await fetch("https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd");
const { ethereum } = await response.json();
if (ethereum.usd < 2000) {
const contract = new ethers.Contract(VAULT_ADDRESS, VAULT_ABI, provider);
const callData = contract.interface.encodeFunctionData("triggerEmergency", []);
return { canExec: true, callData: [{ to: VAULT_ADDRESS, data: callData }] };
}
return { canExec: false, message: "Price above threshold" };
});
כמה עולה אוטומציה על Gelato?
Gelato גובה עמלה בנוסף לעלות הגז. עבור Automate: היתרה מתמלאת ב-ETH על החוזה או ב-Gelato Treasury. עבור Relay: עמלה של ~10% מעלות הגז. עבור Web3 Functions: עמלת חישוב נוספת. במשימות בעומס גבוה (חיסולים, ארביטראז'), Gelato מתחרה ב-Chainlink Automation וב-bots keeper מותאמים אישית. למשימות בתדירות בינונית (פעם בשעה עד פעם ביום), Gelato היא אופטימלית מבחינת פשטות האינטגרציה והעלות.
לצוות שלנו יש ניסיון של 7+ שנים בפיתוח בלוקצ'יין ויישמנו 30+ פרויקטים עם אוטומציה של חוזים חכמים. אנו מבטיחים שהאינטגרציה תושלם בזמן עם כיסוי בדיקות מלא.
מה כלול בעבודה
- ניתוח משימה: בחירת מצב (Automate, Web3 Functions, Relay)
- אינטגרציה של חוזה חכם: כתיבת מודולים, ירושה, הגדרות
- בדיקות על testnet (Sepolia, Mumbai, Arbitrum Goerli)
- אופטימיזציה של גז וקוד
- תיעוד והדרכת צוות
- תמיכה ל-30 יום לאחר הפריסה
לוחות זמנים ועלות
אינטגרציה בסיסית של Automate עם משימה מבוססת זמן: מיום אחד. Web3 Function עם לוגיקה מחוץ לשרשרת ו-Relay: מיומיים עד 3 ימים. העלות מחושבת באופן אישי לאחר הבהרת תדירות המשימה ומורכבות הלוגיקה מחוץ לשרשרת. צור קשר להערכת פרויקט חינמית — נכין אומדן תוך יום אחד.







