Jan 21, 9-10 AM (15)
Jan 21, 10-11 AM (75)
Jan 21, 11-12 PM (44)
Jan 21, 12-1 PM (46)
Jan 21, 1-2 PM (30)
Jan 21, 2-3 PM (28)
Jan 21, 3-4 PM (34)
Jan 21, 4-5 PM (32)
Jan 21, 5-6 PM (22)
Jan 21, 6-7 PM (16)
Jan 21, 7-8 PM (6)
Jan 21, 8-9 PM (14)
Jan 21, 9-10 PM (18)
Jan 21, 10-11 PM (14)
Jan 21, 11-12 AM (9)
Jan 22, 12-1 AM (11)
Jan 22, 1-2 AM (4)
Jan 22, 2-3 AM (12)
Jan 22, 3-4 AM (7)
Jan 22, 4-5 AM (2)
Jan 22, 5-6 AM (14)
Jan 22, 6-7 AM (6)
Jan 22, 7-8 AM (17)
Jan 22, 8-9 AM (11)
Jan 22, 9-10 AM (35)
Jan 22, 10-11 AM (30)
Jan 22, 11-12 PM (44)
Jan 22, 12-1 PM (52)
Jan 22, 1-2 PM (32)
Jan 22, 2-3 PM (67)
Jan 22, 3-4 PM (25)
Jan 22, 4-5 PM (29)
Jan 22, 5-6 PM (9)
Jan 22, 6-7 PM (5)
Jan 22, 7-8 PM (10)
Jan 22, 8-9 PM (12)
Jan 22, 9-10 PM (65)
Jan 22, 10-11 PM (1)
Jan 22, 11-12 AM (1)
Jan 23, 12-1 AM (6)
Jan 23, 1-2 AM (4)
Jan 23, 2-3 AM (4)
Jan 23, 3-4 AM (2)
Jan 23, 4-5 AM (1)
Jan 23, 5-6 AM (2)
Jan 23, 6-7 AM (0)
Jan 23, 7-8 AM (3)
Jan 23, 8-9 AM (2)
Jan 23, 9-10 AM (6)
Jan 23, 10-11 AM (2)
Jan 23, 11-12 PM (3)
Jan 23, 12-1 PM (7)
Jan 23, 1-2 PM (4)
Jan 23, 2-3 PM (3)
Jan 23, 3-4 PM (3)
Jan 23, 4-5 PM (1)
Jan 23, 5-6 PM (3)
Jan 23, 6-7 PM (3)
Jan 23, 7-8 PM (0)
Jan 23, 8-9 PM (3)
Jan 23, 9-10 PM (1)
Jan 23, 10-11 PM (4)
Jan 23, 11-12 AM (2)
Jan 24, 12-1 AM (4)
Jan 24, 1-2 AM (3)
Jan 24, 2-3 AM (2)
Jan 24, 3-4 AM (3)
Jan 24, 4-5 AM (0)
Jan 24, 5-6 AM (0)
Jan 24, 6-7 AM (0)
Jan 24, 7-8 AM (0)
Jan 24, 8-9 AM (1)
Jan 24, 9-10 AM (9)
Jan 24, 10-11 AM (2)
Jan 24, 11-12 PM (0)
Jan 24, 12-1 PM (0)
Jan 24, 1-2 PM (1)
Jan 24, 2-3 PM (0)
Jan 24, 3-4 PM (0)
Jan 24, 4-5 PM (0)
Jan 24, 5-6 PM (0)
Jan 24, 6-7 PM (7)
Jan 24, 7-8 PM (2)
Jan 24, 8-9 PM (0)
Jan 24, 9-10 PM (4)
Jan 24, 10-11 PM (3)
Jan 24, 11-12 AM (5)
Jan 25, 12-1 AM (8)
Jan 25, 1-2 AM (5)
Jan 25, 2-3 AM (0)
Jan 25, 3-4 AM (2)
Jan 25, 4-5 AM (7)
Jan 25, 5-6 AM (2)
Jan 25, 6-7 AM (12)
Jan 25, 7-8 AM (41)
Jan 25, 8-9 AM (20)
Jan 25, 9-10 AM (49)
Jan 25, 10-11 AM (44)
Jan 25, 11-12 PM (36)
Jan 25, 12-1 PM (36)
Jan 25, 1-2 PM (32)
Jan 25, 2-3 PM (66)
Jan 25, 3-4 PM (12)
Jan 25, 4-5 PM (18)
Jan 25, 5-6 PM (14)
Jan 25, 6-7 PM (10)
Jan 25, 7-8 PM (20)
Jan 25, 8-9 PM (6)
Jan 25, 9-10 PM (4)
Jan 25, 10-11 PM (5)
Jan 25, 11-12 AM (8)
Jan 26, 12-1 AM (5)
Jan 26, 1-2 AM (1)
Jan 26, 2-3 AM (5)
Jan 26, 3-4 AM (13)
Jan 26, 4-5 AM (3)
Jan 26, 5-6 AM (4)
Jan 26, 6-7 AM (14)
Jan 26, 7-8 AM (12)
Jan 26, 8-9 AM (33)
Jan 26, 9-10 AM (21)
Jan 26, 10-11 AM (39)
Jan 26, 11-12 PM (18)
Jan 26, 12-1 PM (50)
Jan 26, 1-2 PM (61)
Jan 26, 2-3 PM (42)
Jan 26, 3-4 PM (50)
Jan 26, 4-5 PM (28)
Jan 26, 5-6 PM (15)
Jan 26, 6-7 PM (10)
Jan 26, 7-8 PM (19)
Jan 26, 8-9 PM (11)
Jan 26, 9-10 PM (10)
Jan 26, 10-11 PM (7)
Jan 26, 11-12 AM (7)
Jan 27, 12-1 AM (9)
Jan 27, 1-2 AM (7)
Jan 27, 2-3 AM (11)
Jan 27, 3-4 AM (5)
Jan 27, 4-5 AM (6)
Jan 27, 5-6 AM (2)
Jan 27, 6-7 AM (17)
Jan 27, 7-8 AM (12)
Jan 27, 8-9 AM (26)
Jan 27, 9-10 AM (42)
Jan 27, 10-11 AM (22)
Jan 27, 11-12 PM (68)
Jan 27, 12-1 PM (104)
Jan 27, 1-2 PM (49)
Jan 27, 2-3 PM (74)
Jan 27, 3-4 PM (50)
Jan 27, 4-5 PM (20)
Jan 27, 5-6 PM (15)
Jan 27, 6-7 PM (44)
Jan 27, 7-8 PM (14)
Jan 27, 8-9 PM (34)
Jan 27, 9-10 PM (12)
Jan 27, 10-11 PM (26)
Jan 27, 11-12 AM (6)
Jan 28, 12-1 AM (11)
Jan 28, 1-2 AM (8)
Jan 28, 2-3 AM (5)
Jan 28, 3-4 AM (7)
Jan 28, 4-5 AM (14)
Jan 28, 5-6 AM (3)
Jan 28, 6-7 AM (16)
Jan 28, 7-8 AM (15)
Jan 28, 8-9 AM (78)
Jan 28, 9-10 AM (28)
2,808 commits this week Jan 21, 2021 - Jan 28, 2021
Merge #2468
2468: Replace `hardfork_at` with `eras` object r=Anviking a=Anviking

