Multiple contracts are not compatible with TractorFacet
and may lead to unexpected results
The idea of TractorFacet
is that a user can provide a signature including a blueprint and any user can execute that said blueprint. In order for all transactions to be executed on behalf of the signer, LibTractor.user()
must be used within Beanstalk
instead of msg.sender
. However, there are some instances which still use msg.sender
.
LibWeth
:
BeanL2MigrationFacet
:
L1TokenFacet
These can all lead to wrong user receiving/ sending tokens. For example, if a blueprint includes LibWeth.wrap
, the funds will be sent to the executor of the blueprint, instead of the signer.
Loss of funds, unexpected behaviour
Manual review
Use LibTractor.user()
everywhere
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.