No | Prev State | Counterparty | Action | Post State | Notes |
---|---|---|---|---|---|
1 | OPEN | OPEN | INIT | OPEN(INIT) | N/A |
2 | OPEN | OPEN(INIT) | INIT | OPEN(INIT) | N/A |
3 | OPEN(INIT) | OPEN | INIT | OPEN(INIT) | update upgrade state and increment upgrade sequence |
4 | OPEN(INIT) | OPEN(INIT) | INIT | OPEN(INIT) | update upgrade state and increment upgrade sequence |
5 | OPEN | OPEN(INIT) | TRY | FLUSHING | N/A |
6 | OPEN(INIT) | OPEN(INIT) | TRY | FLUSHING | N/A |
7 | OPEN(INIT) | FLUSHING | ACK | FLUSHING | inflight packets exist in src |
8 | OPEN(INIT) | FLUSHING | ACK | OPEN(ERR) | our proposal is incompatible with theirs OR timeout of counterparty proposal is reached |
9 | FLUSHING | FLUSHING | ACK | FLUSHING | inflight packets exist in src (No Transition) |
10 | FLUSHING | FLUSHING | ACK | COMPLETE | no inflight packets in src |
11 | FLUSHING | FLUSHING | ACK | OPEN(ERR) | our proposal is incompatible with theirs OR timeout of counterparty proposal is reached |
12 | FLUSHING | FLUSHING | CONFIRM | FLUSHING | inflight packets exist in src (No Transition) |
13 | FLUSHING | FLUSHING | CONFIRM | COMPLETE | no inflight packets in src |
14 | FLUSHING | FLUSHING | CONFIRM | OPEN(ERR) | timeout of counterparty proposal is reached |
15 | FLUSHING | COMPLETE | CONFIRM | FLUSHING | inflight packets exist in src |
16 | FLUSHING | COMPLETE | CONFIRM | OPEN | no inflight packets in src |
17 | FLUSHING | COMPLETE | CONFIRM | OPEN(ERR) | timeout of counterparty proposal is reached |
18 | COMPLETE | COMPLETE | OPEN | OPEN | counterparty sequence == current sequence |
19 | COMPLETE | OPEN | OPEN | OPEN | counterparty sequence >= current sequence |
20 | OPEN(INIT) | * | CANCEL | OPEN(ERR) | caller has authority |
21 | OPEN(INIT) | * | CANCEL | OPEN(ERR) | caller doesn't have authority && error receipt corresponding to current or future secuence exists on counterparty, and update the current |
22 | FLUSHING | * | CANCEL | OPEN(ERR) | caller has authority |
23 | FLUSHING | * | CANCEL | OPEN(ERR) | caller doesn't have authority && error receipt corresponding to current or future secuence exists on counterparty, and update the current |
24 | COMPLETE | * | CANCEL | OPEN(ERR) | error receipt corresponding to current secuence exists on counterparty |
25 | FLUSHING | OPEN | TIMEOUT | OPEN(ERR) | counterparty sequence >= current sequence && counterparty is failed to upgrade with the current proposed upgrade |
26 | FLUSHING | FLUSHING | TIMEOUT | OPEN(ERR) | counterparty sequence >= current sequence |
27 | COMPLETE | OPEN | TIMEOUT | OPEN(ERR) | counterparty sequence >= current sequence && counterparty is failed to upgrade with the current proposed upgrade |
28 | COMPLETE | FLUSHING | TIMEOUT | OPEN(ERR) | counterparty sequence >= current sequence |
Last active
June 17, 2024 00:23
-
-
Save bluele/08f0543cc43f6204df652d2fa9b473fd to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment