onERC1155Received()
is not called on Silo deposit transfers
Silo deposit is ECR1155 token where address token || uint96 stem
is tokenId
.
According to EIP1155 it must call to receiver to ensure he accepts that tokens.
However those safe functions are never called.
I doubt I can in short way prove that functions onERC1155Received()
and onERC1155BatchReceived()
are never called on transfers via SiloFacet.safeTransferFrom()
and SiloFacet.safeBatchTransferFrom()
because code flow is too complicated to track.
You can check it on your own, additionally you can search for that functions in project repo to ensure they are not called in Silo part of Beanstalk.
Silo deposit doesn't conform to EIP1155 standard, potentially breaking internal accounting of receiver.
Manual Review
Call those functions in the end of the transfer according to EIP1155.
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.