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

decentraland / atlas-server
42%

Build:
DEFAULT BRANCH: master
Repo Added 13 Jan 2023 05:55PM UTC
Token SipBXdcBfPBxOdNjifDZ3pmj881y3Je3j regen
Build 207 Last
Files 39
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 master
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • 1.6.0
  • 1.7.0
  • add-ai-agent-context-to-readme
  • chore/add-space
  • chore/bump-libs
  • chore/bump-node
  • chore/enhance-docs
  • chore/migrate-to-core-components
  • chore/pin-node-24-base-image
  • chore/readme-change
  • chore/trigger-deploy
  • chore/update-node-24
  • chore/update-node-to-24
  • docs/api
  • feat/add-release-job
  • feat/add-tracing-and-logging
  • feat/cache-tiles-s3
  • feat/cors
  • feat/feature-flag
  • feat/improve-atlas-cache
  • feat/instrument-http-requests-logger
  • feat/migrate-to-new-ci-infra
  • feat/redeploy-atlas-server
  • feat/remove-district-demarcation
  • feat/remove-district-tiles
  • feat/sanitize-estates-id
  • feat/tiles-with-trades
  • feat/trigger-build
  • feat/trigger-deploy
  • feat/try-to-use-s3
  • feat/update-graph-component
  • feat/use-node-18-alpine
  • fix/add-console-update
  • fix/add-last-modified-tests
  • fix/estates-trades-not-showing
  • fix/expiration-date-lands
  • fix/filter-nulled-rental-listings
  • fix/no-cache-on-last-updated
  • fix/parcel-updated-at
  • fix/re-trigger-deployment
  • fix/remove-lastModifiedHeader-temporary
  • fix/remove-modified-middleware
  • fix/remove-old-infra-code
  • fix/rental-listing-calculation
  • fix/response-body-leaks-and-dcl-bump
  • fix/save-metrics-of-all-updates
  • fix/small-change
  • fix/trade-status-v3-semantics
  • fix/trigger-redeployment
  • fix/udpdate-deps
  • fix/ulimit
  • fix/update-dep
  • fix/update-rentals-with-milliseconds
  • fix/update-schemas
  • fix/updated-at-calculation-ms
  • fix/use-seconds
  • fix/workflow
  • fzavalia-patch-1
  • master
  • refs/heads/master
  • refs/tags/1.0.0
  • refs/tags/1.0.1
  • refs/tags/1.1.0
  • refs/tags/1.13.17
  • refs/tags/1.2.0
  • refs/tags/1.2.1
  • refs/tags/1.3.0
  • refs/tags/1.3.1
  • refs/tags/1.3.10
  • refs/tags/1.3.11
  • refs/tags/1.3.12
  • refs/tags/1.3.13
  • refs/tags/1.3.14
  • refs/tags/1.3.15
  • refs/tags/1.3.16
  • refs/tags/1.3.18
  • refs/tags/1.3.19
  • refs/tags/1.3.2
  • refs/tags/1.3.3
  • refs/tags/1.3.4
  • refs/tags/1.3.5
  • refs/tags/1.3.6
  • refs/tags/1.3.7
  • refs/tags/1.3.8
  • refs/tags/1.3.9
  • refs/tags/1.4.0
  • refs/tags/1.4.1
  • refs/tags/1.5.0
  • refs/tags/1.5.1
  • refs/tags/1.5.2
  • security/pin-github-actions-sha

26 Aug 2026 07:06PM UTC coverage: 41.554% (+0.06%) from 41.494%
33003365802

push

github

