pages / program / lambda_vault_money

program · lambda_vault_money

canister coord://offchain/genie/program/lambda_vault_money@v1/e094fe2f1e65c868 · v1 · artifact root 0xe094fe2f1e65c86876ab1225a761114eb7a4fad5c3ce801c077c6d738fb770a0 · 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:vault-money) — a Taifoon Lambda as a genie client program: its triggers, reads, acts behind its guards, its vault.
genie lambda_vault_money v1
about "The one money lambda (vault:orderbook:clob): on each rail's lane: see a transfer to the venue vault, wait for its finality, credit it once (deposit · top-up · subscription; assurance observed only); on the withdrawal queue: hold, route, release through the custody daemon within 50 USD a release and 250 USD a chain-day, release on the receipt, keep the debit when …"

use vault vault:orderbook:clob
use chain every
use product lambda.act lambda.read
use guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys

agent vault_money is "The one money lambda (vault:orderbook:clob)"
  states idle read act_1 act_2 act_3 act_4 act_5 act_6 act_7 settled recorded held
  start idle
  final recorded held
  failed held
  on event lane
  on event lane
  on event lane
  on event lane
  on tick 1m
  move idle -> read meter lambda.read component coord-rpc
  move read -> act_1 when plan.ready == true act custody signs registered-address transfer(address,uint256) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys meter lambda.act
  move act_1 -> act_2 when plan.ready == true act custody signs registered-address transfer(address,uint256) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys meter lambda.act
  move act_2 -> act_3 when plan.ready == true act custody signs registered-address transfer(address,uint256) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys meter lambda.act
  move act_3 -> act_4 when plan.ready == true act rebalancer signs registered-address approve(address,uint256) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys meter lambda.act
  move act_4 -> act_5 when plan.ready == true act rebalancer signs registered-address depositForBurn(uint256,uint32,bytes32,address,bytes32,uint256,uint32) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys meter lambda.act
  move act_5 -> act_6 when plan.ready == true act rebalancer signs registered-address receiveMessage(bytes,bytes) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys meter lambda.act
  move act_6 -> act_7 when plan.ready == true act rebalancer signs registered-address receiveMessage(bytes,bytes) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys meter lambda.act
  move act_7 -> settled act settler signs evm-carrier settle(bytes32) guard owner-arm signer-allowlist chain-pin value-cap day-cap fee-cap exact-approvals simulate-first receipt-check code-pin price-breaker outflow-breaker halt-on-failure single-runner idempotent-payouts recipient-filter fixed-addresses vault-owns kms-sign-only role-keys via vault:orderbook:clob on every cap 50000000 USDG 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 "The one money lambda (vault:orderbook:clob): the run is recorded"
  next idle read "The run starts on its trigger: lane , lane , lane , lane , tick 1m"

vault vault:orderbook:clob
  grid lambda.act per_call 1
  cap USDG every per_tx 50000000 per_day 250000000

knowledge
  symptom "The one money lambda (vault:orderbook:clob) is held" caused_by "a guard held the run (owner-arm, signer-allowlist, chain-pin, value-cap, day-cap, fee-cap, exact-approvals, simulate-first, receipt-check, code-pin, price-breaker, outflow-breaker, halt-on-failure, single-runner, idempotent-payouts, …" fixed_by "read the guard by name in the trace, fix its cause, let the next trigger run"
  rule "The one money lambda (vault:orderbook:clob) signs only behind owner-arm, signer-allowlist, chain-pin, value-cap, day-cap, fee-cap, exact-approvals, simulate-first, receipt-check, code-pin, price-breaker, outflow-breaker, …"