• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vocdoni / vocdoni-node / 29808649834
63%
main: 63%

Build:
Build:
LAST BUILD BRANCH: feat/vote-memo
DEFAULT BRANCH: main
Ran 21 Jul 2026 07:08AM UTC
Jobs 2
Files 184
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Jul 2026 06:56AM UTC coverage: 62.908% (+0.2%) from 62.659%
29808649834

push

github

lucasmenendez
feat: batch transaction endpoint (POST /chain/transactions/batch) (#1420)

* feat(api): add POST /chain/transactions/batch

Submit multiple pre-signed transactions in one call, in order. Solves the
sequencing pain of creating several dependent processes: the account nonce and
the ProcessIndex-derived electionID only advance on commit, so today a client
must wait for A to commit before it can build B with the right nonce/id.

Behavior: ordered, fail-fast. The first transaction that fails to submit goes to
`failed` and submission stops; the remaining items go to `pending` (they share
the sender's now-broken nonce sequence and cannot commit). Successfully-broadcast
items go to `submitted`. Every input item is returned in exactly one group, and
each NewProcess item carries its predicted `processId` (computed server-side via
processid.BuildProcessID with a per-creator positional delta, matching what the
chain assigns in ordered commit).

`submitted` means mempool-accepted, NOT block-confirmed — documented so callers
confirm on-chain and retry. The grouping/fail-fast logic is factored into
classifyTransactionBatch (injectable submit/id funcs) and unit-tested.

* feat(apiclient): add SendTxBatch for the batch endpoint

Thin client for POST /chain/transactions/batch: submit several marshaled
SignedTx at once and get back the submitted/failed/pending grouping. Callers
build the transactions with contiguous nonces (and predicted processIds).

* api: address review comments on the batch tx endpoint

- Split the shared Transaction type out of the batch contract: request items use a
  dedicated TransactionPayload{payload} (documented, not swaggerignore) and response
  items use a dedicated TransactionBatchItem{hash,processId,code,error}. This fixes
  the OpenAPI request schema (payload was omitted) and tightens both contracts; the
  Error field is no longer bolted onto the shared Transaction type.
- Return a dedicated ErrTransactionBatchEmpty (4060) for an empty b... (continued)

106 of 139 new or added lines in 2 files covered. (76.26%)

77 existing lines in 1 file now uncovered.

17265 of 27445 relevant lines covered (62.91%)

37861.69 hits per line

Uncovered Changes

Lines Coverage ∆ File
20
48.25
4.86% api/chain.go
13
59.19
-2.97% apiclient/helpers.go

Coverage Regressions

Lines Coverage ∆ File
77
72.85
2.12% vocone/vocone.go
Jobs
ID Job ID Ran Files Coverage
1 integration - 29808649834.1 21 Jul 2026 07:08AM UTC 175
51.48
GitHub Action Run
2 unit - 29808649834.2 21 Jul 2026 07:08AM UTC 168
51.01
GitHub Action Run
Source Files on build 29808649834
  • Tree
  • List 184
  • Changed 16
  • Source Changed 0
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • d58fde8e on github
  • Prev Build on release-lts-1 (#20306013426)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc