Oct 18, 2-3 PM (31)
Oct 18, 3-4 PM (22)
Oct 18, 4-5 PM (30)
Oct 18, 5-6 PM (9)
Oct 18, 6-7 PM (14)
Oct 18, 7-8 PM (8)
Oct 18, 8-9 PM (7)
Oct 18, 9-10 PM (10)
Oct 18, 10-11 PM (7)
Oct 18, 11-12 AM (11)
Oct 19, 12-1 AM (13)
Oct 19, 1-2 AM (16)
Oct 19, 2-3 AM (4)
Oct 19, 3-4 AM (9)
Oct 19, 4-5 AM (7)
Oct 19, 5-6 AM (6)
Oct 19, 6-7 AM (4)
Oct 19, 7-8 AM (29)
Oct 19, 8-9 AM (15)
Oct 19, 9-10 AM (19)
Oct 19, 10-11 AM (10)
Oct 19, 11-12 PM (20)
Oct 19, 12-1 PM (19)
Oct 19, 1-2 PM (62)
Oct 19, 2-3 PM (7)
Oct 19, 3-4 PM (27)
Oct 19, 4-5 PM (7)
Oct 19, 5-6 PM (8)
Oct 19, 6-7 PM (10)
Oct 19, 7-8 PM (6)
Oct 19, 8-9 PM (4)
Oct 19, 9-10 PM (5)
Oct 19, 10-11 PM (9)
Oct 19, 11-12 AM (2)
Oct 20, 12-1 AM (9)
Oct 20, 1-2 AM (9)
Oct 20, 2-3 AM (11)
Oct 20, 3-4 AM (16)
Oct 20, 4-5 AM (8)
Oct 20, 5-6 AM (7)
Oct 20, 6-7 AM (42)
Oct 20, 7-8 AM (141)
Oct 20, 8-9 AM (20)
Oct 20, 9-10 AM (26)
Oct 20, 10-11 AM (22)
Oct 20, 11-12 PM (23)
Oct 20, 12-1 PM (34)
Oct 20, 1-2 PM (27)
Oct 20, 2-3 PM (15)
Oct 20, 3-4 PM (4)
Oct 20, 4-5 PM (40)
Oct 20, 5-6 PM (39)
Oct 20, 6-7 PM (11)
Oct 20, 7-8 PM (8)
Oct 20, 8-9 PM (8)
Oct 20, 9-10 PM (7)
Oct 20, 10-11 PM (4)
Oct 20, 11-12 AM (8)
Oct 21, 12-1 AM (5)
Oct 21, 1-2 AM (12)
Oct 21, 2-3 AM (4)
Oct 21, 3-4 AM (8)
Oct 21, 4-5 AM (17)
Oct 21, 5-6 AM (59)
Oct 21, 6-7 AM (32)
Oct 21, 7-8 AM (35)
Oct 21, 8-9 AM (45)
Oct 21, 9-10 AM (26)
Oct 21, 10-11 AM (19)
Oct 21, 11-12 PM (27)
Oct 21, 12-1 PM (27)
Oct 21, 1-2 PM (60)
Oct 21, 2-3 PM (31)
Oct 21, 3-4 PM (23)
Oct 21, 4-5 PM (13)
Oct 21, 5-6 PM (10)
Oct 21, 6-7 PM (11)
Oct 21, 7-8 PM (10)
Oct 21, 8-9 PM (6)
Oct 21, 9-10 PM (5)
Oct 21, 10-11 PM (2)
Oct 21, 11-12 AM (0)
Oct 22, 12-1 AM (64)
Oct 22, 1-2 AM (8)
Oct 22, 2-3 AM (5)
Oct 22, 3-4 AM (17)
Oct 22, 4-5 AM (7)
Oct 22, 5-6 AM (110)
Oct 22, 6-7 AM (165)
Oct 22, 7-8 AM (144)
Oct 22, 8-9 AM (12)
Oct 22, 9-10 AM (26)
Oct 22, 10-11 AM (79)
Oct 22, 11-12 PM (47)
Oct 22, 12-1 PM (29)
Oct 22, 1-2 PM (47)
Oct 22, 2-3 PM (34)
Oct 22, 3-4 PM (23)
Oct 22, 4-5 PM (13)
Oct 22, 5-6 PM (13)
Oct 22, 6-7 PM (4)
Oct 22, 7-8 PM (8)
Oct 22, 8-9 PM (9)
Oct 22, 9-10 PM (1)
Oct 22, 10-11 PM (3)
Oct 22, 11-12 AM (3)
Oct 23, 12-1 AM (3)
Oct 23, 1-2 AM (2)
Oct 23, 2-3 AM (3)
Oct 23, 3-4 AM (3)
Oct 23, 4-5 AM (1)
Oct 23, 5-6 AM (3)
Oct 23, 6-7 AM (1)
Oct 23, 7-8 AM (1)
Oct 23, 8-9 AM (6)
Oct 23, 9-10 AM (8)
Oct 23, 10-11 AM (6)
Oct 23, 11-12 PM (4)
Oct 23, 12-1 PM (7)
Oct 23, 1-2 PM (2)
Oct 23, 2-3 PM (9)
Oct 23, 3-4 PM (2)
Oct 23, 4-5 PM (1)
Oct 23, 5-6 PM (2)
Oct 23, 6-7 PM (1)
Oct 23, 7-8 PM (1)
Oct 23, 8-9 PM (1)
Oct 23, 9-10 PM (1)
Oct 23, 10-11 PM (1)
Oct 23, 11-12 AM (3)
Oct 24, 12-1 AM (4)
Oct 24, 1-2 AM (2)
Oct 24, 2-3 AM (1)
Oct 24, 3-4 AM (2)
Oct 24, 4-5 AM (1)
Oct 24, 5-6 AM (1)
Oct 24, 6-7 AM (1)
Oct 24, 7-8 AM (1)
Oct 24, 8-9 AM (3)
Oct 24, 9-10 AM (8)
Oct 24, 10-11 AM (3)
Oct 24, 11-12 PM (4)
Oct 24, 12-1 PM (1)
Oct 24, 1-2 PM (3)
Oct 24, 2-3 PM (18)
Oct 24, 3-4 PM (5)
Oct 24, 4-5 PM (5)
Oct 24, 5-6 PM (5)
Oct 24, 6-7 PM (1)
Oct 24, 7-8 PM (2)
Oct 24, 8-9 PM (1)
Oct 24, 9-10 PM (4)
Oct 24, 10-11 PM (3)
Oct 24, 11-12 AM (10)
Oct 25, 12-1 AM (7)
Oct 25, 1-2 AM (2)
Oct 25, 2-3 AM (3)
Oct 25, 3-4 AM (5)
Oct 25, 4-5 AM (3)
Oct 25, 5-6 AM (7)
Oct 25, 6-7 AM (10)
Oct 25, 7-8 AM (9)
Oct 25, 8-9 AM (31)
Oct 25, 9-10 AM (42)
Oct 25, 10-11 AM (22)
Oct 25, 11-12 PM (35)
Oct 25, 12-1 PM (24)
Oct 25, 1-2 PM (68)
Oct 25, 2-3 PM (1)
2,784 commits this week Oct 18, 2021 - Oct 25, 2021
SCP-2669: Delete beAddressMap from BlockchainEnv in plutus-pab.
* New PAB action `valueAt` where we can query the value at a specific wallet which replaces the beAddressMap field in BlockchainEnv.

