[Audit] Fee-collection events are the only handler not wrapped in a transaction, and worker inconsistency compounds UX-visible drift
メンテナーはふだん 7 日以内に返信
@d1a-m3n がすでに取り組んでいます。
2026年8月29日 から。
評価
この issue はまだ評価されていません。
説明
Filed from the second-wave repository audit (issue 37/100). See the audit summary for full category context.
- Location:
backend/src/workers/soroban-event-worker.ts:1000-1060(handleFeeCollected) - Problem: Unlike every other event handler in the file, this one performs its dedup check and its upsert as two separate top-level
prismacalls instead of oneprisma.$transaction, reopening a TOCTOU window the rest of the file was clearly designed to avoid. - Evidence: No
$transactionwrapper, in contrast to sibling handlers in the same file. - Suggested implementation: Wrap the dedup-check + upsert in
prisma.$transaction, matching the other handlers. - Acceptance criteria: A test simulating two near-simultaneous fee-collected events for the same tx confirms exactly one
StreamEventrow is created. - Difficulty: S
- Expected impact: Closes a duplicate-fee-event race visible to anyone reconciling fee revenue from the API.
- 主要言語
- TypeScript
- スター
- 18
- フォーク
- 250
- 平均マージ
- 5日 6時間
- マージ済み PR(30日)
- 83
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
LabsCrypt/flowfi のほかの issue
-
backend points: 150 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 7 日以内に返信
-
backend points: 150 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 7 日以内に返信
-
backend points: 150 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 7 日以内に返信
-
backend points: 150 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 7 日以内に返信
-
backend points: 150 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 7 日以内に返信
LabsCrypt/flowfi の issue をすべて見る
似ている issue
-
a10y a10y-audit ai-driven-qa claude
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
linagora/twake-directory-manager#219 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
type: bug
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
メンテナーはふだん 1 日以内に返信
-
0️⃣ phase/new
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
Pulse v7: buildPreferencesFromTelos() bypasses telosSectionOrFile(), renders empty on unified-TELOS installs対応中かも @zephyr91 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
danielmiessler/LifeOS#2393 ·
メンテナーはふだん 4 日以内に返信