stacks-network/stacks-core

Improve emitted events for Clarity post-conditions

Open

#4,744 opened on 2024年5月2日

GitHub で見る
 (2 comments) (3 reactions) (1 assignee)Rust (758 forks)auto 404
good first issueiceboxstale

Repository metrics

Stars
 (3,063 stars)
PR merge metrics
 (PR metrics pending)

説明

consider the following failed transaction:

$ curl -sL https://api.hiro.so/extended/v1/tx/0xe0a149de6e7f367449fff50e3fa86399d6d708273ab8dabe5bbd3ff380386624 | jq -r .post_conditions,.tx_status
[
  {
    "type": "fungible",
    "condition_code": "sent_equal_to",
    "amount": "300000000000",
    "principal": {
      "type_id": "principal_standard",
      "address": "SP..."
    },
    "asset": {
      "contract_name": "miamicoin-token-v2",
      "asset_name": "MIA",
      "contract_address": "SP1H1733V5MZ3SZ9XRW9FKYGEZT0JDGEB8Y634C7R"
    }
  }
]
abort_by_post_condition

in this example, the tx failed due to an incorrect asset_name being used MIA vs the expected miamicoin.

the emitted event that is consumed by the API (and then exposed to the explorer UI) is a bit too generic about why it has failed ("rolled back by a post condition", likely from the tx_status field the API is returning).

I propose adding some extra data to the event emitted by stacks-node, specifiying which (possibly any) post-condition is actually causing the tx to fail. Once added, there will need to be changes downstream to the event_observers that process this event.

コントリビューターガイド