* Deleted PubKeyHashFundsChange in Webserver stream. Upstream code which uses that should now use the new `valueAt` PAB action.

* Added plutus-pab testing for `valueAt`.

* More precise error message in cardano wallet code.
connection-manager: fix test
When running connection manager with two outbound connection, the second
overlapping with the first one we now do (in the specified order):

* `unregisterInboundConncection`: `TimeoutExpired` transition
* `unregisterOutboundConnection`: `DemotedToCold^{Duplex}_{Local}
                                    : OutboundState df
                                    → PreTerminatingState df`
   which terminates the connection after reset delay (5s)

Rather than the other way around, which would do:

* `unregisterOutboundConnection`: `DemotedToCold^{Duplex}_{Local}
                                    : OutboundState df
                                    → InboundIdleState df`
* `unregisterInboundConnection`: `DemotedToCold^{Duplex}_{Remote}
                                    : InboundIdleState df
                                    → TerminatingState`
   which terminates the connection without a delay

This change is needed because in the second case the connection is
closed and the test environment is expected to return an fd, but
since the schedule for the second connection has set 'siExists' to
'True' an fd is not present, which results in test environment failure.

Another reason to switch the order is that the second case is already
tested when there's an inbound connection.
peer-state-actions: fix races related to updating PeerState
A peer can be set to cold at anytime asynchronously, this means that the
governor may ask us to promote or demote a peer that has just been set
to cold (for example the peer reset the connection).

This change makes sure that each time we're about to update to peer
status to something other than PeerCold, that we first check to see if
the peer is coold. If that is the case we fail with an exception.
peer-state-actions: Set the peer as warm before monitoring
The peer status must be set to PeerWarm before we start the monitoring
thread.

Previously we started the monitoring thread first which meant that it
was possible for the monitor thread to notice an error and set the peer
status to PeerCold only to have it overwritten with PeerWarm. This
caused peers to get stuck in warm/hot without a corresponding
connection.