← all adapters

chainlink-style

simulates Chainlink Data Feeds + Functions + Automation 1.0

restadapter v0.2.021 routes

verification

VMVM tier — no SDK suite yet· surface 21 · not implemented 6 · differs 7

use it

# add to stunt.yaml
services:
  chainlink:
    adapter: embedded:chainlink-style

# then
$ stunt up

The embedded: source extracts this adapter from the binary — no git clone, fully offline.

how to mock the Chainlink Data Feeds + Functions + Automation API locally

Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Chainlink Data Feeds + Functions + Automation. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Chainlink Data Feeds + Functions + Automation 1.0 surface — the data is fake, the behavior is real.

backing stores

feedssecretsupkeeps

api surface (21)

generated from the adapter manifest — exactly what boots, nothing more

21 routes
GET/feeds
GET/feeds/{feedID}
GET/feeds/{feedID}/latestRoundData
GET/feeds/{feedID}/rounds
GET/feeds/{feedID}/rounds/{roundId}
POST/v2/functions/createSecrets
POST/v2/functions/encryptSecrets
POST/v2/functions/createRequest
GET/v2/functions/request/{requestID}
GET/v2/functions/secrets/{secretID}
POST/v2/automation/registerUpkeep
GET/v2/automation/upkeeps
GET/v2/automation/{id}
POST/v2/automation/{id}/fund
POST/v2/automation/{id}/cancel
POST/v2/automation/{id}/withdraw
GET/v2/automation/{id}/check
POST/v2/automation/{id}/perform
GET/v2/automation/{id}/performs
GET/v2/ccip/messages
GET/v2/ccip/lane/{src}/{dst}

VM-verified behaviors (20)

  • the five default feeds seed on first read and narrow by network
  • the feed summary and latestRoundData agree at the same instant
  • rounds roll one per virtual minute with phase-1 string roundIds
  • round history pages newest-first and getRoundData resolves ids
  • unknown feeds and rounds answer the documented 404 envelopes
  • v2 endpoints reject missing and wrong bearers
  • encryptSecrets is a deterministic version-0 canonical envelope
  • createSecrets bumps the slot version and never leaks plaintext
  • a request walks queued -> running -> fulfilled on the virtual clock
  • the fulfill event packs chainId << 64 | gasUsed
  • simulate_fail lands the real fulfillment-code vocabulary
  • registration validates the registry shape and funds in juels
  • the keepers network performs on cadence until the LINK runs out
  • check gates eligibility and a manual perform charges the premium
  • cadence performs interleave chronologically with manual ones
  • cancel freezes the upkeep and withdraw pays out exactly once
  • the upkeep list derives state for every entry and 404s unknown ids
  • ccip messages require the bearer token
  • lane status echoes the requested pair with its ramp addresses
  • the seeded test token dies after its ten-year virtual window

Not implemented (6)

  • No Functions subscription management: create, fund, update, cancel subscription
  • No Functions requests listing or DON listing endpoints
  • No Automation update, pause, or resume endpoints for upkeeps
  • No CCIP message detail, executions, token-pool, or send endpoints
  • No Data Streams product: stream auth, WebSocket report feeds, report upload
  • No feed timeseries/chart history endpoint beyond /rounds paging

Differs from the real API (7)

  • feed rounds aggregate per 60s heartbeat vs real deviation/3600s; answers drift ±0.25%
  • DON secrets use a deterministic HMAC envelope, not real randomized ECIES encryption
  • Functions requests: queued 0-1s, running 1-3s, fulfilled at +3s (derive-on-read)
  • createRequest accepts simulate_fail to inject failures; real sandbox has no trigger
  • keeper performs are derived on read per elapsed cadence tick; real network performs on-chain
  • invalid_cursor error code is lowercase while every other code is SCREAMING_SNAKE
  • CCIP lane status is active with ramp addresses for any src/dst pair, including nonexistent chains
want more of the Chainlink Data Feeds + Functions + Automation surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.