# Issue Number

ADP-676


# Overview

<!-- Detail in a few bullet points the work accomplished in this PR -->

- [x] Replace `hardfork_at` with info of all eras
- [x] Instead of storing ProtocolParameters in DB, just keep them in a `TVar`
- [ ] <s>See if we can order the eras correctly in the `era` object (for when the JSON is viewed by humans)</s> Seems impossible to do.
- [x] TODO: Extend swagger
- [ ] Tiny doc tweaks

# Comments

- Could add absolute `slot` field also
- Arguably a bit sad that the eras get sorted seemingly alphabetically in the json

```json
$ cardano-wallet network parameters
{
    "slot_length": {
        "quantity": 1,
        "unit": "second"
    },
    "decentralization_level": {
        "quantity": 74,
        "unit": "percent"
    },
    "genesis_block_hash": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb",
    "blockchain_start_time": "2017-09-23T21:44:51Z",
    "desired_pool_number": 500,
    "epoch_length": {
        "quantity": 432000,
        "unit": "slot"
    },
    "eras": {
        "shelley": {
            "epoch_start_time": "2020-07-29T21:44:51Z",
            "epoch_number": 208
        },
        "mary": null,
        "byron": {
            "epoch_start_time": "2017-09-23T21:44:51Z",
            "epoch_number": 0
        },
        "allegra": {
            "epoch_start_time": "2020-12-16T21:44:51Z",
            "epoch_number": 236
        }
    },
    "active_slot_coefficient": {
        "quantity": 5,
        "unit": "percent"
    },
    "security_parameter": {
        "quantity": 2160,
        "unit": "block"
    },
    "minimum_utxo_value": {
        "quantity": 1000000,
        "unit": "lovelace"
    }
}
```

<!-- Additional comments or screenshots to attach if any -->

<!--
Don't forget to:

 ✓ Self-review your changes to make sure nothing unexpected slipped through
 ✓ Assign yourself to the PR
 ✓ Assign one or several reviewer(s)
 ✓ Jira will detect and link to this PR once created, but you can also link this PR in the description of the corresponding ticket
 ✓ Acknowledge any changes required to the Wiki
 ✓ Finally, in the PR description delete any empty sections and all text commented in <!--, so that this text does not appear in merge commit messages.
-->


Co-authored-by: Johannes Lund <[email protected]>