```\nfunction transferShortRecord(\n    address asset,\n    address from,\n    address to,\n    uint40 tokenId,\n    STypes.NFT memory nft\n) internal {\n    AppStorage storage s = appStorage();\n    STypes.ShortRecord storage short = s.shortRecords[asset][from][nft.shortRecordId];\n    if (short.status == SR.Cancelled) revert Errors.OriginalShortRecordCancelled();\n    if (short.flaggerId != 0) revert Errors.CannotTransferFlaggedShort();\n❌  deleteShortRecord(asset, from, nft.shortRecordId);\n    uint8 id = createShortRecord(\n        asset,\n        to,\n        SR.FullyFilled,\n        short.collateral,\n        short.ercDebt,\n        short.ercDebtRate,\n        short.zethYieldRate,\n        tokenId\n    );\n    if (id == Constants.SHORT_MAX_ID) {\n        revert Errors.ReceiverExceededShortRecordLimit();\n    }\n    s.nftMapping[tokenId].owner = to;\n    s.nftMapping[tokenId].shortRecordId = id;\n}\n```\n