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

DanGould / rust-payjoin
88%
master: 87%

Build:
Build:
LAST BUILD BRANCH: request-handler-plain-data
DEFAULT BRANCH: master
Repo Added 20 Nov 2024 02:24AM UTC
Token qk8aGNJIhmCgxGLcROcgDKQBl6GdQAxdp regen
Build 691 Last
Files 67
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

LAST BUILD ON BRANCH request-handler-plain-data
branch: request-handler-plain-data
CHANGE BRANCH
x
Reset
Sync Branches
  • request-handler-plain-data
  • 1446-checklist-positional
  • 1718-nested-segwit-test
  • 24-name-audit
  • 402-ref-audit
  • 465-rm-relay-from-session-ctx
  • access-control
  • access-control-v2
  • add-agents-md
  • add-navigability-signposts
  • additive-cli-features
  • additive-danger-local-https
  • agent/ci-wasm-entropy-paths
  • agent/mailroom-otel-instance-id
  • ai-disclosure
  • arc-sc
  • async-standup-v2
  • avoid-uih-naming
  • bip77-v1-fallback-doc
  • bump-ohttp-relay-0.0.10
  • bump-payjoin-0-21
  • bump-payjoin-0.24.0
  • bump-payjoin-1-0-rc-6
  • bump-payjoin-1-1
  • bump-payjoin-cli-0-1-0
  • bump-payjoin-cli-1-0-rc-1
  • bump-payjoin-directory-0.0.2
  • check-fetch-status
  • check-for-transaction-rename
  • check-independent-features
  • ci-lockfile-binding-builds
  • cisa-psbt-carriage
  • cli-1-0-0-recut
  • coderabbit-refine-exceptions
  • coderabbit-review-drafts
  • coderabbit-strip-noise
  • codex/mailroom-fd-hygiene
  • complete-intourl
  • constrain-bitcoindrpcclient-lt-1010
  • contributing-readme
  • contributing-scope-security
  • dangould-key
  • dangould/1724-cli-transient-impl
  • dart-fetch-ohttp-keys
  • dart-locked-native
  • decap-error-rename
  • demo-sender-fallback
  • deprecate-v2-sender-new
  • deprecation-since-placeholder
  • directory-mod
  • doc-contrib-test
  • dont-set-path
  • dry-run/standup-comment-trigger
  • ensure-no-original-psbt-keypath
  • errant-url-endpoint
  • error-carveout
  • event-log-crate
  • explicit-err-conversions
  • feat/1314
  • feat/async-standup
  • feat/standup-comment-trigger
  • feat/v2-receiver-event-split
  • ffi-client-response-reuse
  • ffi-msrv-1.85.0
  • ffi-pjparam-receiver-pubkey
  • ffi-v1-send
  • fix-dlh
  • fix-flaky-prune-test
  • fix-output-substitution-import
  • fix-payjoin-publish-cycle
  • fix-previous-txout-witness-spoof
  • fix-send-resume
  • fix-standup-syntax
  • fix-test-flakiness
  • fix-test-utils-mailroom-version
  • fix-uih-avoidance
  • fix-uri-ext-case
  • fix/402-ref-audit
  • fix/402-typestate-docs
  • fix/794-msrv-clippy
  • fix/cli-println-bip78-terminology
  • fix/devshell-treefmt
  • fix/v2-replay-full-state
  • handle-post-err
  • handle-recv-contribution-err-as-unavailable
  • handle-v2-error
  • handle-v2-error-generic
  • hide-danger-local-https
  • hide-pr-template-checklist
  • inmemory-persister-single-owner
  • input-ownership-by-outpoint
  • into-url
  • json-error
  • lib-docs
  • lint-1.85.0
  • lint-docs
  • mailroom-emfile-resilience
  • mailroom-fd-hygiene
  • mailroom-geoip-connect-info
  • mailroom-metrics-privacy
  • mailroom-metrics-requests
  • mailroom-operators-list
  • mailroom-readme-telemetry-test
  • maintainers-team-review
  • master
  • min-feerate-broadcast
  • moddocs
  • no-uni-mod-distinction
  • nuget-oidc-publish
  • ohttp-fallback
  • ohttp-relay-intourl
  • ohttp-reqs-refactor
  • one-expiry-error
  • only-try-preserving-privacy
  • overnight/issue-1016
  • overnight/issue-1258
  • overnight/issue-1274
  • overnight/issue-855
  • payjoin-0.21.0
  • payjoin-0.22.0
  • payjoin-0.23.0
  • payjoin-0.24.0
  • payjoin-0.25.0
  • payjoin-1.0.0
  • payjoin-1.0.0-rc.0
  • payjoin-1.0.0-rc.1
  • payjoin-1.0.0-rc.2
  • payjoin-1.0.0-rc.3
  • payjoin-1.0.0-rc.4
  • payjoin-1.0.0-rc.5
  • payjoin-1.0.0-rc.6
  • payjoin-1.0.0-rc.7
  • payjoin-1.0.0-rc.8
  • payjoin-1.1.0
  • payjoin-1.2.0
  • payjoin-cli-1.0.0-rc.0
  • payjoin-cli-1.0.0-rc.1
  • payjoin-cli-1.0.0-rc.2
  • payjoin-directory-0-0-1
  • payjoin-directory-0.0.2
  • payjoin-ffi-0.25.0
  • payjoin-mailroom-0.1.0
  • payjoin-mailroom-0.1.2
  • payjoin-test-utils-0.0.0
  • persist-ohttp-keys
  • persist-payjoin
  • persister-cleanup-1519
  • pjos-to-0
  • poll-no-pause
  • pr-checklist
  • pre-1.0-uri-insulation
  • prepare-psbt-by-copy
  • propagate-config-err
  • receive-error-heirarchy
  • receiver-checked-amount-sums
  • receiver-fallback
  • recv-err
  • recv-state-transition-objects
  • refactor-receiver
  • refactor-sender
  • refactor-wantsfeerange
  • release-chain-head
  • reply-json
  • req-impl-visibility
  • request-handler-fixes
  • seal-state-trait
  • seen-input-after-save
  • sender-sighash-check
  • sender-sighash-signature-check
  • sep-receive-errors
  • separate-receive
  • separate-send-errors
  • separate-send-versions-p1
  • separate-send-versions-p2-v2
  • service-docker-compose
  • service-multi-listener
  • session4/issue-1227
  • session4/issue-1276
  • session4/issue-1300
  • session4/issue-1374
  • session4/issue-749
  • session4/standup-v2
  • session4/unify-short-id
  • sessionoutcome-doorkeeper
  • settlement-status
  • sighash-all-followups
  • spj-demo
  • spj-mailroom-queues
  • spj-queue-tokens
  • spj-static-session
  • spj-zk-admission
  • split-v1-psbt-contexts
  • test-utils
  • test-utils-no-bitcoind
  • test-utils-redis-follow
  • uniform-ohttp-payloads
  • update-bip78
  • url-no-idna
  • url-userinfo-host-confusion
  • v1-data-minimization
  • v1-feature-flag
  • v1-v2
  • v1context-visibility
  • workflow-build-deps

