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

vocdoni / vocdoni-node / 29347360116
63%

Build:
DEFAULT BRANCH: main
Ran 14 Jul 2026 04:06PM 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

14 Jul 2026 03:54PM UTC coverage: 62.889% (+0.06%) from 62.832%
29347360116

push

github

web-flow
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%)

5 existing lines in 3 files now uncovered.

17260 of 27445 relevant lines covered (62.89%)

37884.36 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
2
38.32
-0.51% apiclient/account.go
2
68.43
-0.48% api/accounts.go
1
60.7
-0.32% cmd/end2endtest/account.go
Jobs
ID Job ID Ran Files Coverage
1 unit - 29347360116.1 14 Jul 2026 04:06PM UTC 168
51.01
GitHub Action Run
2 integration - 29347360116.2 14 Jul 2026 04:06PM UTC 175
51.46
GitHub Action Run
Source Files on build 29347360116
  • Tree
  • List 184
  • Changed 9
  • Source Changed 0
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 0fadb29d on github
  • Prev Build on main (#29344815132)
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