You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The frontend's batch task-creation flow (poa-frontend PR #390) submits a single createTasksBatch(bytes32 pid, CreateTaskInput[] tasks) UserOp through the org's PaymasterHub. The paymaster rejects this call because the function selector is not in the org's allowed-selectors list — single createTask works fine because it is in the auto-whitelist, but the batch entry point was never added.
Both paymaster entries reject; self-funded fallback also fails (smart account has no xDAI). The batch UserOp itself is well-formed (one tx for N tasks, IPFS metadata uploaded, optimistic UI rolls back cleanly on failure) — the only thing missing is the paymaster permission.
Fix
In src/OrgDeployer.sol:
_appendTaskManagerRules — append a 13th rule with selector keccak256(\"createTasksBatch(bytes32,(uint256,bytes,bytes32,address,uint256,bool)[])\")[0:4] (= 0xc18aa1c9). Confirm the canonical struct ordering against CreateTaskInput in TaskManager.sol.
_buildDefaultPaymasterRules — bump the TaskManager(12) comment to TaskManager(13) and change uint256 count = 39; → uint256 count = 40;.
That covers all new org deployments. Existing orgs still need a backfill — they were deployed before createTasksBatch existed, so their PaymasterHub rules are frozen at the old set. Suggested approach: either
piggy-back on script/upgrades/UpgradeTaskManagerCreateTasksBatch.s.sol to also call PaymasterHub.setRules on each known org, or
ship a small dedicated script (UpgradeAddBatchTaskPaymasterRule.s.sol) that admins can run per-org.
Test6 (0x263b2b29...4181f6b) is the immediate blocker — without backfill there, the frontend feature can't be exercised on the staging org.
Related
Frontend PR: poa-frontend#390 (feat(tasks): batch task creation via createTasksBatch with drafts mode)
Problem
The frontend's batch task-creation flow (poa-frontend PR #390) submits a single
createTasksBatch(bytes32 pid, CreateTaskInput[] tasks)UserOp through the org's PaymasterHub. The paymaster rejects this call because the function selector is not in the org's allowed-selectors list — singlecreateTaskworks fine because it is in the auto-whitelist, but the batch entry point was never added.Repro (Test6 on Gnosis, passkey path, 3 drafts):
Both paymaster entries reject; self-funded fallback also fails (smart account has no xDAI). The batch UserOp itself is well-formed (one tx for N tasks, IPFS metadata uploaded, optimistic UI rolls back cleanly on failure) — the only thing missing is the paymaster permission.
Fix
In
src/OrgDeployer.sol:_appendTaskManagerRules— append a 13th rule with selectorkeccak256(\"createTasksBatch(bytes32,(uint256,bytes,bytes32,address,uint256,bool)[])\")[0:4](=0xc18aa1c9). Confirm the canonical struct ordering againstCreateTaskInputinTaskManager.sol._buildDefaultPaymasterRules— bump the TaskManager(12) comment to TaskManager(13) and changeuint256 count = 39;→uint256 count = 40;.That covers all new org deployments. Existing orgs still need a backfill — they were deployed before
createTasksBatchexisted, so their PaymasterHub rules are frozen at the old set. Suggested approach: eitherscript/upgrades/UpgradeTaskManagerCreateTasksBatch.s.solto also callPaymasterHub.setRuleson each known org, orUpgradeAddBatchTaskPaymasterRule.s.sol) that admins can run per-org.Test6 (
0x263b2b29...4181f6b) is the immediate blocker — without backfill there, the frontend feature can't be exercised on the staging org.Related
feat(tasks): batch task creation via createTasksBatch with drafts mode)🤖 Generated with Claude Code