Changelog
All notable changes to this project will be documented in this file.
[Unreleased]
[0.16.23] - 2026-02-24
SDK Code Integrity Hash: 9b02e91aaae2081b68b8ddfcf4c3dd52d450b4f368a8746b5896e0024e441db7(Excludes metadata/markdown to ensure stability / 排除文档文件以确保哈希稳定)
⛽ Gas Fee Strategy (PaymasterClient)
- [FIX] Testnet/Mainnet Split Gas Pricing:
- Testnets (Sepolia, OP-Sepolia, Anvil, chainId 11155111/11155420/31337): apply
0.5 Gweifloor onmaxPriorityFeePerGas/1.0 Gweifloor onmaxFeePerGas. FixesWaitForUserOperationReceiptTimeoutErrorcaused by Alchemy bundler's minimum fee requirement being higher than OP Sepolia's near-zero network fee. - Mainnet: pure dynamic
estimateFeesPerGas() × 1.2(reduced from 1.5× — saves ~20% on reported maxFee while maintaining sufficient overhead for OP FIFO sequencer). - Strategy applied in both
estimateUserOperationGasandsubmitGaslessUserOperation. - Added diagnostic log:
[PaymasterClient] Gas Pricing: TESTNET (0.5 Gwei floor) | priority=... maxFee=...
- Testnets (Sepolia, OP-Sepolia, Anvil, chainId 11155111/11155420/31337): apply
- [FIX] Retry Loop Extended: max attempts 3→5 (
attempt < 4guard), handles compound PVG + fee bump errors within a single retry pass.
🧰 Keeper (Price Updater)
- [FIX]
cast sendHang Prevention:runCastSend()now applies a hard 90-secondSIGKILLtimeout. Previously--timeout 60only controlled receipt polling, not the subprocess itself—causing the keeper to block indefinitely when Alchemy rate-limitedeth_estimateGas. - [FIX] Explicit Gas Price: before each
sendUpdate, keeper fetchesgetGasPrice()and passes it via--gas-pricetocast send, eliminating cast's owneth_estimateGascall (which was the source of the hang). - [IMPROVED] Print on-chain
priceStalenessThreshold()for both SuperPaymaster and PaymasterV4 during INIT. - [IMPROVED] Keeper anomaly docs: Chainlink stale + external/Chainlink deviation + external short-term volatility alerts documented.
🌐 Network Config
- [FIX] OP Sepolia
blockExplorerURL changed fromoptimism-sepolia.blockscout.com→sepolia-optimism.etherscan.io. Affects all scripts/tests that usegetTxUrl('op-sepolia', ...).
📊 Analytics (Paper3 / Paper7)
- [ADDED]
packages/analytics/data/paper_gas_op_mainnet/2026-02-17/: PaymasterV4 (n=36) and SuperPaymaster (n=43) baseline CSVs with strict single-UserOp + ERC20-transfer filter. - [ADDED]
packages/analytics/data/paper_gas_op_mainnet/2026-02-18/: Relaxed-filter datasets with sender field;super_t2_sender.csv(n=50) satisfies Paper3 SuperPaymaster sample target. - [ADDED]
packages/analytics/data/industry_paymaster_baselines.csv: Alchemy Gas Manager (n=50, mean=257k gas) and Pimlico ERC-20 PM (n=50, mean=387k gas) on-chain baselines for industry comparison. - [ADDED]
packages/analytics/data/gasless_metrics_detailed.csv: 21 records with full L1/L2 fee decomposition (L2GasUsed, L1GasUsed, L1FeesPaid, L2FeesPaid, ActualGasUsed). - [ADDED] Paper7 exclusive datasets: credit cycle JSON records and liquidity velocity simulation CSVs under
data/paper7_exclusive/. - [ADDED]
packages/analytics/run_paper7_exclusive_data.shfor Paper7 data pipeline. - [CHANGED]
gasless_data_collection.csv(v1): +31 rows;gasless_data_collection_v2.csv: +28 rows including T1=22, T2_SP_Credit=22, T5=20. - [ADDED]
scripts/collect_paymaster_baselines.ts: reproducible on-chain event collection with--strict-transfer,--single-userop,--n,--append,--dedupeflags. - [ADDED]
scripts/collect_eoa_erc20_baseline.ts: raw EOA ERC20 transfer baseline for comparison. - [ADDED]
scripts/compute_cost_summary.ts: aggregation script for cost breakdown tables.
📚 Docs
- [CHANGED] Regenerated API markdown output under
docs/api/. - [ADDED]
docs/guide/keeper.md: keeper quickstart, anomaly detection, Telegram setup.
🗂️ Analytics Consolidation
- [REFACTOR] Moved all data collection scripts from
scripts/root intopackages/analytics/scripts/(git mv, history preserved):collect_paymaster_baselines,collect_eoa_erc20_baseline,collect_industry_baseline,compute_cost_summary,gasless-collect,paper7-exclusive-data,paper7_credit_loop,paper7_reputation_credit,run_analytics_coordinator,run_paper7_exclusive_data.sh,fetch-tx-hashes - [ADDED]
packages/analytics/docs/OP_Mainnet_Gas_Analysis_Report.md: gas cost evidence for Paper3/Paper7 (L1/L2 breakdown, PVG analysis, industry comparison, Mermaid pie charts). - [UPDATED]
packages/analytics/README.md: new directory tree, updated all command paths topackages/analytics/scripts/.... - Note: Root shell scripts (
run-keeper-main.sh,run-optimism-tx-data.sh, etc.) are unaffected — they only callscripts/l4-*.tsandscripts/keeper.tswhich remain in place.
🔒 SDK Integrity
SDK Code Integrity Hash: cebb1de2edab0fb63cd47684ab977488410262fa50e485045abc5901894a3f6f(Excludes metadata/markdown to ensure stability / 排除文档文件以确保哈希稳定)
[0.16.22] - 2026-02-11
SDK Code Integrity Hash: 89da8c80ebe6ad8b06adbd4946a00817b18ae79296550709b20bd9ca3af424f9(Excludes metadata/markdown to ensure stability / 排除文档文件以确保哈希稳定)
🌍 Multi-Chain & Infrastructure
- [FEATURE] Optimism Mainnet Canonical Addresses:
- Embedded canonical contract addresses for Optimism (Chain ID: 10) in
@aastar/core. NETWORK=optimismnow resolvesCHAIN_ID=10by default whenCHAIN_IDis not provided.
- Embedded canonical contract addresses for Optimism (Chain ID: 10) in
[0.16.21] - 2026-02-11
SDK Code Integrity Hash: 8d5b71dda17e2cb746e4a70a98020b9c7a4f2b390a82804f7e5924b0bf5a51d5(Excludes metadata/markdown to ensure stability / 排除文档文件以确保哈希稳定)
⚡ Gasless Execution
- [FIX] Paymaster V4 Cached Price Staleness:
PaymasterClientnow treats stalecachedPriceas invalid.- Testnets auto-refresh via
updatePrice()when needed; mainnet requires a running keeper.
- [FIX] Native UserOp Gas Defaults:
- Reduced
UserOpScenarioType.NATIVEverificationGasLimitto a more realistic default.
- Reduced
🧰 Tooling & Regression
- [ADDED] EIP-2537 precompile verification script and historical check dataset.
[0.16.20] - 2026-02-07
SDK Code Integrity Hash: 0a9c8a4a778bb1b64fac6fd29d8a61b2f9b02566f33b2de65e2c26e536f9fff8(Excludes metadata/markdown to ensure stability / 排除文档文件以确保哈希稳定)
🌍 Infrastructure & Distribution
- [FEATURE] Canonical Address Solidification:
- Hardcoded canonical contract addresses for Sepolia and OP Sepolia within
@aastar/core. - SDK is now self-contained and ready for NPM distribution without requiring local JSON configuration files.
- Maintained三级优先级 (ENV > Local Config > Canonical Defaults) to support flexible development.
- Hardcoded canonical contract addresses for Sepolia and OP Sepolia within
- [FIX] SuperPaymaster Price Refresh:
- Fixed "UserOperation expired" errors by enabling automated owner-based price refreshes in
l4-setup.ts. - Added Chainlink fallback logic for robust price synchronization on testnets.
- Fixed "UserOperation expired" errors by enabling automated owner-based price refreshes in
🛡️ Integrity
- [ADDED] SDK Source Integrity Monitoring:
- Introduced a unique SHA-256 hash for the entire SDK source tree to ensure verifiable releases.
[0.16.17] - 2026-02-07
🌍 Infrastructure & Compatibility
- [FEATURE] Universal Browser Support:
- Refactored
@aastar/coreto support dual entry points viapackage.jsonexports. - Browser: Adds
dist/index.js(Pure ESM) which is free of Node.js specific code (createRequire,fs), ensuring seamless integration with Vite/Next.js. - Node.js: Adds
dist/index.node.jswhich automatically loads localconfig.{network}.jsonfor backward compatibility. - Refactored
constants.tsto support dynamic configuration injection viaapplyConfig().
- Refactored
🛡️ SDK Integrity Verification
IMPORTANT
Security First: To ensure you are using an official release and protect your private keys, always verify the integrity of the SDK code immediately after installation.
Current Code Integrity Hash (v0.16.22): 89da8c80ebe6ad8b06adbd4946a00817b18ae79296550709b20bd9ca3af424f9
To verify, run this stable command (excludes non-code markdown files):
git ls-files -z | grep -zvE '\.md$' | xargs -0 sha256sum | sha256sumThe resulting hash must match the one listed in the Changelog.
[0.16.14] - 2026-01-24
🌍 Multi-Chain & Infrastructure
- [FEATURE] Standardized Config Loader:
- Restructured
config.tsto implement a robust multi-chain loading priority. - Internal Protocol Contracts (Registry, Paymasters, GToken) now strictly prioritize
config.{network}.json. - Infrastructure Contracts (EntryPoint, PriceFeed) and URLs (RPC, Bundler) are now sourced primarily from
.env.{network}.
- Restructured
- [FIX] Hardcoded Dependencies Cleanup:
- Successfully removed all remaining hardcoded
0xaddresses andsepoliastring literals across alltests/andexamples/scripts. - Every script now supports the
--networkparameter for dynamic environment switching.
- Successfully removed all remaining hardcoded
- [REPAIR] Reputation Activity Metrics: Corrected the
opNamelookup string inl4-reputation-tiers.tsto align with the latestl4-setup.tsstate files.
⚡ Gasless Execution Efficiency
- [IMPROVED] SuperPaymaster Verification Tuning:
- Implemented "Dynamic Nominal Gas Tuning" in
SuperPaymasterClientto optimizepaymasterVerificationGasLimit. - Resolved "Efficiency too low" (AA30) errors on Alchemy/Optimism-Sepolia by maintaining a strict balance between execution safety and bundler efficiency ratios (>= 0.4).
- Implemented "Dynamic Nominal Gas Tuning" in
[0.16.13] - 2026-01-23
🛡️ Security & Stability
- [SECURITY] Strict Address Resolution:
- Enforced strict environment variable lookup for third-party contract addresses (
entryPoint,simpleAccountFactory,priceFeed) on non-Anvil networks. - Eliminated fallback to outdated
config.jsonfiles to prevent deployment misconfigurations.
- Enforced strict environment variable lookup for third-party contract addresses (
- [SECURITY] Token Transfer Limits:
- Updated ABI to reflect new
MAX_SINGLE_TX_LIMITenforcement inxPNTsToken. SDK transactions respecting standard limits will continue to work; anomalous high-value transfers may now revert at the contract level.
- Updated ABI to reflect new
- [SECURITY] Operator Firewall:
- Updated ABI to reflect
autoApprovedSpenderslogic.
- Updated ABI to reflect
⚙️ Core Improvements
- [FIX] xPNTsToken Initialization: Adjusted factory logic to support EIP-1167 Minimal Clones using
initialize()pattern. - [SYNC] Contract ABIs: Synchronized all ABIs with
SuperPaymasterv3.6.3, including new governance functionsrenounceFactoryandemergencyRevokePaymaster.
[0.16.11] - 2026-01-19
📊 Gas Analytics & Reporting (New Package)
- [NEW] Added
@aastar/analyticspackage for comprehensive gas analysis. - [FEATURE]
CostCalculator: Calculates true L1/L2 gas costs, protocol profit (10% premium + buffer), and user savings. - [FEATURE]
AttributionAnalyzer: Simulates L2 costs (Optimism model) to provide "Apple-to-Apple" competitiveness comparisons. - [REPORT]
gas-analyzer-v4.ts: Generates detailed reports showing ~28% protocol profit margin and ~400x savings vs. Ethereum L1.
SDK & Core Enhancements
- [FIX] Anni Gasless Fix: Updated
l4-setup.tsto useupdatePriceDVTfor refreshing stale SuperPaymaster price cache, preventing "UserOperation expired" errors. - [FIX] Duplicate Build Fix: Resolved merge conflicts and duplicate identifiers in
packages/coreactions (e.g.,contracts.ts,actions/index.ts). - [FIX] Build System: Removed residual
*.test.tsfiles in modification directories to ensure cleantscbuilds.
Regression & Testing
[IMPROVED]
L4 Regression: Full automation for Setup -> Funding -> Gasless Transactions -> Analytics.[FEATURE]
DVT Price Update: Integrated DVT signature generation in test setup to simulate authenticated price updates.[BREAKING] Decoupled development and production build configurations.
- Added
tsconfig.build.jsonfor strictly clean production builds (pnpm build). - Updated root
tsconfig.jsonto retainpathsmappings for rapid development (tsx). - Updated all
packages/*/tsconfig.jsonto extend the build configuration.
- Added
Fixed
packages/corebuild output to correctly generate type definitions (.d.ts).
SDK Core (@aastar/core)
- [CHANGED]
BaseClientvisibility update.- Changed
clientandgetStartPublicClientfromprotectedtopublicto allow easier extension and debugging in consuming applications.
- Changed
- [Check] Standardized ABI exports.
- Updated
abis/index.tsto support both array-based and object-based ({ abi: [] }) ABI JSON formats, resolving compatibility issues with external artifacts.
- Updated
SDK Operator (@aastar/operator)
- [FIXED] ABI Property Access.
- Fixed runtime error where
PaymasterOperatorClientattempted to access.abion a raw ABI array. Now uses the standardizedPaymasterABIexport.
- Fixed runtime error where
SDK EndUser (@aastar/enduser)
- [FIXED]
UserClientbuild failure due toBaseClientvisibility issues.
Testing & Regression
- [ADDED]
run_sdk_regression.shnow supports a strictsepoliaenvironment mode with correct.envloading (set -a). - [ADDED]
extract_v3_abis.shintegration for reliable ABI synchronization from the SuperPaymaster project.
