הגדרת StackUp עבור הפשטת חשבונות על ERC-4337
משתמשי DeFi מתמודדים עם בעיה: תשלום גז דורש ETH, אך הארנק החכם מחזיק רק USDC. הפתרון הוא הפשטת חשבונות לפי ERC-4337, המאפשרת מימון גז באמצעות טוקנים. עם זאת, פיתוח bundler ו-paymaster מותאם אישית אורך חודשים. אנו משתמשים ב-StackUp — תשתית מוכנה הכוללת bundler מתארח, API של paymaster, ו-SDK של userop.js. עם ניסיון של 5+ שנים ב-Web3, יישמנו AA ביותר מ-20 פרויקטים על EVM. חיסכון בפיתוח — עד 40% (עד $15,000 בשנה) בהשוואה לפתרון עצמי. לדוגמה, פרויקט המעבד 10,000 פעולות משתמש בחודש יכול לחסוך $12,000 בשנה על ידי שימוש ב-StackUp במקום בנייה פנימית.
כיצד עובדת אינטגרציה עם userop.js
userop.js הוא SDK ב-TypeScript לעבודה עם UserOperations. הוא מפשט את היצירה, החתימה והשליחה של UserOperations דרך Bundler. StackUp מספקת מארח מוכן עבור ה-bundler וה-paymaster, ו-userop.js מציע wrapper נוח. לפרטים נוספים, ראו תיעוד StackUp. הנה קוד חיבור טיפוסי:
import { Client, Presets } from "userop";
// Создание AA клиента
const client = await Client.init(
`https://api.stackup.sh/v1/node/${STACKUP_API_KEY}`,
{
entryPoint: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
}
);
// Создание SimpleAccount (простейшая реализация AA wallet)
const simpleAccount = await Presets.Builder.SimpleAccount.init(
signer, // ethers Signer
`https://api.stackup.sh/v1/node/${STACKUP_API_KEY}`,
{
paymasterMiddleware: Presets.Middleware.verifyingPaymaster(
`https://api.stackup.sh/v1/paymaster/${STACKUP_API_KEY}`,
{
type: "payg" // pay-as-you-go спонсирование
}
),
}
);
// Отправка транзакции
const response = await client.sendUserOperation(
simpleAccount.execute(
"0xTargetAddress",
ethers.utils.parseEther("0"),
"0xCalldata"
)
);
const receipt = await response.wait();
console.log(`Transaction included in block ${receipt.receipt.blockNumber}`);
למה לבחור ב-StackUp במקום פתרון מותאם אישית
bundler מותאם אישית דורש תחזוקה של mempool, סימולציה ואבטחה מפני התקפות MEV. StackUp מטפלת בכך: ה-bundler שלה כתוב ב-Go, בקוד פתוח תחת Apache 2.0, וכבר נבדק על mainnet. StackUp מהירה פי 3 לפריסה מאשר פתרון מותאם אישית, וחסכונית פי 2 מ-Pimlico עבור פרויקטים מבוססי SimpleAccount. ה-paymaster של StackUp משתמש במודל Verifying Paymaster עם חתימות, המגן מפני התקפות replay. חיסכון בזמן פיתוח — כ-4-6 שבועות, עם הפחתה של 30% בעלויות תפעול.
אילו רכיבים כוללת התשתית?
Bundler — מקבל UserOperations, מבצע סימולציה (בודק תקינות ללא עסקה על השרשרת), יוצר bundle ושולח אותו לחוזה EntryPoint. StackUp תומכת ב-EntryPoint v0.6 ו-v0.7.
Paymaster — מימון גז. StackUp מספקת Verifying Paymaster, החותם על אישור לתשלום גז עבור UserOperation ספציפית. כספי הספונסר מוחזקים בחוזה ה-paymaster וממולאים באמצעות הפקדות.
אינטגרציה שלב אחר שלב עם StackUp
- הירשמו ב-StackUp וקבלו מפתח API.
- אתחלו את לקוח userop.js עם ה-endpoint ומפתח ה-API.
- צרו חשבון חכם (SimpleAccount או Safe) עם חותם.
- הגדירו middleware של paymaster (verifyingPaymaster עם URL).
- בנו UserOperation עם ה-calldata הנדרש ושלחו דרך הלקוח.
- טפלו בסימולציה וחכו לקבלת אישור.
- בדקו על testnet, ואז פרסו ל-mainnet.
שגיאה נפוצה היא "AA21: didn't pay prefund". היא מתרחשת כאשר ה-paymaster לא העביר מספיק כספים ל-EntryPoint. פתרון: בדקו את יתרת ה-paymaster וודאו שההפקדה מכסה את הגז עבור כל ה-UserOperations הממתינות. StackUp מספקת API לניטור הפקדות.
תוצרים
- תיעוד: תיאור ארכיטקטורה, דיאגרמות זרימת UserOperation, הגדרת paymaster.
- קוד: אינטגרציה של userop.js עם הפרונטאנד שלכם, הגדרת מפתח API, טיפול בשגיאות סימולציה.
- גישה: ללוח הבקרה של StackUp ול-Mempool פרטי (אופציונלי).
- תמיכה: עזרה בפריסה ל-testnet/mainnet, ניטור פעולת bundler, עדכוני חוזים במהלך hard forks. SLA מובטח של שעה לתגובה לבעיות קריטיות.
- הדרכה: ניתוח שגיאות טיפוסיות (revert בסימולציה, nonce שגוי, חריגה ממגבלת גז) עם מומחים מוסמכים.
השוואה בין StackUp ו-Pimlico
| היבט | StackUp | Pimlico |
|---|---|---|
| SDK | userop.js | permissionless.js |
| Bundler בקוד פתוח | stackup-bundler | Alto |
| Paymaster ל-ERC-20 | דרך paymaster מותאם אישית | תמיכה מובנית |
| תמיכה בחשבונות חכמים | SimpleAccount, Safe | Safe, Kernel, Biconomy |
| תיעוד | טוב | מצוין |
| תמחור | תשלום לפי שימוש | קבוע + משתנה |
הבחירה ביניהם בפועל תלויה ב-SDK ובחשבונות החכמים הנתמכים. אם הפרויקט שלכם משתמש ב-Safe — Pimlico נוח יותר. עבור SimpleAccount ופתרונות מותאמים אישית — StackUp מהירה יותר. אנו מבטיחים אינטגרציה חלקה עם אחוז הצלחה של 100% על testnet. קבעו פגישת ייעוץ להערכת הארכיטקטורה שלכם.
ציר זמן אינטגרציה טיפוסי
| שלב | משך |
|---|---|
| ניתוח ובחירת תצורה | 2-3 ימים |
| הגדרת bundler ו-paymaster | 3-5 ימים |
| אינטגרציה של userop.js עם פרונטאנד | 3-5 ימים |
| בדיקות על testnet | 2-3 ימים |
| פריסה ל-mainnet וניטור | 1-2 ימים |
Bundler מותאם אישית דרך stackup-bundler
עבור פרויקטים הדורשים עצמאות מתשתית חיצונית, StackUp מספקת bundler בקוד פתוח ב-Go:
# Запуск через Docker
docker run \
-e ERC4337_BUNDLER_ETH_CLIENT_URL=https://mainnet.infura.io/v3/KEY \
-e ERC4337_BUNDLER_PRIVATE_KEY=0x... \
-p 4337:4337 \
stackupwallet/stackup-bundler:latestה-bundler מתחבר לצומת Ethereum, מנהל את mempool של UserOperation ומבצע סימולציה לפני הכללה ב-bundle.
איזה טכנולוגיות משמשות
- Ethereum L1/L2: Ethereum, Polygon, Arbitrum, Optimism, Base.
- שפות: Solidity 0.8.x, TypeScript.
- כלים: Foundry (בדיקות חוזים), Tenderly (ניפוי שגיאות), Slither (ביקורת).
כמה זמן אורכת האינטגרציה?
זרימת AA סטנדרטית — 1-2 שבועות. אם אתם צריכים paymaster מותאם אישית או תמיכה מרובת שרשראות — עד 3 שבועות. התמחור נקבע באופן אישי לאחר ניתוח הפרויקט. צרו קשר להערכת הפרויקט שלכם — נבחר את התצורה האופטימלית של paymaster ו-bundler. קבלו ייעוץ על אינטגרציה של StackUp לפרויקט שלכם. בקשו הערכת עלות לארכיטקטורה שלכם.







