pages / program / lambda_exchange_data_onchain_query

program · lambda_exchange_data_onchain_query

canister coord://offchain/genie/program/lambda_exchange_data_onchain_query@v1/4cb1e9d17a3c3515 · v1 · artifact root 0x4cb1e9d17a3c351512a258f54c61d2687bf2a24c374c13f46f7177ab1d69d164 · previous none (first version) · superroot at publish not sealed yet

sealed cases that reached it: 0 — sealed cases that reached this word (the store counts, never reads)

the words it says

the source

// generated by genie import from lang/gen/taifoon-lambdas.json (lambda:exchange-data-onchain-query) — a Taifoon Lambda as a genie client program: its triggers, reads, acts behind its guards, its vault.
genie lambda_exchange_data_onchain_query v1
about "Exchange: data.onchain_query (any venue's buyers × our proven sellers): on every paid call to the data.onchain_query wall (x402 on the venues' chains, or a key): hire the best proven seller, check the answer, keep it only if it passed, pay the seller's share from the loop vault, write the meter line (legs + GRID) and the receipt"

use vault vault:taifoon:loop
use chain every
use product lambda.act lambda.read
use guard owner-arm

agent exchange_data_onchain_query is "Exchange: data.onchain_query (any venue's buyers × our proven sellers)"
  states idle read settled recorded held
  start idle
  final recorded held
  failed held
  on event lane
  move idle -> read meter lambda.read
  move read -> settled act settler signs evm-carrier settle(bytes32) guard owner-arm via vault:taifoon:loop on every cap 50000 USDC meter lambda.act
  move settled -> recorded
  move * -> held when guard.held == true
  refuse guard_held "a guard held the run; nothing was signed"
  say recorded "Exchange: data.onchain_query (any venue's buyers × our proven sellers): the run is recorded"
  next idle read "The run starts on its trigger: lane"

vault vault:taifoon:loop
  grid lambda.act per_call 1
  cap USDC every per_tx 50000 per_day 5000000

knowledge
  symptom "Exchange: data.onchain_query (any venue's buyers × our proven sellers) is held" caused_by "a guard held the run (owner-arm)" fixed_by "read the guard by name in the trace, fix its cause, let the next trigger run"
  rule "Exchange: data.onchain_query (any venue's buyers × our proven sellers) signs only behind owner-arm"