---
# System prepended metadata

title: Casper Node SSE Stream Changes Between 1.1.2 and 1.2.0

---

# Casper Node SSE Stream Changes Between 1.1.2 and 1.2.0

## Changes to `BlockAdded` Event

### `block.header.era_end.era_report.rewards`

Changed from a JSON object where names are public keys and values are numbers, to a JSON array of objects of type:
```json
{"validator":"hex-encoded public key string","amount":number}
```
1.1.2 example:
```json
"rewards":{
  "012a21e233b86ceeb6eba21b06a14dece531dde11b775e3e07f389876c10516297":2000000000000,
  "01338dcea61f5c0472c5a74ee36c5a07d710ee4e402b9929ae930376a520a83308":1999999999990
}
```
1.2.0 example:
```json
"rewards":[
  {"validator":"014e32447b87ed0ac411ae16f0c490c3e8f650f88c1729fc40089ac107e39fbf61","amount":2000000000000},
  {"validator":"017fcb7cf2383794a263e676e7e89489e1e0b666a7ef6bb73cbddcd47469cdad82","amount":1999999999990}
]
```

---

### `block.header.era_end.next_era_validator_weights`

Changed from a JSON object where names are public keys and values are strings representing unsigned 512-bit numbers, to a JSON array of objects of type:
```json
{"validator":"hex-encoded public key string","weight":"U512 as decimal string"}
```
1.1.2 example:
```json
"next_era_validator_weights":{
  "012a21e233b86ceeb6eba21b06a14dece531dde11b775e3e07f389876c10516297":"2000000000000010",
  "01338dcea61f5c0472c5a74ee36c5a07d710ee4e402b9929ae930376a520a83308":"2000000000000004"
}
```
1.2.0 example:
```json
"next_era_validator_weights":[
  {"validator":"014e32447b87ed0ac411ae16f0c490c3e8f650f88c1729fc40089ac107e39fbf61","weight":"2000000000000010"},
  {"validator":"01e220886b67b7fb4ccbcb7750c243e29cf7b2a4000032c2cbf4550786aff74988","weight":"2000000000000002"}
]
```

---

### `block.proofs`

Added this field to `block`.  Its value is a JSON array of objects of type:
```json
{"public_key":"hex-encoded public key string","signature":"hex-encoded signature string"}
```
It was added to the JSON representation of a block to enable providing proofs as part of a JSON RPC update.  The same block type is used in the event stream, but when blocks are added to the event stream they have no proofs, so the `block.proofs` value will in practice always be an empty JSON array.

---

## Addition of `Step` Event

The stream now also outputs a `Step` event towards the end of each era.  It normally falls immediately before a switch block is output, but there may occasionally be a few events (e.g. `FinaltySignature`s) between them.

Its value is a JSON object of type:
```json
{
  "era_id":number,
  "execution_effect":{
    "operations":[
      {
        "key":"formatted string representing a Key in global state",
        "kind":"string representing an operation performed under that key"
      }
    ],
    "transforms":[
      {
        "key":"formatted string representing a Key in global state",
        "transform":"string representing a transformation performed on global state"
      }
    ]
  }
}
```

For a comprehensive OpenRPC schema description of `execution_effect`, it has the same type as the field `result.execution_results.0.result.Success.effect` of the response to an `info_get_deploy` JSON-RPC.

The OpenRPC schema can be accessed via the Rust client, e.g.

```
casper-client list-rpcs -n http://<IP>:7777
```

The schema can be better visualised by pasting the value of the `result.schema` field of the response into [the OpenRPC playground](https://playground.open-rpc.org/).

To summarise:

* `operations.key` and `transforms.key` can have one of the following possible values:
   * `"account-hash-<64 hex chars>"`
   * `"hash-<64 hex chars>"`
   * `"uref-<64 hex chars>-<3 digit number between 000 to 007 inclusive>"`
   * `"transfer-<64 hex chars>"`
   * `"deploy-<64 hex chars>"`
   * `"era-<number>"`
   * `"balance-<64 hex chars>"`
   * `"bid-<64 hex chars>"`
   * `"withdraw-<64 hex chars>"`

* `operations.kind` can have one of the following possible values:
    * `"Read"`
    * `"Write"`
    * `"Add"`
    * `"NoOp"`

* `transforms.transform` can have one of the possible values described succinctly via [the Rust source code](https://github.com/casper-network/casper-node/blob/release-1.2/types/src/execution_result.rs#L431-L472)

---