pages / program / lambda_exchange_plan_steps

program · lambda_exchange_plan_steps

canister coord://offchain/genie/program/lambda_exchange_plan_steps@v1/6b8260f36995dda4 · v1 · artifact root 0x6b8260f36995dda48c677c36953e277210d123fbd5451a98801183dd37365adb · 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-plan-steps) — a Taifoon Lambda as a genie client program: its triggers, reads, acts behind its guards, its vault.
genie lambda_exchange_plan_steps v1
about "Exchange: plan.steps (any venue's buyers × our proven sellers): on every paid call to the plan.steps 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_plan_steps is "Exchange: plan.steps (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: plan.steps (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: plan.steps (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: plan.steps (any venue's buyers × our proven sellers) signs only behind owner-arm"