22 Oct 2026 10:40AM UTC coverage: 87.633%. First build
39767406840

push

github

DanGould
Return the key fetch order as plain data

fetch_ohttp_keys_with took the caller's HTTP fetch as a closure and
drove the loop itself, and the FFI wrapped that in an OhttpKeysFetcher
foreign trait, a result record and two error types. A binding app that
routes its traffic through Tor or a proxy had to adapt its client to
that trait to keep the key fetch on the same path as its posts.

RequestHandler::key_fetch_order returns the relay and directory pairs
to try, each directory over every relay that is not itself before the
next directory. The caller tries them in order with its own client and
pins the first directory that returns keys. Because the pairs are
grouped by directory, a caller that can tell a failure is the
directory's skips to the next directory, and one that can't retries
the directory over its other relays. The library loop could only do
the latter.

payjoin-cli loops over the order with payjoin::io. It can't yet tell
directory errors from relay errors, so it tries every pair. The FFI
exports key_fetch_order and a KeyFetch record, and drops the fetcher
trait, FetchedOhttpKeys, DirectoryFetchError and RequestHandlerError.

30 of 41 new or added lines in 2 files covered. (73.17%)

15760 of 17984 relevant lines covered (87.63%)

327.2 hits per line

Relevant lines Covered
Build:
Build:
17984 RELEVANT LINES 15760 COVERED LINES
327.2 HITS PER LINE
Source Files on request-handler-plain-data
  • Tree
  • List 67
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
39767406840 request-handler-plain-data Return the key fetch order as plain data fetch_ohttp_keys_with took the caller's HTTP fetch as a closure and drove the loop itself, and the FFI wrapped that in an OhttpKeysFetcher foreign trait, a result record and two error types. A binding app ... push 22 Oct 2026 11:06AM UTC DanGould github
87.63
See All Builds (673)

Badge your Repo: rust-payjoin

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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