Deploying upgradeable erc721 smart contract

@abcoathup I followed this tutorial of yours and tried to deploy my implementation contracts

This is my migrations file:

const { deployProxy } = require('@openzeppelin/truffle-upgrades');
async function main() {

  const Box = await ethers.getContractFactory("ERC721Rarible");

  console.log("Deploying ERC721Rarible...");

  const box = await upgrades.deployProxy(Box, ["Rarible", "RARI", "ipfs:/", ""], {initializer: '__ERC721Rarible_init' });

  console.log("ERC721Rarible deployed to:", box.address);

}

main()

  .then(() => process.exit(0))

  .catch(error => {

    console.error(error);

    process.exit(1);

  });

After running npx hardhat run --network testnet migrations/2_initial_erc721.js command it gave me this error

Deploying ERC721Rarible...
ProviderError: max code size exceeded
    at HttpProvider.request (D:\rarible-hardhat\protocol-contracts\tokens\node_modules\hardhat\src\internal\core\providers\http.ts:46:19)
    at HDWalletProvider.request (D:\rarible-hardhat\protocol-contracts\tokens\node_modules\hardhat\src\internal\core\providers\accounts.ts:142:34)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at EthersProviderWrapper.send (D:\rarible-hardhat\protocol-contracts\tokens\node_modules\@nomiclabs\hardhat-ethers\src\internal\ethers-provider-wrapper.ts:13:20)