As per the docs:
0xSplits has not launched on zkSync, resulting in Titles not being able to launch on zkSync.
Vulnerability Detail
The docs state the following:
//On what chains are the smart contracts going to be deployed?
//Ethereum, Base, OP, Zora, Blast, Arbitrum, zkSync, Degen
However,zkSync is not supported by 0xSplits, as you can see here.
Because zkSync is not supported by 0xSplits, the external call createSplit() will not be able to be executed.
/// @notice Creates a new fee route for the given {Edition} and attributions.
/// @param edition_ The {Edition} for which to create the route.
/// @param tokenId_ The token ID associated with the route.
/// @param attributions_ The attributions to be associated with the route.
/// @param referrer_ The address of the referrer to receive a share of the fee.
function createRoute(
IEdition edition_,
uint256 tokenId_,
Target[] calldata attributions_,
address referrer_
) external onlyOwnerOrRoles(ADMIN_ROLE) returns (Target memory receiver) {
Target memory creator = edition_.node(tokenId_).creator;
if (attributions_.length == 0) {
// No attributions, pay the creator directly
receiver = creator;
} else {
// Distribute the fee among the creator and attributions
(address[] memory targets, uint256[] memory revshares) = _buildSharesAndTargets(
creator, attributions_, edition_.feeStrategy(tokenId_).revshareBps
);
// Create the split. The protocol retains "ownership" to enable future use cases.
// @audit this process seems odd
receiver = Target({
-> target: splitFactory.createSplit(
SplitV2Lib.Split({
recipients: targets,
allocations: revshares,
totalAllocation: 1e6,
distributionIncentive: 0
}),
address(this),
creator.target
),
chainId: creator.chainId
});
}
_feeReceivers[getRouteId(edition_, tokenId_)] = receiver;
referrers[edition_] = referrer_;
}
Consequently, createRoute() will not execute, effectively breaking the protocol.
Impact
This project will not be able to launch on zkSync.
Ultimately, the core functionality is broken when launching on zkSync
zoyi
medium
0xSplits does not support zkSync
Summary
As per the docs:
0xSplits
has not launched onzkSync
, resulting in Titles not being able to launch onzkSync
.Vulnerability Detail
The docs state the following:
However,
zkSync
is not supported by0xSplits
, as you can see here.Because
zkSync
is not supported by0xSplits
, the external callcreateSplit()
will not be able to be executed.Consequently,
createRoute()
will not execute, effectively breaking the protocol.Impact
This project will not be able to launch on
zkSync
.Ultimately, the core functionality is broken when launching on zkSync
Code Snippet
https://github.com/sherlock-audit/2024-04-titles/blob/c9d16782a7d3c15c7a759f22c9e0552d5e777ed7/wallflower-contract-v2/src/fees/FeeManager.sol#L125-L160
Tool used
Manual Review
Recommendation
Do not launch on zkSync