-
Notifications
You must be signed in to change notification settings - Fork 363
Apps Tx labeled as "Contract Interaction" if executed too fast #1206
Comments
Still an issue. For me, only the first transaction was marked as Compound. The subsequent ones were just a "Contract interaction". |
This issue is somehow related to this other: safe-global/safe-smart-account#187. I've talked with @rmeissner and at the moment, there is nothing or at least nothing simple we can do about it. As any user has a complaint about it, we will not give priority for now. |
Could you please elaborate on how exactly it is related to this issue on the contracts? My high level understanding would be that this "safe apps" marker is something that the frontend sets, independently from the type of txs or the number of owners, no? So how is it related to low-level contract logic? 🤔 |
sure, sorry, we had a chat on slack with the details. I'll try to clarify them here: When a user creates a tx, in the frontend, we are setting the nonce and the tx-data. If the user starts creating txs one after the other without giving some time to the backend to "index" the new tx there will be a bunch of txs sent with the same nonce. That is because the frontend is relying on the backend and the contract to get the next nonce. As none of them was updated (yet) we are sending the same nonce until the backend or the contract is updated. @tschubotz is it more clear? |
Now I got it, thanks. So these txs that Franco was posting would eventuelly all fail? I actually just tried again. And I was unable to reproduce. If Franco is fine, I think we can close this one then, yes. |
no, they are executed anyways for the case of threshold = 1. The contract assigns them the next nonce. |
It's not that the contract "assigns" a nonce. The user signs this specific nonce in the Metamask popup, right? So you are saying that:
Is this correct? Why this discrepancy? |
Our interface uses the "wrong" nonce in all cases (MM and service). But if you rely on msg.sender and have a threshold of one the Safe contract don't check the nonce, therefore the tx doesn't fail with the "wrong" nonce (see the issue @nicosampler linked: safe-global/safe-smart-account#187). |
Aah, now I got it, thanks for explaining. 🙏 |
ENV: https://safe-team.dev.gnosisdev.com/app/#/safes/0x5D0edD9272a653Bf6b3b49e9856c7030942d2003/transactions
Steps:
Have a safe with 1 owner and tokens (ETH, DAI)
Use an app, like compound and lock a few tokens first
Now, try to lock and withdraw more tokens, as quickly as possible: As soon as you end signing one tx create another and sign it
You will see that the compound apps, instead of being labeled as "Compound" in the tx they will be labeled as "Contract interactions"
Chances are the regular users will not do this, but it would be good to know why creating and signing tx really quick causes this issue.
This issue doesn't happen if you take time between tx and tx
The text was updated successfully, but these errors were encountered: