You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem: When a channel has been force-update on-chain into a final state, the participants will not have fully signed states. Now, when calling ensureConcluded, it will call concludeFinal, which expects a fully-signed state and thus fails.
Idea: If a channel has been force-updated into final, the client should call conclude instead of concludeFinal, because conclude does not require signatures. The client must be able to detect whether a channel is in a final state on-chain. Usually, we indicate that by setting phase = CONCLUDED. Hence, I suggest that we change the contract such that if a state is force-updated to final, we automatically set phase = CONCLUDED.
Update: We can also apply a quick fix that doesn't require a change in the contracts. We can check whether the current on-chain phase is FORCE_EXECUTION. If this is the case, we know that the state resulted from force execution, which means we do not have the all signatures and need to call conclude instead of concludeFinal.
The text was updated successfully, but these errors were encountered:
Location: backend/eth/conclude, contracts/Adjudicator.sol
Problem: When a channel has been force-update on-chain into a final state, the participants will not have fully signed states. Now, when calling
ensureConcluded
, it will callconcludeFinal
, which expects a fully-signed state and thus fails.Idea: If a channel has been force-updated into final, the client should call
conclude
instead ofconcludeFinal
, becauseconclude
does not require signatures. The client must be able to detect whether a channel is in a final state on-chain. Usually, we indicate that by settingphase = CONCLUDED
. Hence, I suggest that we change the contract such that if a state is force-updated to final, we automatically setphase = CONCLUDED
.Update: We can also apply a quick fix that doesn't require a change in the contracts. We can check whether the current on-chain phase is
FORCE_EXECUTION
. If this is the case, we know that the state resulted from force execution, which means we do not have the all signatures and need to callconclude
instead ofconcludeFinal
.The text was updated successfully, but these errors were encountered: