arrow_backRetour aux issues
Wayfare-labs/wayfare
#35
Débutant
Ouvrirarrow_forward
Débutant
Ouvrirarrow_forward
Débutant
Ouvrirarrow_forward
Check that SEP-24 /info lists the asset the TOML claims
ecoDébutant
help wanted
area:corridor
difficulty:medium
descriptionDescription
Written to the standard set by #33 — read that issue first for the expected level of detail and the acceptance criteria every check shares.
## What
Check that an anchor's declared SEP-24 `/info` endpoint lists the asset its `stellar.toml` claims to support.
## Why it matters
An anchor can declare a currency in its TOML and offer no actual deposit or withdrawal path for it. The TOML is a claim; `/info` is the operational answer. Where they disagree, the asset is listed but not served — which a user discovers only after committing to a transfer.
This is the same declared-versus-actual gap `sep10.endpoint-responds` covers for authentication.
## Which layer
**Layer 1 — observable fact.**
## Exactly where the code goes
- **New file:** `checks/sep24_info_lists_asset.go`
- Tests appended to `checks/checks_test.go`
- Register in `Runner.Default()` in `checks/runner.go`
- Model it on `checks/sep10_endpoint.go` — same shape: read a declared endpoint, probe it, compare
## Where the data comes from
`TRANSFER_SERVER_SEP0024` from the TOML (already parsed into `anchor.TOML`), then `GET {server}/info`.
SEP-24: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0024.md
## What "unmeasurable" means here
- No `TRANSFER_SERVER_SEP0024` declared → UNABLE-TO-DETERMINE. The anchor offers no SEP-24; that is a position, not a fault
- Endpoint unreachable or non-200 → **determined failure**. The anchor published this address (see the "whose failure is it" section of docs/checks.md)
- `/info` responds but omits the asset → **determined failure**: declared in one place, absent in the other
## Acceptance criteria
- [ ] Implements the Check contract in docs/checks.md
- [ ] Returns UNABLE-TO-DETERMINE when SEP-24 is simply not offered
- [ ] Records evidence: the endpoint probed and what it listed
- [ ] Uses `Runner.client()` so it inherits the SSRF guard — this probes an anchor-published URL
- [ ] Table tests from recorded bytes; no live network
- [ ] Negative test: `/info` responding without the asset
- [ ] Distinguishes deposit-enabled from withdraw-enabled rather than collapsing them
- [ ] No new third-party dependencies
- [ ] gofmt, vet, test -race, golangci-lint clean
- [ ] Does not change the headline integrity state or verdict thresholds
## Out of scope
Do not attempt a deposit or withdrawal. This is read-only, like everything else here. Nothing in `route/`, `dex/`, `sep38/`, `runstore/runstore.go`.
## How to verify locally
```bash
make offline-test
go test ./checks/ -run TestSEP24 -v
```
Issues similaires
medik8s/fence-agents-remediation
star18
Poids du dépôt moyen
v0.8.0 starts a cluster-scoped Secret informer despite namespace-scoped Secret RBAC
## Description While testing Fence Agents Remediation (FAR) v0.8.0, I observed the manager repeatedly attempting to li…
Go
good first issue
Wayfare-labs/wayfare
star1
Poids du dépôt léger
Check that an issuer's home_domain round-trips to the same stellar.toml
Written to the standard set by #33 — read that issue first for the expected level of detail and the acceptance criteria…
Go
help wanted
area:corridor
Wayfare-labs/wayfare
star1
Poids du dépôt léger
Report auth_immutable: whether an issuer's flags can still change
> **This issue is the reference standard.** Every other check issue links back here for the expected level of detail. I…
Go
help wanted
good first issue