// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library ERC6551BytecodeLib {
  function getCreationCode(
    address implementation_,
    uint256 chainId_,
    address tokenContract_,
    uint256 tokenId_,
    uint256 salt_
  ) internal pure returns (bytes memory) {
    return abi.encodePacked(
      hex"3d60ad80600a3d3981f3363d3d373d3d3d363d73",
      implementation_,
      hex"5af43d82803e903d91602b57fd5bf3",
      abi.encode(salt_, chainId_, tokenContract_, tokenId_)
    );
  }
}