web-flow
fix: apply the V3 trade status semantics to the map query (#144)

> ⚠️ **Deploy last.** This query now reads two columns other repos
create. See *Deploy order* — getting it wrong empties the map silently
rather than erroring.

## What

`atlas-server` is the second consumer of `squid_trades`, and its
trade-status query carried every defect just fixed in
`marketplace-server#395`. `getActiveTrades` feeds
`src/modules/map/component.ts`, so the symptom is **parcels and estates
showing as for sale when they are not**.

Found while auditing who actually reads that schema for the V3 rollout.
Nobody had looked at this query; the reviews on the marketplace PRs only
covered marketplace-server and the indexer.

## The five defects

**Cancellations counted any row, regardless of who cancelled.**
`cancelSignature` takes no signer check, and the contract scopes the
flag to `keccak256(caller, digest)` while settlement reads
`keccak256(signer, digest)` — so a stranger cancelling somebody's trade
is a no-op on chain. Counting it here meant anyone could grief a listing
off the map, using trade data the marketplace API publishes, while the
listing stayed settleable.

**Cancellations were matched only on `keccak256(signature bytes)`.** V3
keys them on the trade's EIP-712 digest, so a V3 cancellation would
never have resolved and cancelled V3 land would have stayed on the map
indefinitely.

**The signer index was matched on `address` alone.** A `signature_index`
row's identity is `address + contract + network`, so that returns
several rows, which splits one trade into several `GROUP BY` groups with
contradictory statuses. Because this query then keeps only `status =
'open'`, **the stale group is the one that survives.** This is the
defect that most directly puts a cancelled listing back on the map, and
it gets more likely with V3 live, since the same signer now holds an
independent counter per marketplace version.

**The contract index was a hardcoded list containing only ... (continued)

298 of 412 branches covered (72.33%)

Branch coverage included in aggregate %.

30 of 30 new or added lines in 1 file covered. (100.0%)

1488 of 3886 relevant lines covered (38.29%)

11.95 hits per line

Relevant lines Covered
Build:
Build:
3886 RELEVANT LINES 1488 COVERED LINES
11.95 HITS PER LINE
Source Files on master
  • Tree
  • List 39
  • Changed 37
  • Source Changed 1
  • Coverage Changed 37
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
33003365802 master fix: apply the V3 trade status semantics to the map query (#144) > ⚠️ **Deploy last.** This query now reads two columns other repos create. See *Deploy order* — getting it wrong empties the map silently rather than erroring. ## What `atlas-serv... push 26 Aug 2026 07:07PM UTC web-flow github
41.55
32498039887 fix/trade-status-v3-semantics fix: apply the V3 trade status semantics to the map query atlas-server is the second consumer of squid_trades and its query carried every defect just fixed in marketplace-server. Since getActiveTrades feeds the map, the symptom is parcels and est... Pull #144 21 Aug 2026 03:32PM UTC LautaroPetaccio github
41.55
30491631374 feat/remove-district-demarcation feat: remove the district tile type from the map The district data was already dropped from specialTiles.json (#142); this removes the encoding itself so it cannot come back: the purple fill in the map.png renderer, the isDistrict bit in the mini... push 29 Jul 2026 09:16PM UTC eordano github
41.55
28802230648 1.7.0 chore: remove district tiles from specialTiles.json (#142) ## Summary - Removes all 35,092 `type: "district"` tiles from `specialTiles.json` - District parcels with no on-chain owner will now be treated as ordinary unowned parcels (no special ti... push 06 Jul 2026 03:17PM UTC web-flow github
41.49
28556936904 master chore: remove district tiles from specialTiles.json (#142) ## Summary - Removes all 35,092 `type: "district"` tiles from `specialTiles.json` - District parcels with no on-chain owner will now be treated as ordinary unowned parcels (no special ti... push 02 Jul 2026 12:29AM UTC web-flow github
41.49
28534864537 feat/remove-district-tiles chore: strip district proximity data Pull #142 01 Jul 2026 05:13PM UTC decentraland-bot github
41.49
28534762317 feat/remove-district-tiles chore: empty district and contribution data Pull #142 01 Jul 2026 05:11PM UTC decentraland-bot github
41.49
28533957827 feat/remove-district-tiles chore: remove district tiles from specialTiles.json Pull #142 01 Jul 2026 04:57PM UTC decentraland-bot github
41.49
28442923921 feat/remove-district-tiles fix: cancel undrained response bodies and bump @dcl core-components/core-libs deps (#141) ## Summary This PR cancels an undrained undici response-body leak and bumps outdated `@dcl` core-components/core-libs dependencies to their latest versions... push 30 Jun 2026 12:06PM UTC web-flow github
41.49
28442935113 feat/remove-district-tiles chore: remove district tiles from specialTiles.json Pull #142 30 Jun 2026 12:06PM UTC decentraland-bot github
41.49
See All Builds (166)

Badge your Repo: atlas-server

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